• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

if entscheidung funktioniert nicht

Status
Für weitere Antworten geschlossen.

aufsmaulhorst

Neues Mitglied
Hallo! ich prüfe ob die eingaben in dem formular gesetzt sind mit isset.. des hat bisher immer funktioniert doch jetzt bockt es rum und ich versteh nicht warum.. bitte helft mir.
Obwohl ich keins der pflichtfelder ausgefüllt habe gibt er mir dieses ergebnis im browser aus: "daten gesendet" ....und manchmal schribt er auch noch die elseanweisung usw. mit in den browser obwohl ich die echo-anweisung mit ; beende.

hier der cade von formular.php aufs nötigste reduziert:

PHP:
<?PHP
if (isset($_POST['name']))
{
echo " <html><head><title>hallo</title></head><body>daten gesendet</body></html> " ;

}
    
else
{
        
echo " <html><head><title>hallo</title></head><body>pflichtfelder ausf&uuml;llen</body></html> " ; 
}       
?>
und hier das formular:
PHP:
<form method="POST" action="formular.php">
<table border="0" style="width: 400px;">
<tr>
<td>Firma</td>
<td colspan="3"><input name="firma" class="long"/></td>
</tr>
<tr>
<td>Name*</td>
<td><input name="name" class="short"/></td>
<td>Vorname</td>
<td><input name="vorname" class="short"/></td>
</tr>
<tr>
<td>Stra&szlig;e/Nr.</td>
<td><input name="strasse" class="short"/></td>
<td>PLZ/Ort</td>
<td><input name="ort" class="short"/></td>
</tr>
<tr>
<td>Telefon*</td>
<td><input name="telefon" class="short"/></td>
<td>Telefax</td>
<td><input name="telefax" class="short"/></td>
</tr>
<tr><td>&nbsp;</td></tr>
<tr>
<td>E-Mail*</td>
<td colspan="3"><input name="emailadresse" class="long"/></td>
</tr>
<tr>
<td>Betreff*</td>
<td colspan="3"><input name="betreff" class="long"/></td>
</tr>
<tr>
<td>Nachricht*</td>
<td colspan="3"><textarea wrap=virtual  name="nachricht" class="frm_txt" ></textarea></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" value="Abschicken" class="btn"/></td>
<td>&nbsp;</td>
<td><input type="reset" value="Zur&uuml;cksetzen" class="btn"/></td>
</tr>
</table>

</form>
ich bin echt am verzweifeln...
 
Werbung:
Wenn Du ein Formular mittel Submit-Schaltfläche abschickst, dann sind die Postvariablen der Felder gesetzt, allerdings ohne Inhalt. Normalerweise prüfst Du ob, ob die Submit-Schaltfläche gedrückt wurde (dazu musst Du der Schaltfläche einen Namen geben), und dann prüfst Du ab, ob in dem Feld, in diesem Fall name ein gültiger Wert steht.

Gruß thuemmy
 
... oder er gibt es mit so aus im browser:

daten gesendet" ; } else { echo " pflichtfelder ausfüllen" ; } ?>


..er hört einfach nicht auf am ende von echo!!!!
 
Werbung:
So, nochmal von vorne.

Die Abfrage, ob $_POST['name'] gesetzt ist, die ist falsch. Durch das absenden des Formulars sind sämtliche Variablen gesetzt, auch ohne Inhalt. Stattdessen mache Dein Formular so
PHP:
<form method="POST" action="formular.php">
<table border="0" style="width: 400px;">
<tr>
<td>Firma</td>
<td colspan="3"><input name="firma" class="long"/></td>
</tr>
<tr>
<td>Name*</td>
<td><input name="name" class="short"/></td>
<td>Vorname</td>
<td><input name="vorname" class="short"/></td>
</tr>
<tr>
<td>Stra&szlig;e/Nr.</td>
<td><input name="strasse" class="short"/></td>
<td>PLZ/Ort</td>
<td><input name="ort" class="short"/></td>
</tr>
<tr>
<td>Telefon*</td>
<td><input name="telefon" class="short"/></td>
<td>Telefax</td>
<td><input name="telefax" class="short"/></td>
</tr>
<tr><td>&nbsp;</td></tr>
<tr>
<td>E-Mail*</td>
<td colspan="3"><input name="emailadresse" class="long"/></td>
</tr>
<tr>
<td>Betreff*</td>
<td colspan="3"><input name="betreff" class="long"/></td>
</tr>
<tr>
<td>Nachricht*</td>
<td colspan="3"><textarea wrap=virtual  name="nachricht" class="frm_txt" ></textarea></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="send" value="Abschicken" class="btn"/></td>
<td>&nbsp;</td>
<td><input type="reset" value="Zur&uuml;cksetzen" class="btn"/></td>
</tr>
</table>

</form>
Achte auf die Definition des submit-inputs. Hier ist name="send" neu hinzugekommen.

formular.php würde dann so aussehen:
PHP:
   <?PHP
if (isset($_POST['send'])) {   // formular.php wurde über das Formula aufgerufen
   if ($_POST['name'] != "") { // Feld name gefüllt
      echo " <html><head><title>hallo</title></head><body>daten gesendet</body></html> " ;
   }
   else { // feld name nicht gefüllt
      echo " <html><head><title>hallo</title></head><body>pflichtfelder ausf&uuml;llen</body></html> " ; 
   }
}
else {   // formular.php wurde von hand aufgerufen
   tu_was();
}       
?>
Ich hoffe, ich konnte Dir ein bisschen weiterhelfen.

Gruß thuemmy
 
Werbung:
danke für deine hilfe aber jetzt gibt mir der browser mit genau deinem skript:

daten gesendet" ; } else { // feld name nicht gefüllt echo " pflichtfelder ausfüllen" ; } } else { // formular.php wurde von hand aufgerufen tu_was(); } ?>



..mit meinem skript von vorher ging es normalerweise bei anderen geschichten auch immer.

könnte es vielleicht irgendwie an dem formular liegen dass ich so gekrigt hab oder an irgendetwas anderem??
 
Also nun weiß ich auch nicht mehr weiter.

Ich habe das Script eben zwar aus der Hand und ohne zu testen geschrieben, habe es aber eben bei mir mit dem xampp getestet, und es macht genau das, was ich erwarte, bzw. auch das, was Du erwartest.

Gruß thuemmy
 
Werbung:
Ach... nun weiß ich was war... das ist doch php und das läuft nur, wenn es auf einem Server läuft. Was mich allerdings wundert, dass der Browser sämtliche Ausgaben unterdrückt hat, bis zum ersten echo. Zumindest ist es im FF 3 so. Der IE 6 verhält sich da ganz anders.

Gruß thuemmy
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben