Hey,
Ich hab ein riesen Problem, und zwar die passwort vergessen funktion funktioniert nicht richtig.
Es wird zwar ein PW versendet, aber dieses funktioniert nicht.
Was braucht ihr um mir zu helfen?
mfg
Druckbare Version
Hey,
Ich hab ein riesen Problem, und zwar die passwort vergessen funktion funktioniert nicht richtig.
Es wird zwar ein PW versendet, aber dieses funktioniert nicht.
Was braucht ihr um mir zu helfen?
mfg
Inhalt der Datei content/intern/daten.php
Ausschließen, dass es nicht am "Mensch" liegt (Leerzeichen vor/nach dem Passwort, GROSS/kleinschreibung beachten, usw.)
Menschliches Versagen kann ich ausschliessen, da ich es selbst mehrmals probiert habt mit eingeben, copy&paste aber es hat einfach nicht geklappt.
hier mal die php
mfgPHP-Code:
<?
if (isset($_POST['anf_daten']) && isset($_POST['anf_email'])) {
$_POST['anf_email'] = addslashes ($_POST['anf_email']);
$daten_anfordern = mysql_fetch_array(db_query("SELECT `uid`,`emailadresse` FROM ".$db_prefix."_emaildaten WHERE emailadresse = '".$_POST['anf_email']."' LIMIT 1"));
if ($daten_anfordern['emailadresse']) {
$neues_passwort = create_code(8);
db_query ("UPDATE ".$db_prefix."_kontodaten SET passwort='".md5($neues_passwort)."' WHERE uid=".$daten_anfordern['uid']."");
$email_message = 'Hallo,
Du hast soeben die Zugangsdaten für '.$seitenname.' angefordert.
----------------------------------------------------------
Kontonummer: '.$daten_anfordern['uid'].'
Passwort: '.$neues_passwort.'
----------------------------------------------------------
Jetzt kannst Du dich wieder auf '.$domain.'
einloggen und das Passwort wieder ändern!
Mit freundlichen Grüßen
Das '.$seitenname.' Team
';
usermail ($daten_anfordern['emailadresse'], "$seitenname Passwort", $email_message, '"'.$seitenname.'" <'.$betreibermail.'>');
$error_msg = '<b>Passwort wurde zugesandt!</b><br>';
} else {
$error_msg = '<b>Emailadresse nicht bekannt!</b><br>';
}
}
?>
<?head("Zugangsdaten anfordern");?>
<p align="center"><font color="red"> <?=$error_msg;?></font></p>
Wenn Du deine Zugangsdaten mal verloren haben solltest oder diese einfach nur mal verlegt hast,
kannst Du hier diese Daten wieder in Erfahrung bringen. Wir senden an Deine bei uns gespeicherte
Emailadresse sofort die Daten zu.<br>
<form action="" method="post">
<div align="center">
<b>Angemeldetet Email-Adresse: </b><input type="Text" name="anf_email"> <input type="Submit" name="anf_daten" value="Anfordern!" style="width:120px;">
</div>
</form>
<?foot();?>
Die Datei ist schon mal identisch mit der Originalen, daran liegts also nicht.
Funktioniert das "Passwort Ändern" im Userprofil?
Hast du an der Datei lib/session.lib.php Änderungen vorgenommen?
hast du das klammid und nickname schnipsel eingebaut oder kann man sich nur mit nicknamen einloggen?
hast du villeicht anstatt den nick die klammid eingegeben weils so in der erinnerungsmail stand?
Das müsste ich testen, mom....
hier mal die session.lib.php
ne hab da nix wieteres reingemacht, benutz das vms ohne klammanbindungPHP-Code:
<?
/*
Datei : session.lib.php
Änderungen in dieser Datei nur dann vornehmen wenn Sie wissen was Sie tun!
*/
@session_start();
// Variabeln definieren
if (!isset($_SESSION['login'])) $_SESSION['login'] = "";
if (!isset($_SESSION['werber'])) $_SESSION['werber'] = "0";
if (!isset($_SESSION['uid'])) $_SESSION['uid'] = "0";
if (!isset($_POST['nickname'])) $_POST['nickname'] = "";
if (!isset($_POST['passwort'])) $_POST['passwort'] = "";
if (!isset($_POST['checkid'])) $_POST['checkid'] = "";
if (!isset($_POST['autologin'])) $_POST['autologin'] = "";
if (!isset($_GET['logout'])) $_GET['logout'] = "";
if (!isset($_GET['ref'])) $_GET['ref'] = "0";
if ($_SESSION['werber'] == "0") $_SESSION['werber'] = (int)$_GET['ref'];
// Seiteneinstellungen laden...
$pageconfig = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_seitenkonfig LIMIT 1"));
if ($pageconfig['wartung'] == 1 && $_SESSION['uid'] != $admin_id) {
setCookie('uid','',time()-86400*30);
setCookie('passwort','',time()-86400*30);
setCookie('autologin','',time()-86400*30);
$_SESSION['uid'] = "";
$_SESSION['passwort'] = "";
$_SESSION['login'] = "";
header ("location: ".$domain."/wartung.php");
die();
}
// Login
if ($_POST['checkid'] == 'Login' && $_POST['nickname'] && $_POST['passwort']) {
$_POST['nickname'] = addslashes($_POST['nickname']);
$login_check = db_query("SELECT k.uid,k.passwort,k.status,k.hinweis FROM
".$db_prefix."_userdaten u
LEFT JOIN ".$db_prefix."_kontodaten k ON k.uid=u.uid
WHERE u.nickname='".$_POST['nickname']."' AND k.passwort='".md5($_POST['passwort'])."' LIMIT 1");
if (mysql_num_rows($login_check)) {
$login_check = mysql_fetch_array($login_check);
// Wenn User noch nicht freigeschaltet!
if ($login_check['status'] == 0) {
$_SESSION['uid'] = "";
$_SESSION['passwort'] = "";
$_SESSION['login'] = "";
$_GET['content'] = '/error/kein_zutritt';
}
// Wenn beim User alles O.K. ist!
if ($login_check['status'] == 1) {
db_query("UPDATE ".$db_prefix."_kontodaten SET login_ip='".$ip."' , loginzeit='".time()."' WHERE uid=".$login_check['uid']." and passwort='".md5($_POST['passwort'])."' LIMIT 1");
db_query("UPDATE ".$db_prefix."_werberdaten SET aktivzeit='".time()."' WHERE uid=".$login_check['uid']." LIMIT 1");
if ($_POST['autologin'] == 'true') {
setCookie('uid',$login_check['uid'],time()+86400*30);
setCookie('passwort',$login_check['passwort'],time()+86400*30);
setCookie('autologin','true',time()+86400*30);
}
$_SESSION['uid'] = $login_check['uid'];
$_SESSION['passwort'] = $login_check['passwort'];
$_SESSION['login'] = "true";
header ("location: ".$domain);
die();
}
// Wenn User gesperrt wurde!
if ($login_check['status'] == 2) {
$_SESSION['uid'] = "";
$_SESSION['passwort'] = "";
$_SESSION['login'] = "";
$_GET['content'] = '/error/user_gesperrt';
}
// Wenn es den User garnicht giebt
} else {
$_GET['content'] = '/error/kein_zutritt';
}
} else {
if ($_POST['checkid'] == 'Login') $_GET['content'] = '/error/kein_zutritt';
}
// Autologin
if ($_SESSION['login'] != 'true' && isset($_COOKIE['autologin']) && isset($_COOKIE['uid']) && isset($_COOKIE['passwort'])) {
$_COOKIE['uid'] = (int)$_COOKIE['uid'];
$_COOKIE['passwort'] = addslashes ($_COOKIE['passwort']);
$login_check = db_query("SELECT `uid`,`passwort`,`status`,`hinweis` FROM ".$db_prefix."_kontodaten WHERE uid=".$_COOKIE['uid']." and passwort='".$_COOKIE['passwort']."' LIMIT 1");
if (mysql_num_rows($login_check)) {
$login_check = mysql_fetch_array($login_check);
if ($login_check['status'] == 1) {
db_query("UPDATE ".$db_prefix."_kontodaten SET login_ip='".$ip."' , loginzeit='".time()."' WHERE uid=".$_COOKIE['uid']." and passwort='".$_COOKIE['passwort']."' LIMIT 1");
db_query("UPDATE ".$db_prefix."_werberdaten SET aktivzeit='".time()."' WHERE uid=".$login_check['uid']." LIMIT 1");
$_SESSION['uid'] = $login_check['uid'];
$_SESSION['passwort'] = $login_check['passwort'];
$_SESSION['login'] = "true";
}
}
}
// Logout
if ($_GET['logout'] == 'true') {
setCookie('uid','',time()-86400*30);
setCookie('passwort','',time()-86400*30);
setCookie('autologin','',time()-86400*30);
$_SESSION['uid'] = "";
$_SESSION['passwort'] = "";
$_SESSION['login'] = "";
header ("location: ".$domain);
die();
}
if (isset ($_SESSION['uid']) && isset ($_SESSION['passwort']) && !empty ($_SESSION['uid']) && !empty ($_SESSION['passwort'])){
db_query ("UPDATE ".$db_prefix."_kontodaten SET last_active = ".time()." WHERE uid = ".$_SESSION['uid']." AND passwort = '".$_SESSION['passwort']."' LIMIT 1");
}
?>
EDIT: Im Userprofil kann ich mein Passwort ändern und das funktioniert auch.
mfg
hast du dich mit nicknamen versucht einzuloggen?
da machen viele den fehler und versuchens mit der uid weil die inder erinnerungsmail geschrieben steht und nicht der nick wenns nicht umgebaut wurde
ja klar mit nickname und pw.
ich dachte zuerst es lag am ß im nick, aber daran lags nicht, weil jetzt hats auch noch nen anderer user mit normalem nick... :(
Lass dir nochmal ein Passwort zuschicken, berechne daraus selber den MD5 Hash:
http://www.php-space.info/php/space/md5-generatoren.php
und vergleiche den dann mit dem in der Datenbank.
Da aber quasi alle Dateien identisch mit dem Originalskript sind und es im Userprofil geht, hast du entweder am Userprofil was geändert, oder aber es liegt doch am "Mensch" :wink:
Evtl auch noch auf andere Änderungen die du unbedacht vornimmst, siehe:
http://www.designerscripte.net/showthread.php?t=12879
zurückzuführen :suspicious:
So das hab ich eben gemacht, er generiert einen komplett anderen md5 hash.
Meine User haben mir auch ein weiteres Problem geschildert und zwar dass sie sich meist 2mal einloggen müssen damit sie eingeloggt sind, weil beim 1sten mal klappts nicht.
Woran liegt es dass er mir den falschen md5 hash generiert?
Die Struktur der Spalte passwort
Code:passwort varchar(32) latin1_swedish_ci
Nein
Ist das richtig?
Woran liegt das mit dem 2x mal login?
mfg