Benötige Hilfe beim Passwort zurücksetzen
Hallo allerseits.
Bin grade sehr verwundert und verstehe nix mehr. Ich habe ein MySQL-Login, bei dem ich nun eine Art "Passwort vergessen-Funktion" einbauen möchte. Dazu soll ein zufälliges Passwort gebildet werden und an die vorher in einem Formular eingegebene Email gesendet werden. Das funnktioniert alles auch wunderbar, nur leider ändert er das Passwort in der Datenbank nicht! Das komische ist, dass es in einer anderen PHP mit dem gleichen Code funzt.
Hier ist der Code, vll könnt Ihr irgendwelche Fehler entdecken?
$subject = "Ihr Passwort bei Homepage";
$more = "From: meine@email.land\r\nReturn-Path: meine@email.land\r\nContent-Type:text";
$anz=6;
if ($anz){
$chars = ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890");
for ($i = 0; $i < $anz; $i++) {
$password .= $chars{mt_rand (0,strlen($chars))};
}
}
$connectionid = mysql_connect ("localhost", "User", "Passwort");
if (!mysql_select_db ("Datenbank", $connectionid))
{
die ("Keine Verbindung zur Datenbank");
}
$sql = "SELECT
email, username
FROM
test_users
WHERE
email = '".$Email."'";
$result = mysql_query ($sql);
while($row = mysql_fetch_object($result))
{
$body="Guten Tag $row->username,\n\nSie haben ein neues Passwort angefordert!\nDas neue zufällig erstellte Passwort lautet: $password \n\n\nMeine Homepage\n\nFalls Sie Ihr Passwort nicht zurückgesetzt haben, gehen Sie bitte in Ihr Profil und ändern Sie das Passwort wieder!";
}
if (mysql_num_rows ($result) == "0") {
echo("Es ist kein Benutzer mit dieser Emailadresse in unserer Datenbank vorhanden!");
die();
}
elseif (mysql_num_rows ($result) > 0) {
$aendern = "UPDATE test_users Set passwort = '".md5 ($password)."'
WHERE id = '".$_SESSION["user_id"]."'";
$eintragend = mysql_query($aendern);
mail("$Email", $subject,$body, $more);
header("Location: profil.php");
}
Antwort schreiben
Antwort 1 von Sichtbarer vom 02.05.2019, 13:07 Options
Hallo,
versuch mal die Zeilen
$aendern = "UPDATE test_users Set passwort = '".md5 ($password)."'
WHERE id = '".$_SESSION["user_id"]."'";
so zu ändern:
$user_id2 = $_SESSION["user_id"];
$aendern = "UPDATE test_users Set passwort = '".md5 ($password)."'
WHERE id = '".$user_id2."'";
Antwort 2 von DeluxeStyle vom 02.05.2019, 13:36 Options
hast schon überprüft, ob die $_SESSION["user_id"] gesetzt ist?
für mich sieht es so aus, als ob die Session leer wäre und daher wird nix geändert
Antwort 3 von Uesch vom 04.05.2019, 21:58 Options
Ihr hattet Recht. Ich war wohl etwas übermüdet. Es gab keine Session user-id. Habe das Problem aber jetzt anders geregelt.
Vielen Dank!