HTML HTML/PHP: Formular geht in allen Browsern nur im Firefox nicht

RPS

Cadet 4th Year
Registriert
Sep. 2005
Beiträge
64
Ich komm einfach nicht drauf, warum dass Formular nur mit Chrome geht und nicht mit dem Firefox.

Code:
<form id="form" action="index2.php" method="post">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="220px"><label for="vorname"><img src="vorname.png"></label><br><input id="vorname" name="vorname" size="25" type="text" /></td>
    <td><label for="nachname"><img src="nachname.png"></label><br><input id="nachname" name="nachname" size="25" type="text" /></td>
  </tr>
</table><br>
<label for="hausnr"><img src="hausnr.png"></label><br>
<input id="hausnr" name="hausnr" size="62" type="text" /><br><br>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="220px"><label for="plz"><img src="plz.png"></label><br><input id="plz" name="plz" size="25" type="text" /></td>
    <td><label for="ort"><img src="ort.png"></label><br><input id="ort" name="ort" size="25" type="text" /></td>
  </tr>
</table><br>
<label for="email"><img src="email.png"></label><br>
<input id="email" name="email" size="62" type="text" /><br><br>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="220px"><label for="fach"><img src="fach.png"></label><br><input id="fach" name="fach" size="25" type="text" /></td>
    <td><label for="geb"><img src="geb.png"></label><br><input id="geb" name="geb" size="25" type="text" /></td>
  </tr>
</table><br>

<br>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="right"><input id="submit" name="submit" type="image" src="senden.png" value="Weiter zu Schritt 2" /></td>
     <td width="151" align="right">&nbsp;</td>
  </tr>
</table>

</form>

Und das hier passiert auf der Seite danach:

Code:
<?php
if (isset($_POST["submit"]))
{
 
// Sammeln der Formulardaten
$an = "meineadresse@server.de";
$vorname = $_POST['vorname'];
$nachname = $_POST['nachname'];
$hausnr = $_POST['hausnr'];
$plz = $_POST['plz'];
$ort = $_POST['ort'];
$email = $_POST['email'];
$fach = $_POST['fach'];
$geb = $_POST['geb'];
 
// Mailheader UTF-8 fähig machen
$mail_header = 'From:' . $email . "n";
$mail_header = 'Content-type: text/plain; charset=UTF-8' . "rn";
 
// Nachrichtenlayout erstellen
$message = "
Name:        $nachname
Vorname:	$vorname
Email:      $email
Adresse:  $hausnr - $plz - $ort
Fach:  $fach
Geburtstag: $geb
";
 
// Verschicken der Mail
mail($an, $nachname, $message, $mail_header );
};
?>

Wär super wenn mir jemand helfen könnte! :)

Wenn ich auf der zweiten Seite

echo $_POST['vorname'];

versuche gibt er gar nichts aus. Also kommt im Firefox schon gar nichts mit Post an. Nur warum?
 
Zuletzt bearbeitet:
Teste mal mit GET ob der Inhalt des Formulars in der URL landet, dann kannst du es schon mal eingrenzen
 
Okay, also ein paar Sachen die ich getestet habe:

Wenn ich

echo $_POST['vorname'];

vor dem

if (isset($_POST["submit"]))

schreibe, wird es korrekt ausgegeben. Also landen die Formulardaten auf Seite 2. Wenn ich die if (isset($_POST["submit"])) zeile rausschmeiße (mit der Klammer die unten zugeht), dann schickt mir der Firefox eine E-Mail die leer ist. Also es steht drin:

Name:
Vorname:
Email:
Adresse: - -
Fach:
Geburtstag:

Die Variablen werden nicht ausgegeben. ?.?
 
Leeres Formular abgeschickt? $_POST['submit'] ist eh "true", wenn das Formular übergeben wird. Das hat mit dem Client eigentlich nichts zu tun, da die Formulardaten ja auf dem Server ankommen. Versuch es mal mit :

PHP:
if(isset($_POST['submit']) && !empty($_POST['vorname']))

Edit: gib doch mal mit var_dump($_POST) alle Werte aus, die aus dem Formular übergeben werden.

Gruß
 
Zuletzt bearbeitet:
Okay, aktueller Status:

Mit if(isset($_POST['submit']) && !empty($_POST['vorname'])) scheint zumindest das if loszugehen. Wenn ich var_dump($_POST) ausgebe kommt folgendes raus:

array(10) { ["vorname"]=> string(8) "Testneu2" ["nachname"]=> string(8) "testneu2" ["hausnr"]=> string(12) "Testneustr 2" ["plz"]=> string(5) "12939" ["ort"]=> string(8) "Gerbrunn" ["email"]=> string(23) "meineadresse@gmail.com" ["fach"]=> string(5) "test2" ["geb"]=> string(10) "01.01.1901" ["submit_x"]=> string(3) "100" ["submit_y"]=> string(2) "14" }

Per Mail kam aber noch nichts.
Ergänzung ()

Okay, es scheint zu gehen! Dauert zwar ne ganze Weile bis die Mails kommen aber jetzt sieht es so aus als ob alle sankommen würde!

Ich glaube es lag an dem fehlenden ; nach

if (isset($_POST["submit"]))

Danke euch allen trotzdem!
 
RPS schrieb:
Ich glaube es lag an dem fehlenden ; nach

if (isset($_POST["submit"]))

Ein Semikolon nach einem if-statement ist nicht sinnvoll. Damit hebelst du es komplett aus und führst den Block danach in jedem Fall aus

Code:
if( TRUE ) {
    echo 'yep';
}


vs.

Code:
if( TRUE );  // Tue genau gar nichts


// Programm wird regulär weiter ausgeführt
{
    echo 'yep';
}


Ansonsten ist es vermutlich hilfreich, sich eventuelle Fehler anzeigen/loggen zu lassen.
http://stackoverflow.com/questions/1053424/how-do-i-get-php-errors-to-display
 
Zurück
Oben