Passwort vergessen script

webhero

B1G-Software-Kunde
#1
Hallo ich arbeite gerade an einem Passwort vergessen script nur leider funkt das nicht so wie ich es haben will und ich weiss nicht warum ... bei der ausgabe wird die email nicht mit ausgegeben ... beim mailtext auch nicht und die mail kommt erst garnicht an ;( .. verstehe nurnicht wieso...

PHP:
<?
if ($action == "passwd"){
    mysql_connect("localhost","root","passwd") or die("Connect nicht möglich: ".mysql_error());
    $sql = "SELECT * FROM users WHERE email = '".$email."'";
    $result = mysql_db_query('db',$sql) or die(mysql_error());
    $row = mysql_fetch_assoc($result);
    mail($row[email], 'Dein Passwort', 'Dein Passwort lautet: $row[pwd]', "FROM: webmaster@allroundchat.de");
    $status = 'Dein Passwort wurde an $row[email] gesendet!';
}
?>
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
       <title>Passwort vergessen!</title>
<style type="text/css">
<!--
body, legend, input, span{
font-family: verdana;
font-size: 11px;
}
input{
border: 1px solid silver;
background-color: #F0F0F0;
font-family: verdana;
}
fieldset{
border: 1px solid #222266;
width: 500px;
padding: 25px;
}
legend {
align: left;
padding: 0px 80px 0px 10px;
COLOR: rgb(255,255,255);
font-weight: bold;
background-color:#222266;
padding:3px;
margin-bottom: 20px;
}
.ab {
padding-left:10px;
padding-top: 3px;
display: block;
clear: both;
}
.bez {
float: left;
width: 150px;
font-size : 11px;
text-align: right;
font-weight: bold;
padding-left: 10px;
padding-right: 10px
}
.formcheck {
width:120px;
padding-right:20px;
font-size : 11px;
float:left;
}
-->
</style>
</head>
<body> <center>
<form name="loginform" action="<?=$_SERVER[PHP_SELF]?>?action=passwd" method="POST">
<fieldset>
<legend>Passwort vergessen?</legend>
<?=$status?>
<div class="ab">
<span class="bez">E-Mail: </span>
<span class="formcheck"><input size="30" type="text"
name="email"></span>
</div>
<div class="ab">
<span class="bez"></span>
<span class="formcheck"><input type="submit" name="absenden"
value="Absenden"></span>
</div>
</fieldset>
</form>
</body>
</html>
Kann da vielleicht mal jemand drüber gucken .. danke

webbi
 
#2
Ersetze mal bitte im SQL-Statement $email durch $_REQUEST['email'].

Gruß Mika

PS: Natürlich solltest Du vorher alle Benutzeingaben überprüfen, aber das weißt Du sicherlich selber.
 

webhero

B1G-Software-Kunde
#3
aber sicher :) ging ja nur um die übertragung der e-mail :)

aber wenn wir gerade dabei sind welcher befehl fragt ab ob es den usernamen oder die e-mail in der db schon gibt? :O
 

martin

B1G-Software-Kunde
#4
Hey.. ich habe mir dein Script nicht näher angeschaut aber da du sagst das die Email nicht geht, hier mal ein Beispiel für ein Emailversand der 100% klappt, da ich ihn selber gecodet habe und einsetzte..

Mit Grüßen, Martin

PHP:
		$mailtext='dein Text, kein HTML!!';
/* Jetzt kannst du paar Dinge damit machen...
		$mailtext = str_replace("%%user%%", $number, $mailtext);
		$mailtext = str_replace("%%pw%%", $pwgen, $mailtext);
		$mailtext= str_replace("%%title%%", dbget('title','config'), $mailtext);
*/
		$mailfrom= dbget('signupmailaddy','config'); //Hier kommt der Absender rein

		$header="From:Hier der Absendername<".$mailfrom.">\n";
		$header .= "Reply-To: ".$mailfrom."\n";
		$header .= "X-Mailer: PHP/" . phpversion(). "\n";
		$header .= "X-Sender-IP: $REMOTE_ADDR\n";
		$headers .= "Content-Type: text/html; charset=iso-8859-1\n";

		$mail= mail($email, "Betreff der Nachricht", $mailtext, $header);
		if($mail){
			//Hier wenn email erfolgreich abgeschickt wurde
		}
		else{
			//ES IST EIN FEHLER AUFGETRETEN!!!
		};
 

webhero

B1G-Software-Kunde
#5
Hallo .... also ich habs mal so probiert ....

PHP:
<?
if ($action == "passwd"){
    mysql_connect("localhost","root","bla") or die("Connect nicht möglich: ".mysql_error());
    mysql_select_db("bla")or die ("Datenbankbezeichnung ist falsch oder existiert nicht");
    $sql = "SELECT * FROM users WHERE email = '".$_REQUEST['email']."'";
    $result = mysql_query($sql);
    $check = mysql_num_rows($result);
    if ($check != "0") {
    while ($row = mysql_fetch_object($result)) {
    $mailtext = 'Dein Passwort lautet $row->pwd;';
    mail($_REQUEST['email'], 'Dein Passwort', $mailtext, "FROM: webmaster@allroundchat.de");
?>
Dein Passwort wurde an <?echo $row->email; ?> gesendet
<?
}
}
}
?>
Also der text " Passwort wurde gesendet an ..... " gibt die richtige e-mail jetzt aus und die mail geht auch an den richtigen empfänger ... allerdings sieht die mail die ankommt so aus wie sie als mailtext dort steht also $row->pwd; und das kapier ich nicht
 
Last edited:

Peer-Mario

B1G-Software-Kunde
#6
webhero said:
$mailtext = 'Dein Passwort lautet $row->pwd;';
in der Zeile liegt Dein Fehler -> 'Dein Passwort lautet $row->pwd;'

Es wird alles in die Mail geschrieben was so zwischen den Anführungszeichen steht ohne dabei den Wert der Variablen zu nehmen!

Ergo -> 'Dein Passwort lautet: ' . $row->pwd .;

Glaube ich :))

Gruß Peer-Mario
 
Top