Hallo,
ich habe folgendes Script :
pwfg.php:
fgcheck.inc.php
In der zugriff.inc.php wird nur die Verbindung zur Datenbank hergestellt.
Wenn man jetzt aber in dem Formular die Richtigen Daten eingibt, kommt nur "Keine Übereinstimmung", das gleiche kommt auch, wenn man falsche Daten eingibt. Die Mail mit dem neuen Passwort wird dabei nie gesendet.
Ich hoffe ihr könnt mir helfen.
Greetz
ich habe folgendes Script :
pwfg.php:
PHP-Code:
<?php
include_once "zugriff.inc.php";
include "fgcheck.inc.php";
if (!empty($status2)) {
echo "<p><strong>$status2</strong></p>";
}
$user = isset($_POST['user']) ? htmlspecialchars(stripslashes($_POST['user'])) : "";
$email = isset($_POST['email']) ? htmlspecialchars(stripslashes($_POST['email'])) : "";
echo <<<FORMULARFG
<form action="{$_SERVER['PHP_SELF']}" method="post">
Benutzernamen eingeben:<br>
<input type="text" name="user" maxlength="15"
value="{$user}"><br>
E-Mail-Adresse eingeben:<br>
<input type="text" name="email" value="{$email}"><br>
<input type="submit" value="Abschicken" name="sm">
</form>
FORMULARFG;
?>
PHP-Code:
<?php
$user = trim($_POST['user']);
$email = trim($_POST['email']);
function userchecker ($user, $email)
{
$sql_usercheck = "SELECT email FROM users WHERE name='$user'";
$results = mysql_query($sql_usercheck);
while($row = mysql_fetch_assoc($results))
{
if($row->email == $email)
{
return true;
}
}
}
function fgmail($user, $empfaenger)
{
$chars = "abcdefghijkmnopqrstuvwxyz023456789";
srand((double)microtime()*1000000);
$i = 0;
$pass = '' ;
while ($i <= 7)
{
$num = rand() % 33;
$tmp = substr($chars, $num, 1);
$pass = $pass . $tmp;
$i++;
}
$betreff = "Dein neues Passwort für bulistar.de";
$absender = "info@bulistar.de";
$url = "http://bulistar.de/New/login.php";
// Editieren Ende
$anhang = str_rot13("$user.Q3x$empfaenger");
$anhang = strrev($anhang);
$url .= "?as=$anhang";
$mailbody = "Hallo $user,
dein neues Passwort für bulistar.de lautet:
$pass
Um dein neues Passwort zu bestätigen, klicke bitte auf den unten stehenden Link!
Falls du kein neues Passwort beantragt haben solltest, ignoriere bitte diese Mail.
$url
Für AOL-Nutzer:
<a href='www.bulistar.de/New/register.php?as=$anhang'>Hier klicken</a>
(in die Adressleiste des Browsers kopieren)
Danke, das Team von bulistar.de";
if (mail($empfaenger, $betreff, $mailbody, "From: $absender"))
{
return "<span style='color:green'>erfolg</span>";
}
else
{
return "<span style='color:#FF0000'>Aktivierungsmail nicht verschickt!</span>";
}
}
if (!empty($_POST['user']))
{
$muster1 = "/^[a-zA-Z0-9-_.@]{4,15}$/";
$muster2 = "/^[a-zäöüA-Z]{2,17}$/";
if (preg_match($muster1, $user) == 0)
{
$status2 .= "<span style='color:#FF0000'>Das ist kein gültiger Benutzername!</span><br>";
}
$muster2 = "/^[a-zA-Z0-9-_.]+@[a-zA-Z0-9-_.]+\.[a-zA-Z]{2,4}$/";
if (preg_match($muster2, $email) == 0)
{
$status2 .= "<span style='color:#FF0000'>Die E-Mail-Adresse ist ungültig!</span><br>";
}
if (empty($status2))
{
if(userchecker($user, $email))
{
fgmail ($user, $email);
} else {
$status2 = "Keine Übereinstimmung";
}
}
}
?>
Wenn man jetzt aber in dem Formular die Richtigen Daten eingibt, kommt nur "Keine Übereinstimmung", das gleiche kommt auch, wenn man falsche Daten eingibt. Die Mail mit dem neuen Passwort wird dabei nie gesendet.
Ich hoffe ihr könnt mir helfen.
Greetz
Kommentar