Wer kann mir Helfen

Tetsuo

Erfahrenes Mitglied
Kann mir jemand sagen was an diesem Code falsch is?:

PHP:
<?
if ($aktion=="check"){                             #beim absenden des Formulars wird die variable $aktion gesetzt damit das script weiss das es nicht der erste Aufruf war...
        if(eingabe_check($name,$mail,$betreff,$text)==1){   # eingabe_check überprüft die Eingaben, sie gibt bei Korrekten angaben 1, ansonsten eine Fehlermeldung zurück
        echo "Name: ".$name."<br>";
		echo "Betreff: ".$betreff."<br>";
        echo "Email: ".$mail."<br>";
        echo "Text: ".nl2br($text)."<br>";
		@ mail("o.sebel@freesurf.ch", $betreff, $text ,"From: $mail");
    }
    else{
        echo eingabe_check($name,$mail,$betreff,$text);    # Die durch eingabe_check Entdeckten Fehler werden ausgegeben
        formular_ausgabe($name,$mail,$betreff,$text);      # Und das Formular wird mit den bereits erfolgten eingaben angezeigt
    }
}
else{
    formular_ausgabe($name,$mail,$betreff,$text);          # ist $aktion nicht gesetzt wird einfach das Formular angezeigt
}

function formular_ausgabe($name,$mail,$betreff,$text){ # Die funktion gibt nur das Formular aus, entweder mit eingaben die schon gemacht wurden,
    global $PHP_SELF;                         # oder (beim ersten aufruf, wo die die Variablen noch lehr sind) ohne.
    echo "<form name=\"formular\" action=\"".$PHP_SELF."?aktion=check\" method=post>
          <table><tr><td colspan=2 align=left><b>Name:</b></td></tr>
           <tr><td colspan=2><input name=\"name\" type=text size=40 maxlength=40 value=\"".$name."\"></td></tr>
           <tr><td colspan=2 align=left><b>E-mail:</b></td></tr>
           <tr><td colspan=2><input name=\"mail\" type=text size=40 maxlength=40 value=\"".$mail."\"></td></tr>
		   <tr><td colspan=2 align=left><b>Betreff:</b></td></tr>
           <tr><td colspan=2><input name=\"betreff\" type=text size=40 maxlength=40 value=\"".$betreff."\"></td></tr>
		   <tr><td align=left><b>Text:</b></td></tr>
           <tr><td colspan=2><textarea name=\"text\" rows=10 cols=115 wrap=virtual>".$text."</textarea></td></tr>
           <tr><td><input type=reset  value=\"L&ouml;schen\"></td>
           <td align=right>
           <input type=submit name=\"schreiben\" align=right  value=\"Senden\" onClick=\"return test()\"></td></tr></table>";
}
function eingabe_check($name,$mail,$text){
    if ($name == "") $fehler = $fehler." ihren Namen"; # Alle eingaben werden darauf geprüft ob sie überhaupt gemacht wurden
    if ($text == "") $fehler = $fehler." ihen Text"; 
	if ($betreff == "") $fehler = $fehler." geben Sie einen Betreff ein";  # wurden sie nicht gemacht wird die Variable $fehler gesetzt oder eine weitere
    if ($mail == ""){                                  # Fehlermeldung angehängt.
        $fehler = $fehler." ihre Emailadresse";
    }
    else {                                             # Der Email adresse schenken wir besondere aufmerksamkeit, wir wollen uns ja nicht ganz so einfach verarschen lassen...
        if(strstr($mail,"@") && strstr($mail,".")){    #deshalb überprüfen wir ob ein @ und wenigstens ein . darin enthalten sind.
        }                                              # das heisst zwar noch immer nicht das die Adresse Existiert aber sie ist wenigstens formal richtig
        else {
            $fehler = $fehler." echte Mailadresse";
        }
   }
  if ($fehler =="") return 1;                         # gab es keinen Fehler bei der überpüfung geben wir 1 zurück
  else{ return "Bitte geben sie noch<b>".$fehler."</b> ein.<br>";}     #ansonsten die Fehlermeldung
}
?>

Es zeigt mir folgende meldung :

Parse error: parse error, expecting `','' or `';'' in c:\apache\htdocs\homepage\test\formmailer.php on line 6

Bin für jede hilfe dankbar !

Oli
 
echo "Email: ".$mail."<br>"; <- so gehts net
echo "Email: '.$mail.'<br>"; <- wenn dann so
echo "Email: /".$mail./"<br>"; <- oder so



mir ist grad noch mal ne möglichkeit eingefallen:

echo "Email: .$mail. <br>";

so sollte es auch gehen


*g*

greetz
 
@haldjo1 jo ist doch

echo " var $var ausgabe"; ist ja klar
die variable innerhalb der " wird umgesetzt

echo " var " . $var . " ausgabe";
geht auch da die punkte eine zeichen kette zusammen vebinden (verketten)
ist also wie eine zeichenkette zu sehen

echo " var ",$var," ausgeben";

komma geht auch (aber nur bei echobefehl)

wenn aber oben ein komma oder punkt fehlt mault php :-)
 
jetzt zeigt es mir zwar keinen fehler mehr an doch das ganze wird auch nicht per e-mail an mich geschickt an was liegt das????

Oli
 
Du hast unter Win32 meistens kein Sendmail -> keine eMail-Funktion :)
Installier dir Hamster oder lass es auf nem Linuxserver laufen! :)
 
Zurück