Passwort anzeigen und ändern

turtledino

Mitglied
Hallo,
momentan benutze ich das Loginscript aus dem Tutorial , welches auch einwandfrei läuft. Aber ich habe folgendes Problem.
Der User soll nach dem einloggen die möglichkeit haben sein Kennwort ändern zu können. Habe grad erst angefangen mich mit php zu beschäftigen und habe daher sehr wenig Ahnung.
Folgende eingaben sollen dafür gemacht werden:
- aktuelles Passwort
- neues Passwort
- neues Passwort (wiederholung)

Schon mal vielen Dank im Vorraus

Edit: Nachdem ändern, soll das neue Passwort angezeigt werden.
 
Mach drei Input Felder für das alte, bzw die zwei neuen Passwörter.
Sende das ganze an ein Script welches überprüft ob das alte PW stimmt, dann überprüfst du ob die zwei neuen PW übereinstimmen. Ist das der Fall kannste das neue PW in die Datenbank schreiben.

(p.s.: Evtl. noch die md5 Verschlüsselung einbauen)
 
Beim PHP teil.
Wo das alte passwort überprüft wird, und wenn es richtig ist, das neue in die DB geschrieben wird (Danach auch anzeigen auf der Seite). Hab ja gesagt, das ich ein absoluter Anfänger bin.
 
Also das anzeigen des Passworts kannste knicken ,da der [phpf]md5[/phpf] gespeichert wird. (für mehr lese das wichtig zu [phpf]sha1[/phpf] und [phpf]md5[/phpf])

Das Hinzufügen von Datensätzen in eine Mysql Datenbank ist hier : http://tut.php-q.net unter Hinzufügen von Datensätzen näher erläutert. (obwohl du es nach dem User Script können solltest..)

Und den Vergleich der eingebenen Passwörter kannst du mit einer einfachen [phpf]if[/phpf] Abfrage realisieren...
 
komme nicht weiter

*grrr* Ich hasse es anfänger zu sein.
Ich Blicke wieder nirgends durch. Ich habe die sql anfrage geschrieben (klappt aber natürlich nicht). Aber wie soll das mit dem übergeben der im Formular eingegebenen Daten gehen?
Bitte nochmal um Hilfe
 
Wäre vielleicht sinnvoll an dieser Stelle mal kurz ein Codeschnipsel liegen zu lassen, damit dir konkret geholfen werden kann. Man muss schon ein wenig selber machen und es hilft dir vielleicht auch mehr, wenn du lernst und nicht lernen lässt. ;)
 
Code

OK hier ist der code. Ist eh alles Falsch, oder?
PHP:
<?php
 include ("checkuser.php");
?>
<?PHP
$id = $_SESSION["user_id"];
// Datenbankverbindung aufbauen 
$connectionid = mysql_connect ("localhost", "XXX", "XXX"); 
mysql_select_db ("XXX", $connectionid) or die ("Keine Verbindung zur Datenbank");

$sql = UPDATE benutzerdaten SET passwort = $passwort_neu_2 WHERE ID = $id;
?>
und dann das Formular
PHP:
<form name="passwort" action="<?php echo $PHP_SELF ?>" method="post"> 
          <table>
          <tr>
           <td align=left><b>altes Passwort:</b></td>
           <td><input name="passwort" type="text" size="40" maxlength="40" value="$passwort"></td>
         </tr> 
         <tr> 
          <td><b>neues Passwort:</b></td> 
          <td><input name="passwort_neu" type="text" size="40" maxlength="40" value="$passwort_neu"></td>
         </tr> 
         <tr> 
           <td><b>neues Passwort (wiederholung):</b></td>
           <td><input name="passwort_neu_2" type="text" size="40" maxlength="40" value="$passwort_neu_2"></td>
         </tr> 
         <tr> 
           <td><input type="reset"  value="L&ouml;schen"></td> 
           <td><input type="submit" name="schreiben" value="Senden" onClick="return test()"></td>
         </tr>
       </table>
</form>
Mehr habe ich noch nicht, weil ich keine Ahnung habe wie das funktionieren könnte.
 
PHP:
<?php 
include ("checkuser.php"); 

$id = $_SESSION["user_id"]; 
// Datenbankverbindung aufbauen 

$connectionid = mysql_connect ("localhost", "XXX", "XXX"); 

mysql_select_db ("XXX", $connectionid) or die ("Keine Verbindung zur Datenbank"); 

$sql = "SELECT COUNT(*) as count FROM benutzerdaten WHERE passwort = '$passwort'";

$iAnzahl = mysql_query($sql);

if($iAnzahl)
{
 if($passwort_neu == $passwort_neu_2)
 {
  $sql = "UPDATE benutzerdaten SET passwort = '$passwort_neu_2' WHERE ID = '$id'";

  mysql_query($sql);

 //Ausgeben dass Passwort geändert wurde
 }
 else
 {
  //Die neuen Passwörter stimmen nicht überein
 }
}
else
{
 //Das alte Passwort stimmt nicht überein
} 
?>

Das ist der PHP-Code. Also getestet hab ichs nicht, aber müsste eigentlich stimmen. Wenns nicht stimmt dann schlagt mich :)

edit: eigentlich war es mal formatiert, aber nun hab ich keine Lust nochmal alles einzurücken :)
 
geht fast alles

O.K. es klappt soweit alles, aber wenn man die Datei aufruft, löscht der das aktuelle Kennwort automatisch, und man darf nichts mehr in das Feld "altes Passwort" eintragen. Warum macht der das? Und wie bekomme ich das weg? Ansonsten klappt alles. Vielen Dank für deine Hilfe.

PS: Hier noch mal der komplette Code:
PHP:
<?php 
include ("checkuser.php"); 
?>
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body>

<form name="passwort" action="<?php echo $PHP_SELF ?>" method="post"> 
          <table> 
          <tr> 
           <td><b>altes Passwort:</b></td> 
           <td><input name="passwort" type="text" size="40" maxlength="40"></td> 
         </tr> 
         <tr> 
          <td><b>neues Passwort:</b></td> 
          <td><input name="passwort_neu" type="text" size="40" maxlength="40"></td> 
         </tr> 
         <tr> 
           <td><b>neues Passwort (wiederholung):</b></td> 
           <td><input name="passwort_neu_2" type="text" size="40" maxlength="40"></td> 
         </tr> 
         <tr> 
           <td><input type="reset"  value="L&ouml;schen"></td> 
           <td><input type="submit" name="schreiben" value="Senden"></td> 
         </tr> 
       </table> 
</form>

<?php
$id = $_SESSION["user_id"]; 
// Datenbankverbindung aufbauen 

$connectionid = mysql_connect ("localhost", "XXX", "XXX"); 

mysql_select_db ("XXX", $connectionid) or die ("Keine Verbindung zur Datenbank"); 

$sql = "SELECT COUNT(*) as count FROM benutzerdaten WHERE Kennwort = '$passwort'"; 

$iAnzahl = mysql_query($sql); 

if($iAnzahl) 
{ 
if($passwort_neu == $passwort_neu_2) 
{ 
  $sql = "UPDATE benutzerdaten SET Kennwort = MD5('$passwort_neu_2') WHERE Id = '$id'"; 

  mysql_query($sql); 

  echo "Dein Passwort wurde erfolgreich geändert."; //Ausgeben dass Passwort geändert wurde 
} 
else 
{ 
 echo "Die neuen Passwörter stimmen nicht überein";  //Die neuen Passwörter stimmen nicht überein 
} 
} 
else 
{ 
 echo "Das alte Passwort ist falsh"; //Das alte Passwort stimmt nicht überein 
}
?>
</body>
</html>
 
Zurück