Abschicken und (oder) Vorschau
Micha
0 Florian Auer0 Micha0 Micha0 Harald Gabler0 Michael
Hallo Zusammen ,
ich bin schon seit paar Stunden am Skript.
Im Formular gibt es ein Button "Abschicken" und (oder) "Vorschau"
Jedoch erkennt dieses Skript dies nicht. Der fehler müßte an Zeile 40 liegen,
aber WO ist da der Fehler?? Ich bin am verzweifeln.....
---
&referer_test;
if ($ENV{'CONTENT_LENGTH'} == 0 ) { &fehler }
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@feldpaare = split(/&/, $buffer);
foreach $paar (@feldpaare) {
($feldname, $wert) = split(/=/, $paar);
$wert =~ tr/+/ /;
$wert =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$FM{$feldname} = $wert;
}
($absenderUserFound,$absenderEmail)=&absenderVerifyUser($FM{'absendername'},$FM{'pwd'});
if ($absenderUserFound) {
&ausgabe2;
} else {
&falsch2;
}
sub ausgabe2 {
($UserFound,$Email)=&VerifyUser($FM{'username'});
if ($UserFound) {
&ausgabe;
} else {
&falsch;
}
sub ausgabe {
if ($FM{'Abschicken'} ne "") {
&senden;
}
elsif ($FM{'Vorschau'} ne "") {
&vorschau;
}
}
Hierbei kommt immer folgende Fehlermeldung:
CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:
Ich habe es auch mal so versucht:
&referer_test;
if ($ENV{'CONTENT_LENGTH'} == 0 ) { &fehler }
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@feldpaare = split(/&/, $buffer);
foreach $paar (@feldpaare) {
($feldname, $wert) = split(/=/, $paar);
$wert =~ tr/+/ /;
$wert =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$FM{$feldname} = $wert;
}
($absenderUserFound,$absenderEmail)=&absenderVerifyUser($FM{'absendername'},$FM{'pwd'});
if ($absenderUserFound) {
&ausgabe2;
} else {
&falsch2;
}
sub ausgabe2 {
($UserFound,$Email)=&VerifyUser($FM{'username'});
if ($UserFound) {
&ausgabe;
} else {
&falsch;
}
sub ausgabe {
if ($FM{'Abschicken'} ne "") {
&senden;
}
elsif ($FM{'Vorschau'} ne "") {
&vorschau;
}
}
Auch das haut nicht hin.
:-((((((((((
Schöne Grüße, Micha
Hallo Micha,
sub ausgabe2 {
($UserFound,$Email)=&VerifyUser($FM{'username'});
if ($UserFound) {
&ausgabe;
} else {
&falsch;
}
} #!!!!!!!
es könnte daran liegen, dass die Sub 'ausgabe2' nicht mit einem '}' abgeschlossen ist.
Ausserdem solltest du bei der Ausgabe von Text an den Browser immer ' print "Content-type: text/html\n\n"; ' vor die anderen 'print'-Angaben schreiben. Das kann dir Ärger mit HTML-Headern ersparen. So z.B.
print "Content-type: text/html\n\n";
print "Test\n";
MfG Florian Auer
Hallo Florian,
danke für Deine Antwort!
es könnte daran liegen, dass die Sub 'ausgabe2' nicht mit einem '}' abgeschlossen ist.
Nein, dann würde die Fehlermeldung so lauten:
CGI Error
---Schipp---
The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:
Missing right bracket at..........
---Schnapp---
Aber es kommt nur:
---Schnipp---
The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:
---Schnapp---
Ausserdem solltest du bei der Ausgabe von Text an den Browser immer ' print "Content-type: text/html\n\n"; ' vor die anderen 'print'-Angaben schreiben. Das kann dir Ärger mit HTML-Headern ersparen. So z.B.
print "Content-type: text/html\n\n";
print "Test\n";
Das ist auch schon drin.
Schöne Grüße, Micha
Hallo Florian,
um nochmal konkreter auszudrücken;
Diese Zeilen steht in der html-Datei:
<input type="submit" value="Abschicken"> <input type="submit" value="Vorschau"> <input type="reset" value="löschen">
Diese Zeilen spricht im Skript folgende Zeilen nicht an:
if ($FM{'Abschicken'} ne "") {
&senden;
}
elsif ($FM{'Vorschau'} ne "") {
&vorschau;
}
Hallo Micha!
<input type="submit" value="Abschicken"> <input type="submit" value="Vorschau"> <input type="reset" value="löschen">
Ich bin kein Perl-Profi, aber muesste die Zeile in der HTML-Datei nicht so aussehen:
<input type="submit" name="abschicken" value="Abschicken"> <input type="submit" name="vorschau" value="Vorschau">
Die Abfrage im Script erfolgt dann z. B. mit:
if ($FORM{'abschicken'} ne "") {
&senden
}
else {
&vorschau
}
Viele Gruesse
Harald
Ich bin kein Perl-Profi, aber muesste die Zeile in der HTML-Datei nicht so aussehen:
<input type="submit" name="abschicken" value="Abschicken"> <input type="submit" name="vorschau" value="Vorschau">
Die Abfrage im Script erfolgt dann z. B. mit:
if ($FORM{'abschicken'} ne "") {
&senden
}
else {
&vorschau
}Viele Gruesse
Harald
Hallo Harald,
vielen lieben Dank! Jetzt funzt es wunderbar. Ich war wahrscheinlich zu müde und habe diesen Fehler übersehen. ;-))
Nochmals danke und schöne Grüße,
Micha