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-ID: 163963

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

Ausgedruckt am: 05.11.2024 um 08:11 Uhr

SlainteMhath
SlainteMhath 05.04.2011 um 11:40:26 Uhr
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
ITLocke
ITLocke 05.04.2011 um 12:44:34 Uhr
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
weissnichtwas
weissnichtwas 05.04.2011 um 13:13:45 Uhr
Goto Top
das die variable undefiniert ist weiss ich auch, ich finde es eben komisch das es über $_POST nicht geht
SlainteMhath
SlainteMhath 05.04.2011 um 13:34:36 Uhr
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
86263
86263 05.04.2011 um 14:50:17 Uhr
Goto Top
Du könntest natürlich mal einen var_dump machen.
Dann siehst du das auch.
Arano
Arano 05.04.2011 um 17:33:05 Uhr
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
yannick-server
yannick-server 12.04.2011 um 09:19:45 Uhr
Goto Top
Warum Textdatei? Für was gibt es MySQL, du machst es dir nur unnötig kompliziert und sicherer ist MySQL auch!
Arano
Arano 12.04.2011 um 20:03:21 Uhr
Goto Top
Start Offtopic
Lies den Beitrag, dann weist du es !
Ende Quelltext