mail script was pw ausgibt (fehler drin)?

  • Themenstarter Themenstarter ciao007
  • Beginndatum Beginndatum
C

ciao007

Hallo,


Ich habe ein mail script was dazu dient dem user sein pw und sein mail auszugeben wenn er das pw vergessen hat.

In dieser mail stehen das pw und die mail aber nicht die "id".

mein bisheriger code
PHP:
<?php
include 'includes/_config.php';
if ($_POST['Submit']=='Send')
{
$host = $_SERVER['HTTP_HOST'];
$rs_search = mysql_query("select email from users where email='$_POST[email]'");

$user_count = mysql_num_rows($rs_search);

if ($user_count != 0)
{
$newpwd = rand(1000,9999);
$host = $_SERVER['HTTP_HOST'];
$newmd5pwd = md5($newpwd);
mysql_query("UPDATE users set pw='$newmd5pwd' where email='$_POST[email]'");
$message = 
"You have requested new login details from $host. Here are the login details...\n\n
User Mail: $_POST[email] \n
Password: $newpwd \n
____________________________________________

\n *** LOGIN ***** \n
To Login: http://$host/login.php \n\n
_____________________________________________
Thank you. This is an automated response. PLEASE DO NOT REPLY.
";

	mail($_POST['email'], "New Login Details", $message,
    "From: \"Auto-Response\" <admin@127.0.0.1>\r\n" .
     "X-Mailer: PHP/" . phpversion());
	 
die("<center><br><br><br><br><br><br><br><br><br><br><br><br><br>Vielen dank. Sie erhalten in kürze eine Nachricht</center>");
} else die("Der Account mit dieser E-mail adresse exestiert nicht.");

}


?>

ich möchte das in der mail auch die id zu email steht.
db lol
tabelle users
tabelle aufgeteilt nach "id""pw""email"


mfg
 
Erweitere deine SQL-Funktion

PHP:
<?php 
include 'includes/_config.php'; 
if ($_POST['Submit']=='Send') 
{ 
$host = $_SERVER['HTTP_HOST']; 
// Schau ob es wirklich eine Spalte mit dem Namen ID gibt oder ob die vielleicht anders heißt
$rs_search = mysql_query("select id, email from users where email='$_POST[email]'"); 

$user_count = mysql_num_rows($rs_search); 

if ($user_count != 0) 
{ 

$erg = mysql_fetch_assoc($rs_search);
$id = $erg['id'];

$newpwd = rand(1000,9999); 
$host = $_SERVER['HTTP_HOST']; 
$newmd5pwd = md5($newpwd); 
mysql_query("UPDATE users set pw='$newmd5pwd' where email='$_POST[email]'"); 
$message =  
"You have requested new login details from $host. Here are the login details...\n\n 
User-ID: $id\n
User Mail: $_POST[email] \n 
Password: $newpwd \n 
____________________________________________ 

\n *** LOGIN ***** \n 
To Login: http://$host/login.php \n\n 
_____________________________________________ 
Thank you. This is an automated response. PLEASE DO NOT REPLY. 
"; 

    mail($_POST['email'], "New Login Details", $message, 
    "From: \"Auto-Response\" <admin@127.0.0.1>\r\n" . 
     "X-Mailer: PHP/" . phpversion()); 
      
die("<center><br><br><br><br><br><br><br><br><br><br><br><br><br>Vielen dank. Sie erhalten in kürze eine Nachricht</center>"); 
} else die("Der Account mit dieser E-mail adresse exestiert nicht."); 

} 


?>

Dann sollte das Script auch so laufen :D
 
Ich sehe nicht, dass Du die id aus der DB holst. Wie soll sie dann auch in der email landen.. Ich denke, Du solltest in der ersten Query auch die id erfragen.
PHP:
$rs_search = mysql_query("select email,id from users where email='.$_POST[email]'");
//..
//Denfies Ausgabe in eine Variable
$erg = mysql_fetch_assoc($rs_search);
$id = $erg['id'];
//..

mfg chmee

edit: da war Jemand schneller :D
 
noch ein prob.

ich will das wenn alles fertig ist er zurück auf index.php geht.
vorher:
PHP:
die("<center><br><br><br><br><br><br><br><br><br><br><br><br><br>Vielen dank. Sie erhalten in kürze eine Nachricht</center>"); 
} else die("Der Account mit dieser E-mail adresse exestiert nicht.");

nachher:
PHP:
die("<center><br><br><br><br><br><br><br><br><br><br><br><br><br>Vielen dank. Sie erhalten in kürze eine Nachricht<br><a herf="index.php">Login</a></center>"); 
} else die("Der Account mit dieser E-mail adresse exestiert nicht.");

nacher t aber nicht

wieso?
 
Erstmal heisst es href.

HTML:
<a herf="index.php">Login</a>
ist Falsch

<a href="index.php">Login</a>
ist richtig
Das wäre dann manuell per Link Klicken. Automatisch wäre dann per php und header.
PHP:
header('Location: http://www.example.com/');
Aufpassen.
(1) Darf vor dem header-Aufruf keine andere Ausgabe geschehen und
(2) kann man den "Danke, versendet"-Text nicht lesen (geht sowieso nicht, da header sonst einen Fehler auswirft.

Möglichkeiten:
(A) "Danke,versendet" per $_POST in der index anzeigen lassen.
(2) per JS den Redirect durchführen. Link JS Redirect

mfg chmee
 
Zurück