Ich will ein Kontaktformular erstellen. Das funktioniert auch, aber dazu will ich das man, nachdem man das Formular ausgefüllt hat, sehen kann ob man die Daten richtig eingegeben hat. Also man füllt das Formular aus, klickt z.B. auf "weiter" und dann kommt eine neue Seite, auf der man sehen kann was man vorher eingegeben hat. Ich habs versucht das zu machen aber es klappt irgendwie nicht.
Code vom Formular:
<form action="HandleForm.php" method=POST>
Name:<br><input type=TEXT name=Name size=20><br> Emailadresse: <br><input type=TEXT name=Email size=35><br> Betreff:<br><input type=TEXT name=Betreff size=40><br> Text:<br><textarea name=Text rows=10 cols=40></textarea><br>
<br>
<input type=SUBMIT name="SUBMIT" value="Weiter"> <input type=RESET name=Reset value=Zurücksetzen </form>
Der Code oben funktioniert.
Dann der Code für die Daten angucken:
<?php
print ("Mein Name ist
$Name.<br>\n");
print ("Meine Emailadresse ist
$Email.<br>\n");
print ("Mein Betreff ist
$Betreff.<br>\n");
print ("Mein Text ist:<BR>\n
$Text<br>\n");
?>
So müsste es funktionieren, aber wenn ich auf "weiter" klick dann kommt nur:
Mein Name ist .
Meine Emailadresse ist .
Mein Betreff ist .
Mein Text ist:
Kann mir jemand weiterhelfen. Ich sehe nämlich kein Fehler.
Code vom Formular:
<form action="HandleForm.php" method=POST>
Name:<br><input type=TEXT name=Name size=20><br> Emailadresse: <br><input type=TEXT name=Email size=35><br> Betreff:<br><input type=TEXT name=Betreff size=40><br> Text:<br><textarea name=Text rows=10 cols=40></textarea><br>
<br>
<input type=SUBMIT name="SUBMIT" value="Weiter"> <input type=RESET name=Reset value=Zurücksetzen </form>
Der Code oben funktioniert.
Dann der Code für die Daten angucken:
<?php
print ("Mein Name ist
$Name.<br>\n");
print ("Meine Emailadresse ist
$Email.<br>\n");
print ("Mein Betreff ist
$Betreff.<br>\n");
print ("Mein Text ist:<BR>\n
$Text<br>\n");
?>
So müsste es funktionieren, aber wenn ich auf "weiter" klick dann kommt nur:
Mein Name ist .
Meine Emailadresse ist .
Mein Betreff ist .
Mein Text ist:
Kann mir jemand weiterhelfen. Ich sehe nämlich kein Fehler.
Versuch es mal damit:
<?
echo "Mein Name ist ".$_POST['Name'].".<br>
Meine Emailadresse ist ".$_POST['Email'].".<br>
Mein Betreff ist ".$_POST['Betreff'].".<br>
Mein Text ist: ".$_POST['Text']."<br>";
?>
Jeppa, ist register_globals (in der php.ini) nämlich off -was auch besser wäre-, so landen die egpcs (environment, GET, POST, cookie, server) Variablen nicht in eigenen, globalen Variablen, sondern sind nur über die entsprechenden Arrays aufrufbar, also $_SERVER, $_POST usw.
Dein letzter input-Tag ist übrigens nicht geschlossen.
Ist zwar nicht zwingend, aber es wäre doch hübscher, würdest du einheitlich arbeiten und einfach mal alle Werte aller Attribute in "..." setzen.
Dein letzter input-Tag ist übrigens nicht geschlossen.
Ist zwar nicht zwingend, aber es wäre doch hübscher, würdest du einheitlich arbeiten und einfach mal alle Werte aller Attribute in "..." setzen.
Jo,
jetzt brauch ich nochmal Hilfe.
Jetzt gehts ja und wie kann man dann die Daten an eine Emailadresse schicken??
Jetzt sieht es so aus:
<?
echo "Mein Name ist ".$_POST['Name'].".<br>
Meine Emailadresse ist ".$_POST['Email'].".<br>
Mein Betreff ist ".$_POST['Betreff'].".<br>
Mein Text ist: ".$_POST['Text']."<br>";
?>
<br>
<input type=SUBMIT name=Submit value="Abschicken">
Was muss ich da jetzt machen??
jetzt brauch ich nochmal Hilfe.
Jetzt gehts ja und wie kann man dann die Daten an eine Emailadresse schicken??
Jetzt sieht es so aus:
<?
echo "Mein Name ist ".$_POST['Name'].".<br>
Meine Emailadresse ist ".$_POST['Email'].".<br>
Mein Betreff ist ".$_POST['Betreff'].".<br>
Mein Text ist: ".$_POST['Text']."<br>";
?>
<br>
<input type=SUBMIT name=Submit value="Abschicken">
Was muss ich da jetzt machen??
Via mail(). Hoffen wir, dass dein Provider das ganze vernünftig konfiguriert hat oder du 'nen (v)Server besitzt und das ganze selbst einstellen kannst ^^
mail($empfängeradresse,$_POST['betreff'],$_POST['Text'],"FROM: $absenderadresse") or die("Mail konnte nicht gesendet werden");
Natürlich solltest du vorher noch ne Sicherheitsabfrage machen, ob auch alle angaben korrekt sind und alle TAG's entfernen
Bsp: (Mail auf Richtigkeit prüfen anhand @):
if(!strstr($_POST['Email'],"@")){Print("Bitte geben Sie eine gültige Emailadresse an!");}
Natürlich kann man die auch noch auf die Endungen etc. prüfen. Aber auf alle Fälle solltest du die Einagen nochmal auf Inhalte prüfen mit:
if(emtpy($_POST['TEXT'])){Print("Bitte geben Sie einen Text an!");}
So geht das dann immer weiter^^
Denk dran, das ein Post Form immer nur zur nächsten Seite weitergeleitet wird, dann musst du ein neues Form erzeugen und die Eingaben alle in einen Hidden-Input eingeben. Ich rate dir dazu, SESSIONS zu nutzen, da es leichter ist und man weniger Arbeit+Fehlerquellen hat ;-)
//edit: sagt mal, wie funzt hier das php-Highlighting?^^
Logge dich ein um einen Beitrag zu schreiben.