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.
- if (!$actualpw) {
- $query = "UPDATE user SET name = '$name', givenname = '$givenname', adress = '$adress', country = '$country', zip = '$zip', city = '$city', email = '$email', telephone = '$telephone', fax = '$fax', voip = '$voip', room = '$room' WHERE guid = '$userid'";
- $sql = mysql_query($query) or die(mysql_error());
- echo '<meta http-equiv="refresh" content="0; URL=?view=user&action=edit">
- <img src="_websystem/themes/v3.default/images/loader/pacman.gif" style="float:left;padding-right:10px">'.$LangUserChangesSaved.'';
- }
- else {
- $LogQuery = "SELECT password FROM user WHERE guid = '$userid'";
- $LogSql = mysql_query($LogQuery);
- $LogRow = mysql_fetch_object($LogSql);
- if($LogRow->password == $actualpw) {
- if ($newpw1 == $newpw2) {
- $query = "UPDATE user SET name = '$name', givenname = '$givenname', adress = '$adress', country = '$country', zip = '$zip', city = '$city', email = '$email', telephone = '$telephone', fax = '$fax', voip = '$voip', room = '$room', password = '$newpw2' WHERE guid = '$userid'";
- $sql = mysql_query($query) or die(mysql_error());
- echo '<meta http-equiv="refresh" content="0; URL=?view=user&action=edit">
- <img src="_websystem/themes/v3.default/images/loader/pacman.gif" style="float:left;padding-right:10px">'.$LangUserChangesSaved.'';
- }
- else {
- echo $LangUserTwicePwdFail;
- }
- }
- else {
- echo $LangUserActualPwdFail;
- }
- }
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.