Problem mit Fehlerseite bei Gästebuch

Hallo zu zusammen,
habe ein Problem mit den Fehlerseiten bei meinem Gästebuch.
Das Gästebuch ist in Perl programmiert, also mit Fileendung .cgi.

Das Problem ist folgendes:
Mein Gästebuch besteht aus 3 Feldern. Name, Mailadresse und Beitrag.
Das Beitragsfeld ist ein TEXTAREA. Funktioniert so weit alles wunderbar. Auch die Übernahme des Zeilenumbruchs in die HTML-Seite funktioniert.
Wird ein Eintrag in einem Feld vergessen, gelangt man auf eine Fehlerseite. Ergänzt man jetzt hier den Eintrag z.B. im Feld NAME, und klickt auf Eintragen, funktioniert zwar der Eintrag, ABER: Im Feld Beitrag, wo vorher nur ein Zeilenumbruch war, sind jetzt zwei. Das ist das Problem.

Zur Verdeutlichung hier meine Seite (noch im Aufbau): http://vorschau.ziegler-motorsport.de

Wäre für jede Anregung und Tip dankbar. Falls noch Unklarheiten sind, fragt mich einfach.

Vielen Dank schon mal,
Andi

Hallo zu zusammen,

Hi,

Das Gästebuch ist in Perl programmiert, also mit Fileendung
.cgi.

Das eine hat zwar mit dem anderen gar nichts zu tun, aber sei’s drum.

Wird ein Eintrag in einem Feld vergessen, gelangt man auf eine
Fehlerseite. Ergänzt man jetzt hier den Eintrag z.B. im Feld
NAME, und klickt auf Eintragen, funktioniert zwar der Eintrag,
ABER: Im Feld Beitrag, wo vorher nur ein Zeilenumbruch war,
sind jetzt zwei. Das ist das Problem.

Die Uebertragung von einem Formular zum naechsten geht ueber ein mit type=„hidden“ und dem gleichen name=„comment“ wie im vorher. Dort generiert das Script den Value und ersetzt dort alle \n durch
\n. Beim erneuten Abschicken durch das script ersetzt es wiederum alle \n durch
\n, was dann schon zwei

\n macht. Naja, und so weiter, ziemlich kaputt. Sorge im script einfach dafuer, dass alle \n nur durch
oder besser noch
ersetzt werden.

HTH,
Gruss vom Frank.

Hallo,

habe ein Problem mit den Fehlerseiten bei meinem Gästebuch.
Das Gästebuch ist in Perl programmiert, also mit Fileendung
.cgi.

Das Problem ist folgendes:

[…]

ABER: Im Feld Beitrag, wo vorher nur ein Zeilenumbruch war,
sind jetzt zwei. Das ist das Problem.

Erwartest du ernsthaft dass wir ein Skript für dich debuggen ohne dass du uns das Skript zur Verfügung stellst? Glaskugeln sind nicht wirklich effizienz…

Meine Glaskugel sagt mir: du hast irgendwo ein chomp vergessen.

HTH,
Moritz

Hallo,
danke dür die Antwort, nur leider weiß ich noch nicht wo ich genau was ändern muss.

Hier der Code-Ausschnitt:

read(STDIN, $buffer, $ENV{‚CONTENT_LENGTH‘});
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%0D/
/g;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack(„C“, hex($1))/eg;
$value =~ s///g;

if ($allow != 1) {
$value =~ s/]|\n)*>//g;
}

$FORM{$name} = $value;
}

Hoffe du kannst mir nochmal helfen, bin in Perl absoluter Anfänger.

Schon mal vielen Dank im vorraus
Andi

Hi,

Das Gästebuch ist in Perl programmiert, also mit Fileendung
.cgi.

Das eine hat zwar mit dem anderen gar nichts zu tun, aber
sei’s drum.

Wird ein Eintrag in einem Feld vergessen, gelangt man auf eine
Fehlerseite. Ergänzt man jetzt hier den Eintrag z.B. im Feld
NAME, und klickt auf Eintragen, funktioniert zwar der Eintrag,
ABER: Im Feld Beitrag, wo vorher nur ein Zeilenumbruch war,
sind jetzt zwei. Das ist das Problem.

Die Uebertragung von einem Formular zum naechsten geht ueber
ein mit type=„hidden“ und dem gleichen
name=„comment“ wie im vorher. Dort
generiert das Script den Value und ersetzt dort alle \n durch

\n. Beim erneuten Abschicken durch das script
ersetzt es wiederum alle \n durch
\n, was dann schon
zwei

\n macht. Naja, und so weiter,
ziemlich kaputt. Sorge im script einfach dafuer, dass alle \n
nur durch
oder besser noch
ersetzt
werden.

HTH,
Gruss vom Frank.

Hallo,
danke dür die Antwort, nur leider weiß ich noch nicht wo ich
genau was ändern muss.

Hier der Code-Ausschnitt:

Du solltest dringend einmal perldoc CGI lesen ( http://www.oreilly.de/catalog/perlmodger/manpage/cgi… ), das Auswerten von Formulardaten geht damit wesentlich schöner als mit diesem (ziemlich alten, komplizierten) Code…

$value =~ s/%0D/
/g;

Lass die Zeile mal weg, und ersetze dafür vor dem endgültigen Speichern alle \n durch

Alexander

P.S: http://www.worldmusic.de/perl ist recht lesenswert…

Hallo,
komme leider immer noch nicht weiter. Könntest du mir bitte sagen was ich wo einfügen muss.
Wäre euch für die Hilfe echt dankbar!

Vielen herzlichen Dank schon mal im vorraus,
Andi

Du solltest dringend einmal perldoc CGI lesen (
http://www.oreilly.de/catalog/perlmodger/manpage/cgi… ),
das Auswerten von Formulardaten geht damit wesentlich schöner
als mit diesem (ziemlich alten, komplizierten) Code…

$value =~ s/%0D/
/g;

Lass die Zeile mal weg, und ersetze dafür vor dem endgültigen
Speichern alle \n durch

Alexander

P.S: http://www.worldmusic.de/perl ist recht lesenswert…

Hallo !

Hallo,
komme leider immer noch nicht weiter. Könntest du mir bitte
sagen was ich wo einfügen muss.
Wäre euch für die Hilfe echt dankbar!

Wo du das einfügen musst, geht nunmal aus dem Stück Code, was du gepostest hast, nicht hervor…
Schicke mir ggfs. mal das Ganze Script…

Alexander