Passwortänderung per MySQL

grange

Grünschnabel
Hallo!
Bin gerade dabei eine Website auf die Beine zu stellen, wobei es einen internen Bereich gibt, wo der User auch sein Passwort ändern können soll, und zwar erfolgt dann die Eingabe über ein Formular, mit Feld "altes Passwort" "neues Passwort" und "neues Passwort wiederholen"


danach folgt eine Abfrage ob altes pw und altes pw wiederholen gleich ist und ob eines der felder nicht ausgefüllt wurde...

wenn alles passt, soll folgender Befehl ausgeführt werden:

Code:
UPDATE `user_coaches` SET `Passwort` = ''passwort" WHERE `Id` = '1' LIMIT 1;



Meine Frage nun: wie schaut dieser MySQL Befehl in PHP aus?
Und wie schaut dieser Befehl in PHP aus, wenn ich gleichzeitig abfragen will, ob die Formulareingabe "altes Passwort" mit dem in der Datenbank gespeicherten PW übereinstimmt?
Ich hab wie in dem Tutorial ]LoginSystem mit Sessions ein Formular, wo Username und Passwort eingegeben werden müssen, nur werden danach nur Id, Nickname, Vorname und Nachname in ein Array ausgelesen, allerdings nicht das PW (aus sicherheitsgründen)! Wo ist das pw jetzt gespeichert? Irgendwo in den Sessiondaten muss es ja stehen und verwendbar sein für eine Abfrage

Hoffe irgendwer kann mir helfen! Danke schonmal



PHP:
<?
include ("checkuser.php");

$action = $_GET['action'];
if( isset( $action ) && $action == "change" )
   {
   if( empty( $_REQUEST['oldpw'] ) ||
       empty( $_REQUEST['newpw1'] ) ||
       empty( $_REQUEST['newpw2'] ) ) 
      {
        $error .= "Alle Felder müssen ausgefüllt werden!<br>\n";
      }
        else
      {
        if( $_REQUEST['newpw1'] != $_REQUEST['newpw2'] )
        {
          $error .= "Passwortänderung fehlgeschlagen! Passwörter sind ungleich!\n";
        }
        else
        {
          // Datenbankverbindung aufbauen 
          $connectionid = mysql_connect ("localhost", "root", ""); 
          if (!mysql_select_db ("LoginSystem", $connectionid)) 
            { 
              die ("Verbindung zur Datenbank fehlgeschlagen o(-.-)o"); 
            } 

          $pwupdate= "UPDATE ".
          " ".
          "FROM ".
          "user_coaches ".
          "WHERE ".
          "(Nickname like '".$_REQUEST["name"]."') AND ".
          "(Passwort like '".md5 ($_REQUEST["pwd"])."')";
          $result_pwupdate = mysql_query ($pwupdate);
        }
    }
    
if ( $error != "" )
  {
    echo $error;
  }

?>


<html>
<body>
<form action="changepass.php?action=change" method="post">
<table width="298">
<tr>
<td width="138">
<p align="right">Altes Passwort:
</td>
<td width="150">
<input type="password" name="oldpw" size="20">
</td></tr>

<tr><td width="138">
  <p align="right"><br>

Neues Passwort:
</td>
<td width="150"><br><input type="password" name="newpw1" size="20">
</td>
</tr>
<tr>
<td width="138">
<p align="right">Passwort bestätigen:
</td>
<td width="150"><input type="password" name="newpw2" size="20">
</td>
</tr>
</table>
<p>
<input type="submit" value="abschicken">
<input type="reset" value="löschen">
</form>
</body>
</html>
 
Das SQL Query sieht in PHP genau so aus wie dus normal auh machst, mit mysql_query(...) übergibst du ja ganz normale SQL Syntax...
Hoffe mal ich hab deine Frage richtig verstanden...

Greetz...
Sinac
 
Gibt einen Parse Error in Zeile 31!

Zeile 31 =

PHP:
$result_update = mysql_query (UPDATE `user_coaches` SET passwort = '".$_REQUEST['newpw1']."' WHERE Nickname = '".$_SESSION['user_nickname']."');


Die Variable $_SESSION['user_nickname'] wird in der datei login.php erstellt....
tabellenname passt auch und Nickname ist der name des Feldes in der DB
also von den variablen her passt es!
wieso dann der parse error?
 
Zurück