perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 27
Click for quality!




11.02.2012 / 08:26

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragGB Script auf HomePC - warum klappt es nicht?
Seitenanfang
Hallo Leuts,

Ich habe ein Gästebuch Script und wollte es nun auf meinem HomePC laufen lassen. (apache+activeperl). Es läuft zwar ohne Fehlerausgabe in der errorlog, jedoch wird in die Datei nichts geschrieben, wie das das Script eigentlich vorsieht. Woran kann das liegen?

Hier die html Seite:

<html>
<body>
<h1>Mein Gästebuch</h1>
Bitte eintragen...<p>
<form action="cgi-bin/gaestebuch.pl" method="post">
<table>
<tr>
<td>Name</td>
<td><input type=text name="name" size=30></td>
</tr>
<tr>
<td>E-Mail</td>
<td><input type=text name="email" size=30></td>
</tr>
<tr>
<td>Ort</td>
<td><input type=text name="ort" size=30></td>
</tr>
<tr>
<td>Land</td>
<td><input type=text name="land" size=30></td>
</tr>
</table>
Kommentar:<br>
<textarea name="kommentar" rows=5 cols=45></textarea>
<p><input type=submit value="eintragen">
</form><p><hr><br>
<!--beginn-->
</body>
</html>

Und hier das PerlScript dazu:

#!d:/perl/bin/perl.exe

$gaestebuch = '../gaestebuch.html';
$trennzeichen = '<hr>';
$neu = 1;

if($ENV{'REQUEST_MODE'} eq 'GET')
{
$eingabe = $ENV{'QUERY_STRING'};
}
else
{
read(STDIN, $eingabe, $ENV{'CONTENT_LENGTH'});
}

@paare = split(/&/, $eingabe);
foreach $paar (@paare)
{
($schluessel, $wert) = split(/=/, $paar);
$wert =~ tr/+/ /;
$wert =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack
("C", hex($1))/eg;
$FORM{$schluessel} = $wert;
}

&fehler unless ($FORM {'name'} && $FORM {'kommentar'});

sub fehler
{
print "Content-Type: text/html\n\n";
print "<html><body><center>\n";
print "<h1>Unvollständige Angaben</h1></center>\n";
print "Es müssen mindestsn die Felder Name und ";
print "Kommentar ausgefüllt werden.<p>\n";
print "</body></html>";
exit;
}

sub lesen
{
open(DATEI,"<$gaestebuch") || die "Fehler";
@gaestebuch = <DATEI>;
close(DATEI);
}

sub suchen
{
open(DATEI,">$gaestebuch") || die "Fehler";
foreach (@gaestebuch)
{
if ($_ =~ m/<!--beginn-->/)
{
&eintrag;
}
else
{
print DATEI $_;
}
}
close (DATEI);
}

sub eintrag
{
if ($neu == 1)
{
print DATEI "<!--beginn-->\n";
}
print DATEI "<blockquote>$FORM{'kommentar'}
</blockquote>\n";
print DATEI "$FORM{'name'}";
if ($FORM{'email'})
{
print DATEI "\<$FORM{'email'}\><br>\n";
}
else
{
print DATEI "<br>\n";
}
if($FORM{'ort'})
{
print DATEI "$FORM{'ort'}";
}
if ($FORM{'land'})
{
print DATEI "$FORM{'land'}";
}
if ($FORM{'ort'} || $FORM{'land'})
{
print DATEI "<br>\n";
}
print DATEI "$trennzeichen<br>\n";
if ($neu == 0)
{
print DATEI "<!--beginn-->\n";
}
}
print "Location: $gaestebuch\n\n";

Wie gesagt, das Programm läuft anscheinend problemlos durch und print Location bringt mich auch zur html Seite, jedoch hat sich an ihr nichts verändert.
danke für die Hilfe

Datum: 01.08.2005-11:28

Beitragre: GB Script auf HomePC - warum klappt es nicht?
Seitenanfang
du öffnest in der sub eintrag den filehandle DATEI nicht.

Datum: 04.08.2005-14:22

Beitragre: GB Script auf HomePC - warum klappt es nicht?
Seitenanfang
Du denkst schon dran das Du die Datei auch sperren musst, oder?

Datum: 05.08.2005-00:32

Beitragre: GB Script auf HomePC - warum klappt es nicht?
Seitenanfang
Ja, aber öffnen musst du sie trotzdem.

aber es wäre denk ich um einiges besser wenn du die daten in einer datenbank speicherst und nicht direkt ins html-file schreibst.

Datum: 05.08.2005-10:18

-






-
-