weissnichtwas
Goto Top

PHP Passwort ändern

Passwort ändern

Ich brauche einen PHP-Script um das Passwort zu ändern:
<?php
$username = $_POST["username"];  
$password = $_POST["password"];  
$newpassword = $_POST["newpassword"];  
$newpassword2 = $_POST["newpassword2"];  

if ($newpassword == $newpassword2)
{
    $userdatei = fopen("user.txt","r+");  
    while (!feof($userdatei))
    {
        $zeile = fgets($userdatei,5000);
        $userdata = explode("|", $zeile);  
    }
    rewind($userdatei, $password and $username);
    fwrite($userdatei, $username);
    fwrite($userdatei, "\n");  
    fwrite($userdatei, $newpassword);
    fclose($userdatei);
}
?>

ich finde den Fehler einfach nicht. Wenn ich die Datei teste dann steht übrigens das:

Notice: Undefined index: username in C:\Users\Toni\Desktop\Programmieren\xampp\htdocs\test\passwortaendern.php on line 2

Notice: Undefined index: username in C:\Users\Toni\Desktop\Programmieren\xampp\htdocs\test\passwortaendern.php on line 3

das versteh ich nicht. Wieso steht das da?

Content-Key: 163963

Url: https://administrator.de/contentid/163963

Printed on: April 25, 2024 at 06:04 o'clock

Member: SlainteMhath
SlainteMhath Apr 05, 2011 at 09:40:26 (UTC)
Goto Top
Auch dir kein "Hallo",

Notice: Undefined index: username [...]
das versteh ich nicht. Wieso steht das da?

Weil das Feld "username" nicht in deinem Formular, das du nicht gepostet hast, vorkommt.

Slainte
Member: ITLocke
ITLocke Apr 05, 2011 at 10:44:34 (UTC)
Goto Top
Hallo,

das ist kein Fehler, sondern ein Hinweis, dass die Variable nicht definiert wurde.

PS in Zeile 3 verwendest du für dein Passwort den Usernamen!
Das solltest du ändern.

Gruß Locke
Member: weissnichtwas
weissnichtwas Apr 05, 2011 at 11:13:45 (UTC)
Goto Top
das die variable undefiniert ist weiss ich auch, ich finde es eben komisch das es über $_POST nicht geht
Member: SlainteMhath
SlainteMhath Apr 05, 2011 at 11:34:36 (UTC)
Goto Top
Zitat von @weissnichtwas:
das die variable undefiniert ist weiss ich auch, ich finde es eben komisch das es über $_POST nicht geht
Ich quote mich mal wieder selber...

Weil das Feld "username" nicht in deinem Formular, *das du nicht gepostet hast*, vorkommt.
Zaunpfahl und so face-smile
Mitglied: 86263
86263 Apr 05, 2011 at 12:50:17 (UTC)
Goto Top
Du könntest natürlich mal einen var_dump machen.
Dann siehst du das auch.
Member: Arano
Arano Apr 05, 2011 at 15:33:05 (UTC)
Goto Top
Hi

sag ein mal, was hast du mit diesem Script überhaupt vorgehabt ?
Das ist meiner Meinung teilweise sogar überflüssig...

Z.B.: Die Zeilen 10-14, die While-Schleife, sie durchläuft einmal die gesamte Datei und teile jede Zeile anhand der Pipe (|) wobei $userdata immer wieder __überschrieben__ wird.
Zeile 15, rewind(), hm.. laut PHP-Manual - rewind() erwartet die Funktion nur einen Parameter und setzt außerdem den Dateizeiger wieder auf __den Anfang__ der Datei.
Zeile 16, write $username, jetzt wird der vorhandene Text mit dem Usernamen (die vermutlich identisch sind) überschrieben (Was wenn der neue Name __kürzer__ ist !?)
Zeile 17, write \n, wieso schreibst du denn nun einen Zeilenumbruch ? In der While-Schleife lässt die Die Zeilen doch anhand der Pipe trennen !?
Zeile 18, write $newpassword, Hm... Passwörter sollen nicht in Klartext gespeichert werden, dann kann sie ja jeder lesen ! (Selbe Problematik wie in Zeile 16: Was wenn das neue Passwort __kürzer__ ist !?)

Also, was hattest du eigentlich vor und wie sollen die Daten gespeichert werden, alle in eine Zeile durch die Pipe getrennt, Name und Passwort in je eine Zeile, stehen nur die Daten eines Users in der Datei oder sind es mehrere Datensätze !?

ich finde es eben komisch das es über $_POST nicht geht
Definiere "ES" !
ES = das eine Notice erzeugt wird ? Funktioniert doch prima :p ;)


~Arano
Member: yannick-server
yannick-server Apr 12, 2011 at 07:19:45 (UTC)
Goto Top
Warum Textdatei? Für was gibt es MySQL, du machst es dir nur unnötig kompliziert und sicherer ist MySQL auch!
Member: Arano
Arano Apr 12, 2011 at 18:03:21 (UTC)
Goto Top
Start Offtopic
Lies den Beitrag, dann weist du es !
Ende Quelltext