Problem mit PHP IF ELSE

  • Hallo,


    ich bin seit einiger Zeit dabei mich in PHP und MySQL einzuarbeiten. Aktuell bin ich dabei eine einfache Profilseite zu erstellen die auch ermöglicht die Daten zu ändern.
    Gewollt ist, dass man wenn man das Passwort nicht ändern möchte die Felder "Aktuelles Passwort", "Neues Passwort" und "Neues Passwort wiederholen" leer lässt. In diesem Fall sollen einfach nur die anderen Daten wie Vorname, Email usw. geändert werden.



    Lässt man nun die Felder leer, springt das Script zum letzten else also zu $LangUserActualPwdFail. Gebe ich allerdings das aktuelle Passwort ein macht das Script was es soll. Es prüft auch ob PW1 und PW2 gleich sind.


    Ich weis nicht wo ich hier einen Fehler gemacht habe. Vielleicht übersehe ich einfach nur eine Kleinigkeit.

    "I tell computers to do things. Sometimes they listen."


    Chris Kragt | kragt itservices | Informatikkaufmann

    Web: www.kragt.io | Mail: hi [at] kragt.io

  • Meiner Meinung nach springt dein Script niemals in das erste If rein.


    Ich halte die Bedingung !$actualpw für fragwürdig. Meine letzten Programmierarbeiten sind leider schon paar Monate her, aber nach meiner Auffassung kann das nicht funktionieren.


    //EDIT: Versuch mal if($actualpw == NULL || $actualpw == "")

  • Vor dem IF kommt nichts mehr außer die $_POST die nötig sind.
    Normalerweise müsste er ja dann direkt das abfragen und nicht erst irgend wo anders rein springen.


    PHP
    1. $name = mysql_real_escape_string($_POST['name']);
    2. ...


    Das !$VAR benutze ich an vielen Stellen erfolgreich um zu prüfen ob eine Variable leer oder voll ist.


    Verwende ich if($actualpw == NULL || $actualpw == "") statt !$actualpw tut sich anschließend leider gar nichts mehr.

    "I tell computers to do things. Sometimes they listen."


    Chris Kragt | kragt itservices | Informatikkaufmann

    Web: www.kragt.io | Mail: hi [at] kragt.io

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von Tacqila ()

  • Kein Content. Header und Navigation laden, aber der Content bleibt weis.


    Ich hab die Echos in der Reihenfolge wie oben durch nummeriert 1 - 4.
    Wenn ich wie oben beschrieben vorgehe kommt direkt echo #4. Ändere ich das Passwort ohne Fehler bei #2 und mache ich beim neuen Passwort einen Fehler kommt echo #3. Soweit geht das ja auch.

    "I tell computers to do things. Sometimes they listen."


    Chris Kragt | kragt itservices | Informatikkaufmann

    Web: www.kragt.io | Mail: hi [at] kragt.io

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von Tacqila ()



  • Nun funktioniert es. ich habe es ganz einfach mit


    PHP
    1. if ($actualpw == 0)


    probiert und schon läufts. Ist ja eigentlich nix anderes wie oben nur ohne das oder.
    Wenn ich allerdings aus der 0 ein NULL mache gehts wieder nicht...


    Warum es aber mit


    PHP
    1. if (!$actualpw)


    nicht geht ist mir ein absolutes Rätsel. Wie gesagt. An anderer Stelle läuft das so auch...

    "I tell computers to do things. Sometimes they listen."


    Chris Kragt | kragt itservices | Informatikkaufmann

    Web: www.kragt.io | Mail: hi [at] kragt.io