Bei Ausgabe gibt es keinen Code...

Hallo,

ich versteh nicht warum mir der Code nicht ausgegeben wird, wenn die Seite aufgerufen wird…??

CODE

[php]

<?php $kdnr = $_POST ['kd']; $kdnrn = rand (0,100); $name = $_POST ['name']; $nm = $_POST ['nm']; if(isset($_POST['submitbutton'])) { $an = "info@--.de" ; $betreff = "Neuer Kunde"; $from = "From: Neuer Benutzer "; $datum = "Datum: ".date("j.n.Y").$nz; $zeit = "Zeit: ".date("H:i").$nz; $zusatz = "Deine Kundennummer: ".$kdnr.$nz; $zusatz2 = "Deine neue Kundennummer, falls du noch keine hattest: ".$kdnrn.$nz; $user = "Dein Vorname ".$name.$nz; $pass = "Dein Nachname ".$nm.$nz; $neu = "Kundennummer bei Rückfragen, bitte immer angeben"; $line = "--------------------------------------------------".$nz ; $text = $datum.$zeit.$zusatz.$zusatz2.$line.$user.$pass.$line.$neu; mail($an,$betreff,$text,$from); echo "$name $nm , deine Kundennummer lautet: $kdnr, falls du noch keine hattest, dann ist das deine neue: $kdnrn"; echo "Bei Rückfragen immer angeben: Kundennummer $kdnr" ; } elseif ($_POST ['kd'] == "") { echo ""; } else { echo "Es gibt noch Fehler beim abschicken"; } ?>

[/php]

Gruß

webi

Vielleicht weil diese bedingung nicht erfüllt ist?
[PHP]if(isset($_POST[‚submitbutton‘]))[/PHP]

Dafür aber immer diese:
[PHP]elseif ($_POST [‚kd‘] == „“)[/PHP]

Du solltest an dessen stelle isset verwenden. Ich glaube du willst prüfen ob diese pariable exsistiert nicht ob sie leer ist. Denn das ist sie immer wenn du das Formular nicht abschickst.

Danke für den Tipp.

Hab den Code jetzt gleich so umgeschrieben, müsste doch auch gehen, eigentlich.

Kommt aber immer die Else Meldung…

CODE:

[php]

<?php $kdnr = $_POST ['kd']; $kdnrn = rand (0,100); $name = $_POST ['name']; $nm = $_POST ['nm']; if(isset($_POST['submitbutton'])) { $an = "info@sieglbua.de" ; $betreff = "Neuer Kunde"; $from = "From: Neuer Benutzer "; $datum = "Datum: ".date("j.n.Y").$nz; $zeit = "Zeit: ".date("H:i").$nz; $zusatz = "Deine Kundennummer: ".$kdnr.$nz; $zusatz2 = "Deine neue Kundennummer, falls du noch keine hattest: ".$kdnrn.$nz; $user = "Dein Vorname ".$name.$nz; $pass = "Dein Nachname ".$nm.$nz; $neu = "Kundennummer bei Rückfragen, bitte immer angeben"; $line = "--------------------------------------------------".$nz ; $text = $datum.$zeit.$zusatz.$zusatz2.$line.$user.$pass.$line.$neu; mail($an,$betreff,$text,$from); echo "$name $nm , deine Kundennummer lautet: $kdnr, falls du noch keine hattest, dann ist das deine neue: $kdnrn"; echo "Bei Rückfragen immer angeben: Kundennummer $kdnrn"; } else { echo "Es gibt noch Fehler beim abschicken"; } ?>

[/php]

webi

Wahrscheinlich weil du das Formluar nie abschickst…

[PHP]if(isset($_POST[‚submitbutton‘]))[/PHP]?

Ich schätze, er will genau das überprüfen, d.h. überprüfen, ob das Formular abgeschickt wurde und dementsprechend nur dann den gewünschten Code ausführen.

Dafür würde einer der folgenden Codes passen [wenn meine PHP-Kenntnisse nicht so eingerostet sind, wie ich glaube D:]

[php]
if($_POST[‚submitbutton‘] = true)
[/php]
[php]
if($_POST[‚submitbutton‘])
[/php]

Mit isset ist das schon richtig, denn die Variable wird ja nur beim absenden gesetzt. Sie enthält allerdings den Wert aus dem value Attribut nicht true.

Ich vermute er schickt das Formular nie ab und deswegen kommt immer der else zweig :wink:

Ein Submitbutton () enthält nie und nimmer das value-Attribut O_O

Sonst ist PHP bugged…o.O

Bei mir klappts das mit true IMMER!

Formular nicht abgeschickt? Glaube nicht, dass er so dumm ist.

falsch und es hat nix mit PHP sondern mit HTML zu tun ( das value Tag )

[html][/html]somit ist die Value auf „Schick das Formular ab“ - der User kann es nun im Browser sehen aber die Value wird net mit versandt das ist korrekt !

Argh…ich mein doch, $_POST[‚submitbutton‘] enthält nicht value.

Ist das jetzt richtig? Bei mir schon :stuck_out_tongue:

Entschuldige, da habe ich Dich missverstanden …

Ja, das ist korrekt - der Button sendet keine Value …

Natürlich tut er das:
[PHP]

<?php echo $_POST['value-submit']; ?>[/PHP] Testet es, die variable enthält immer den wert des value attributes und dein true funktioniert nur weil du nicht typsicher prüfst. Alle werte ausser: 0, 0.0, '0', '', NULL und false geben bei einem normalen vergleich true zurück. Du wirst aber probleme bekommen sobald du versuchst $_POST['fddsfsf'] !== true zu prüfen.