Probleme mit Formular

Ich versuche mir PHP selbst beizubringen, und habe einfach ein Tutorial gemacht, leider kommt eine Fehlermeldung (parse error). Warum geht dieser Code nicht:

<?PHP if ($nachricht) {
// hier steht der mail-Befehl zum Versenden mail("[[email protected]](mailto:[email protected])","Nachricht von $name",$nachricht); } else { // HTML-Code zur Ausgabe des Formulars
Ihr Name:

Ihre Nachricht:

}
?>

Wenn ich mich nicht taeusche, muss man die HTML-Ausgaben
mit echo ausgeben.
Den parse-error bekommst du, weil php die HTML-Tags nicht
„kennt“. Sind also keine php-Schluesselwoerter.

} else {
// HTML-Code zur Ausgabe des Formulars
 echo("

";
echo(„Ihr Name:
„);
echo(„Ihre Nachricht:
„);
echo(““);
echo(““);
}
?>

Gruss
Patrick

Also leider hat er immer noch denselben Fehler!

trotzdem danke, noch eine Idee?

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Ich bekomme so keinen parse-error. Der Fehler muss nicht zwingend in
der Zeile sein, die er angibt („parse error … on line xx“).
Poste doch mal etwas mehr code (oder im Zweifelsfall nur die Zeile,
die angeblich den Fehler enthalten soll).

Gruss
Patrick

ups, jetzt geht es wirklich!!! noch eine frage, kann ich einen befehl eingeben, daß nach klick auf abschicken eine andere seite aufgerufen wird?

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

ups, jetzt geht es wirklich!!! noch eine frage, kann ich einen
befehl eingeben, daß nach klick auf abschicken eine andere
seite aufgerufen wird?

Möglichkeit eins: im eine andere Seite angeben, an die die Daten geschickt werden.

Möglichkeit zwei: Headerdaten übermitteln, die einen Redirect veranlassen. Dann kannst du notfalls auch auf verschiedene Seiten umleiten, je nachdem wie das Ergebnis des Skripts aussieht. Darfst aber vorher eben keine Ausgabe (PHP/HTML) an den Besucher machen, sonst ist die Sache gelaufen.

Siehe dazu: http://www.dclp-faq.de/q/q-http-redirect.html

methode eins, ok. aber die andere habe ich nicht verstanden, meinst du die php-seite darf bevor die daten abgeschickt werden keinen htmlcode enthalten?

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

methode eins, ok. aber die andere habe ich nicht verstanden,
meinst du die php-seite darf bevor die daten abgeschickt
werden keinen htmlcode enthalten?

Genau. Da du HTTP-Headerdaten senden willst (die haben nichts mit dem -Bereich der HTML-Datei zu tun), müssen diese eben gesendet werden, bevor es t.

Wie sähe es denn aus, wenn eine halbe HTML-Seite durch die Leitung kommt, und dann eine Servermeldung „Och nee, schau mal da drüben nach…“? Das macht keinem Browser Spaß :wink:

Also erst auswerten, und dann entscheiden, ob du umleiten willst oder doch HTML auslieferst.

1 Like

//- Versuch das mal…
//-------------------------------------------------------------

<?php // Name und Adresse an welche die Mail gesendet werden soll.
$toemail = "Homepage Formular ";

if(!isset($action)){
?>



Homepage MailForm
Name:

E-Mail:

Betreff:

Nachricht:


Typ:

Text 
  
HTML 
 

 


<?php }else{
$from = $fname . "";
$headers = "From: $from \r\n";
if($rdType == 1){
$headers .= "MIME-Version: 1.0\n" . "Content-type: text/html; charset=iso-8859-1";
$message = stripslashes($message);
}else{
$headers .= "MIME-Version: 1.0\n" . "Content-type: text/plain; charset=iso-8859-1";
}
$ok = @mail($toemail, $subject, $message, $headers);
if ($ok) {
echo "Die Mail wurde versendet. Danke.";
echo "Zurück";
} else {
echo "Konnte Mail nicht senden.";
echo "Zurück";
}
}

?>


//---------------------------------------------------------

So ist es wohl besser hatte den PRE Tag nicht gesetzt.

<?php // Name und Adresse an welche die Mail gesendet werden soll.<br />// $toemail = "Homepage Formular <deinemail>";<br>$toemail = "Vom Homepage Formular ";<br>if(!isset($action)){<br>?&gt;<br><br><br>Homepage MailForm<br>Name:<br><br> E-Mail:<br><br> Betreff:<br><br> Nachricht:<br><br><br> Typ:<br><br> Text <br>   <br> HTML <br>  <br><br>  <br><br><br><?php }else{<br /> $from = $fname . "";<br> $headers = "From: $from \r\n";<br> if($rdType == 1){<br> $headers .= "MIME-Version: 1.0\n" . "Content-type: text/html; charset=iso-8859-1";<br> $message = stripslashes($message);<br> }else{<br> $headers .= "MIME-Version: 1.0\n" . "Content-type: text/plain; charset=iso-8859-1";<br> }<br> $ok = @mail($toemail, $subject, $message, $headers);<br> if ($ok) {<br> echo "Die Mail wurde versendet. Danke.";<br> echo "<a href="javascript:%20history.back(-1)" rel="nofollow">Zurück</a>";<br> } else {<br> echo "Konnte Mail nicht senden.";<br> echo "<a href="javascript:%20history.back(-1)" rel="nofollow">Zurück</a>";<br> }<br> }<br><br>?&gt;<br><br><br></deinemail>