---
title: "Vad är det för fel?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/programmering/18990-vad-är-det-för-fel"
topic: "Programmering"
topic_url: "https://www.webforum.nu/amne/programmering"
author: "Asterix"
published: "2000-03-24T17:11:00.000Z"
updated: "2000-03-25T13:40:00.000Z"
replies: 6
views: 396
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/programmering/18990-vad-är-det-för-fel"
---

# Vad är det för fel?

## #1 — Asterix, 2000-03-24T17:11Z

Vad är det för fel på följande kod

```
#!/usr/bin/perl

read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $buffer);

foreach $pair (@pairs) {
	($name, $value) = split(/=/, $pair);
	$value =~ tr/+/ /;
	$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
	$value =~ s/</\<\;/g;
	$value =~ s/>/\<\;/g;

	$FORM{$name} = $value;
}

$data = $FORM{'name'} + ".txt";

open(DATA, $data);
@lines = <DATA>;
close(DATA);

($name, $value, $color) = split(/;/, $lines{1});

if ($value eq $FORM{'name'}) {
	print <<endhtml;
		<html>
		<head>

		<frameset frameborder="0" border="0" rows="36,*" cols="100%">
		<frame name="xlankarmeny" src="http://www.settlers.org/cgi-bin/xlinks/script.cgi?name=$name&color=$color" scrolling="no">
		<frame name="xlankarmain" src="http://www.webforum.nu/wf/index.html" scrolling="auto">
		</frameset>
		<noframes>
		</noframes>

		</head>
		</html>
	endhtml
} else {
	print <<endhtml;
		<html>
		<body>
		<font face="verdana" size="2"><b><center>
		Fel lösenord<b><br>
		Klicka <a href="http://www.settlers.org/staff/emil/index.html">här</a> för att försöka igen.
		</body>
		</html>
	endhtml
}
```

```
#!/usr/bin/perl

$buffer=$ENV{'QUERY_STRING'};
@pairs = split(/&/, $buffer);

foreach $pair (@pairs) {
	($name, $value) = split(/=/, $pair);
	$value =~ tr/+/ /;
	$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
	$value =~ s/</\<\;/g;
	$value =~ s/>/\<\;/g;

	$FORM{$name} = $value;
}

$data = $FORM{'name'} + ".txt";
$color = $FORM{'color'};

open(DATA, $data);
@lines = <DATA>;
close(DATA);

print <<endhtml;
	<html>
	<body bgcolor="#FFFFFF" background="pics/$color/bg.gif" topmargin="0" leftmargin="0">
	<table cellpadding="0" cellspacing="0" border="0" width="100%">
	<tr>
	<td rowspan="2" width="50%" valign="top"><a target="xlankarmain" href="http://www.settlers.org/staff/emil/xlinks"><img src="pics/$color/logo.gif" border="0"></a></td>
	<td width="45%" align="right" valign="top" height="8"></td><td width="5%"></td>
	</tr>
	<tr>
	<td align=\"right\">
	<form name="menu">
	<select name="links" onChange="parent.xlankarmain.location.href=menu.links.options[menu.links.selectedIndex].value">
	<option>Links</option>
	<option>----------------------------------------</option>
endhtml

$nr = 0
foreach $line (@lines) {
	$nr++;
	chomp($line);
	($value, $name) = split(/;/, $line);
	if ($nr <> 1) {
		print "<option value=\"$value\">$name</option>";
	}
}

print <<endhtml;
	</select>
	</form>
	</td>
	</tr>
	</table>
	</body>
	</html>
endhtml
```

Permalänk: https://www.webforum.nu/p/18990

## #2 — Robban, 2000-03-24T20:07Z

Någonting jag observerar vid en mycket snabb överblick är att du försöker plocka ut ett värde ur en array med $lines{1} vilket är felaktigt. Det rätta att använda är $lines\[1\] (hakparanteser vid arrayer, klamrar vid tabeller).

Om inte det räcker får du gärna vara lite mer specifik med hur felet yttrar sig (går troligen snabbare att hitta felet då).

Permalänk: https://www.webforum.nu/p/340468

## #3 — Asterix, 2000-03-24T20:28Z

Det står 500 HTTP - internal server error eller något liknande när frame.cgi laddas. Kolla på [denna sidan](http://www.settlers.org/staff/emil/xlinks). Skriv in Demo som namn och demo som lösenord.

Permalänk: https://www.webforum.nu/p/340469

## #4 — Rödalacket, 2000-03-24T22:08Z

Så här stog det när jag loggade in:
Fel lösenord
Klicka här för att försöka igen.

, , , 0, name=Demo&password=demo&submit=++++OK++++
demo

Permalänk: https://www.webforum.nu/p/340470

## #5 — Robban, 2000-03-25T08:14Z

Samma för mig. Gick inte att logga in. Felet "internal server error" kan vara vad som helst f.ö. så det säger inte speciellt mycket (möjligt att serverloggen säger mer). :)

En not. När du öppnar externa filer bör du alltid kolla om det lyckas eller inte. Öppnar du en fil som inte finns (inte går att skapa) och sedan försöker läsa/skriva till den så vet du inte vad som händer.

Permalänk: https://www.webforum.nu/p/340471

## #6 — Asterix, 2000-03-25T13:33Z

Jag har fixat det nu! Testa med Demo som namn och demo som lösenord så får ni se.

Permalänk: https://www.webforum.nu/p/340472

## #7 — Patrik Nylin, 2000-03-25T13:40Z

Det funkade bra.

Permalänk: https://www.webforum.nu/p/340473

---

Tråden på webben: https://www.webforum.nu/amne/programmering/18990-vad-är-det-för-fel
