Fehlermeldung bei Abfrage aus Datenbank

icefire

Erfahrenes Mitglied
Hallo!
Ich versuche ein Skript für vergessene Login-Daten zu erstellen. Dazu muss der User seine Email eintragen. Mit klick wird das dann zur Überprüfung an das nächste Skript (inkl. neues Passwort) übergeben. Jetzt soll natürlich die Email-Adresse verglichen werden - nur das funktioniert leider nicht. Habe nun schon einige mir bekannten möglichen Fehlerquellen überprüft - ohne erfolg.

Die Adresse wird jedenfalls übertragen - nur wie muss ich die Datenbank abfrage abändern, damit der vergleich zustande kommmt?

PHP:
$link = mysql_query("SELECT ident_nick, ident_mail FROM infmem_dat WHERE ident_mail='$_POST[ident_mail]'");
echo mysql_error();
$data = mysql_fetch_array($link);

$ident_nick = $data['ident_nick'];
$ident_mail = $data['ident_mail'];

PHP:
if($_POST['ident_mail']==$ident_mail){$kontakt = 1;
echo'	<table width="98%" border="0" cellpadding="3" cellspacing="0">
		<tr><td style="font-family: tahoma; font-size: 12px; color: black;"><font color="#ff0000">Die angegebene Mail '.$_POST['ident_mail'].' existiert nicht!</font></td></tr>		
		</table><br>';}

Dabei kommt eben diese Fehlermeldung aus der Überprüfung, obwohl die Adressen 100%ig identisch sind!

Die Abfrage wird ja nicht nur zur Überprüfung benötigt, sondern auch wegen den restlichen Zugangsdaten bzw. der persönlichen Frage zur Sicherstellung des Users.
 
Das muss ja so sein:

PHP:
if($action == 'newlogin'){

if($_POST['ident_mail']==''){$kontakt = 1;
echo'	<table width="98%" border="0" cellpadding="3" cellspacing="0">
		<tr><td style="font-family: tahoma; font-size: 12px; color: black;"><font color="#ff0000">Es wurde keine Mail angegeben.</font></td></tr>		
		</table><br>';}
	    
if($_POST['ident_mail']==$ident_mail){$kontakt = 1;
echo'	<table width="98%" border="0" cellpadding="3" cellspacing="0">
		<tr><td style="font-family: tahoma; font-size: 12px; color: black;"><font color="#ff0000">Die angegebene Mail '.$_POST['ident_mail'].' existiert nicht!</font></td></tr>		
		</table><br>';}	 
		  
if (!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*". "@([a-z0-9]+([\.-][a-z0-9]+))*$",$_POST['ident_mail'])){$kontakt = 1;  
echo'	<table width="98%" border="0" cellpadding="3" cellspacing="0">
		<tr><td style="font-family: tahoma; font-size: 12px; color: black;"><font color="#ff0000">Die angegebene Mailadresse '.$_POST['ident_mail'].' ist ungültig.</font></td></tr>		
		</table><br>';} 

else if($kontakt != 1){	

$update = mysql_query("UPDATE infmem_dat SET ident_pass = MD5('".addslashes(htmlspecialchars($_POST['ident_pass']))."') WHERE ident_mail = '".$_POST['ident_mail']."'");		
echo mysql_error();
mysql_close($verbindung);

$pw_mail = $_POST['ident_mail'];
$regedit = date("d.m.Y");
$betreff = "Wichtig! Adminpanel Zugangsdaten!";	
$text .= "Hallo ".$ident_nick."!"."\n";
$text .= ""."\n";	
$text .= "Deine neuen Zuggangsdaten sind:"."\n";
$text .= ""."\n"; 
$text .= "Nick: ".$ident_nick."\n";
$text .= "Passwort: ".$_POST['ident_pass']."\n";
$text .= "Email: ".$_POST['ident_mail']."\n";
$text .= ""."\n";
$text .= "Viel Spass beim einloggen!"."\n";
$text .= "Der Webmaster!"."\n";
}

if(isset($update)){	
mail($pw_mail,$betreff,$text,$regedit);
}
 
Ich glaube aber ich. Du (natürlich der Threadersteller) gibst das ja aus, wenn $_POST['ident_mail'] IST GLEICH $ident_mail. Ich dachte genau dann WURDE sie gefunden. Und die Überprüfung ob die Mail gültig ist würde ich ober die Überprüfung ob sie existiert, dafür die Abfrage darunter. (Falls möglich.)

Edit: Hoppla, habe jetzt irgendwie gelesen dass wer anderer knuddel's ersten Post zitiert hat. Sorry.
 
Ganz einfach (so dachte ich mir es jedenfalls):

Überprüfung ob eine Email eingetragen wurde;
PHP:
if($_POST['ident_mail']=='')

Überprüfung auf Übereinstimmung mir der Email aus der Datenbank;
PHP:
if($_POST['ident_mail']==$ident_mail)

Überprüfung ob es sich auch um eine Email handelt;
PHP:
if (!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*". "@([a-z0-9]+([\.-][a-z0-9]+))*$",$_POST['ident_mail']))

Wenn etwas nicht in Ordnung ist, dann sollte nur die Fehlermeldung kommen - ansonsten Email mit den Zugangsdaten verschicken .
 
Zurück