Paswort vergessen Funktion

iLu_is_a_loser

Erfahrenes Mitglied
Hallo ich bastel gerade an einem Loginsystem

nu habe ich ein Problem bei der "Passwort vergessen" Funktion.

PHP:
<?php
if (isset ($_REQUEST["lostpw"])) 
{ 
include '../mysql_connect.php';

    $sql = "SELECT nick, email FOM users WHERE nick=".$_POST['nick'];
    $result = mysql_query($sql);
    $row = @mysql_fetch_assoc($result);

    if (!empty($_POST["nick"]) && !empty($_POST["email"])) {
        if ($row["nick"] == $_POST["nick"] && $row["email"] == $_POST["email"]) {
            
            $reg_pw = "";
            settype($reg_pw, "string");
            $reg_pw = chr(rand(97,122));
            $reg_pw .= chr(rand(97,122));
            $reg_pw .= chr(rand(48,57 ));
            $reg_pw .= chr(rand(97,122));
            $reg_pw .= chr(rand(97,122));
            $reg_pw .= chr(rand(48,57 ));
            $reg_pw .= chr(rand(97,122));
            $reg_pw .= chr(rand(97,122));
            echo "Es wurde eine Email mit dem Passwort verschickt.";
            
            mysql_query("INSERT INTO users pass VALUES '".md5($reg_pw)."' WHERE nick='".$_POST['nick']);

            $content = "Hallo,\n 
            hier ist ihr neues Passwort für www.myAequivalent.de\n
            Passwort: $reg_pw";
            mail($_POST['email'],"Passwort für myAequivalent.de",$content,"from:info@myaequivalent.de");
            
        }        
    } else {
        echo "Bitte Nickname und Email angeben!";
    }
}
else {
?> 
<form action="lostpw.php" method="post" name="lostpw">
<input name="nick" type="text">
<input name="email" type="text">
<input name="lostpw" type="submit"></form>
<?php
}
?>

das war erstmal der Code und zwar, wenn ich nichts ins Formular eintrage oder auch nur eins wird was ausgegeben, aber wenn ich alles richtig eintrage passwiert halt garnichts...

Wieso? Seh ihr den Fehler?



gruß
 
Ich habs mal eben auf die schnelle geändert, doch dran ändern tut es trotzdem nichts :(

Ich finde da jetzt so auch keinen Fehler. Es bringt mich einfach zum verzweifeln...
 
Probier es mal so:
PHP:
<?php
if (isset ($_REQUEST["lostpw"])) 
{ 
	include '../mysql_connect.php';

	$nick = isset($_POST['nick']) ? strip_tags($_POST['nick']) : "";
	$email = isset($_POST['email']) ? strip_tags($_POST['email']) : "";
	
  $sql = "SELECT * FROM `users` WHERE `nick` = '$nick' LIMIT 1";
  $result = @mysql_query($sql);
  $row = @mysql_fetch_assoc($result);

	if ($nick <> "" && $email <> "") {
		if ($row['nick'] == $nick && $row['email'] == $email) {
				$reg_pw = "";
				settype($reg_pw, "string");
				$reg_pw = chr(rand(97,122));
				$reg_pw .= chr(rand(97,122));
				$reg_pw .= chr(rand(48,57 ));
				$reg_pw .= chr(rand(97,122));
				$reg_pw .= chr(rand(97,122));
				$reg_pw .= chr(rand(48,57 ));
				$reg_pw .= chr(rand(97,122));
				$reg_pw .= chr(rand(97,122));
				echo "Es wurde eine Email mit dem Passwort verschickt.";
				
				mysql_query("INSERT INTO `users pass` VALUES '" . md5($reg_pw) . "' WHERE `nick` = '$nick'");

				$content = "Hallo,\n 
				hier ist ihr neues Passwort für www.myAequivalent.de\n
				Passwort: $reg_pw";
				mail($_POST['email'],"Passwort für myAequivalent.de",$content,"from:info@myaequivalent.de");
				
		}        
} else {
		echo "Bitte Nickname und Email angeben!";
}
}
else {
?> 
<form action="lostpw.php" method="post" name="lostpw">
<input name="nick" type="text">
<input name="email" type="text">
<input name="lostpw" type="submit"></form>
<?php
}
?>

Tobee
 
Ja, danke dir... es unktioniert schon halb, doch die Daten werden nur nicht in die Datenbank übernommen, mir wird aber ein neues Passwort zugeschickt.
 
PHP:
if(mail($_POST['email'],"Passwort für myAequivalent.de",$content,"from:info@myaequivalent.de")){
echo "Mail geht";
}
else
{
echo "Geht nicht";
}
Was wird da bei dir angezeigt?

Tobee
 
Hallo iLu_is_a_loser,

da der Datenbank Eintrag des Users schon
besteht sollte man lieber eine UPDATE
Anweisung nehmen.

Weitere mögliche Fehlerquelle »users pass«
das Leerzeichen im Namen der Spalte.

PHP:
mysql_query("UPDATE `users` SET  `users pass`='" . md5($reg_pw) . "' WHERE `nick` = '$nick'");
 
blount hat gesagt.:
Hallo iLu_is_a_loser,

da der Datenbank Eintrag des Users schon
besteht sollte man lieber eine UPDATE
Anweisung nehmen.

Weitere mögliche Fehlerquelle »users pass«
das Leerzeichen im Namen der Spalte.

PHP:
mysql_query("UPDATE `users` SET  `users pass`='" . md5($reg_pw) . "' WHERE `nick` = '$nick'");

also an dem INSERT INTO bzw UPDATE liegt es nicht, es wird nichts geändert.
 
Ich hab den Fehler gefunden.

PHP:
mysql_query("UPDATE `users` SET  `users pass`='" . md5($reg_pw) . "' WHERE `nick` = '$nick'");

user pass ist keine Spalte sondern users ist die Tabelle und pass ist die Spalte....

Danke für eure Hilfe
 
Zurück