Die if schleife läuft nicht!

  • bin kein Pro, aber probier mal

    PHP
    1. if (!empty($_POST['eintrag']))


    Würde sogar noch prüfen, ob jemand alles ausgefüllt hat, was er/sie soll:

    PHP
    1. if (!empty($_POST['besuchername']) and !empty($_POST['email']) and !empty($_POST['eintrag']))


    url hab ich mal weggelassen, falls es kein muss sein sollte ....

  • Ich denk mal nicht. $_POST is ja nicht leer, also wird geschrieben.
    In dem Fall ja dann "" (nix) =)


    Mach doch eine Abfrage vorm Schreiben, ob besuchername, email, ect "empty" ist.





    edit:

    PHP
    1. [url] => http://


    ^ ist ja gar nicht leer =)
    Irgentwoher kommt dir da das http:// rein.

  • Hallo,


    Das http:// kommt von dem value (<input type="text" name="url" value="http://" size="60"/>)
    und beinhaltet nicht die Schleife mit $_POST['eintrag']! Ich kann es auch raus nehmen und es ändert sich nichts.


    Allerdings habe ich die Schleife jetzt so geändert:

    SQL
    1. if ($_POST['eintrag']!="" and $_POST['besuchername']!="")


    und siehe da, es kommt kein leerer Eintrag mehr in Mysql hinein.
    Kann mir mal einer sagen wieso so und nicht nur mit (if ($_POST['eintrag']!="" )


    Danke


    PS Mir ist noch aufgefallen das der Curser im Formular Feld textarea (eintrag) nicht an erster Stelle steht.
    Erst wenn ich mit Enter in die zweite Zeile geht, rutscht er ganz nach links.
    Glaube zwar nicht das es etwas bedeutet, wollte es aber mal erwähnen.

  • Würde mich dann auch interessieren.
    Musste heute auch feststellen, dass man "or" und "and" nicht mixen kann ... oder nicht immer ... komisch.


    Das mit dem ! interessiert mich sowieso mal.
    $x == ... gleich, klar
    empty($x ... wenn leer ... klar


    aber was heisst eigentlich (ausgesprochen) !empty(... ?
    "Not empty" ?


    Ich frage, weil das ! ja noch mehr im "hintergrung" machen muss.
    zB

    PHP
    1. if (!fwrite($handle, $ToSave))
    2. {
    3. $Error ...
    4. }


    Hier würde es ja heissen "Wenn nicht".

  • So, bevor hier wilde Vermutungen angestellt werden:


    Das Problem ist, dass dein textarea nicht leer ist. Du hast dadurch dass du mit Entertaste und Tab das ganze eingerückt hast (was prinzipiell ja nicht schlecht ist), etwas in der textarea drin stehen. Wenn du es mal so schreibst:


    HTML
    1. <textarea></textarea>


    Dann sollte es funktionieren.


    cottton : Man kann AND und OR sehr wohl mixen, man muss dann nur die Klammern richtig setzen. Und so viele if-Abfragen kann man doch wohl in eine zusammenfassen. Nebenbei geht es nicht darum, dass das komplette POST-Array leer ist, sondern lediglich um $_POST['eintrag']. (und eventuell noch [benutzername])
    Weiterhin macht es wenig Sinn, zum Beispiel auf leer-Sein von der Website zu überprüfen, weil diese eigentlich kein Pflichtfeld sein sollte, weil nun mal nicht jeder eine Website hat.


    Zum Ausrufezeichen: Das heißt einfach "nicht" - sprich in dem Beispiel mit fwrite: Wenn fwrite nicht funktioniert, dann wird das in der Klammer ausgeführt, Hat man auch bei Datenbankabfragen indem man darauf überprüft ob eine Ressource zurückgegeben wird und ansonsten einen Fehler ausgibt.


    Grüße