<?php
function executeWachtwoordOpvragen()
{
	global $config;
	$sql = "SELECT * FROM klanten WHERE mail = '" . $_POST['mail'] . "' AND gebruikersnaam = '" . $_POST['naam'] . "'";
	$query = mysql_query($sql);
	
	echo '<div class="title">Wachtwoord vergeten</div>';
	echo '<div class="block">';
	
	if(!mysql_num_rows($query))
	{

		echo 'Onjuiste combinatie van Gebruikersnaam / Emailadres';
		
	}
	else
	{
		$userdata = mysql_fetch_assoc($query);
		$to = $userdata['mail'];
		$subject = 'Uw wachtwoord bij: ' . $config['pagetitle'];
		$message = 'Hallo, ' . $userdata['voornaam'] . $userdata['achternaam'] . '!\n\nUw wachtwoord: ' . $userdata['wachtwoord'] . '\n\n\nGroet,\nDe webmaster';
		$headers = 'From: [email protected]' . "\r\n" .
    	'Reply-To: [email protected]' . "\r\n" .
    	'X-Mailer: PHP/' . phpversion();	
    	mail($to, $subject, $message);
		echo 'Je wachtwoord is naar het opgegeven emailadres gestuurd';

	}
}
?>


Er komen geen fouten, maar ik krijg ook geen mail ...
Iemand die een verklaring heeft?
waar haalt je $sql
de mail en user vandaan?

edit:
nvm, ben newbie.
Script is lek => SQL-Injection.
Foutafhandeling query's ontbreekt.
Waarom stuur je $headers niet mee?
Zet mail() in een if() om te kijken of ie wel lukt.

Zet dit bovenin je script.
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

// rest
?>
SanThe schreef op 30.10.2009 10:44
Script is lek => SQL-Injection.
Foutafhandeling query's ontbreekt.
Waarom stuur je $headers niet mee?
Zet mail() in een if() om te kijken of ie wel lukt.

Zet dit bovenin je script.
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

// rest
?>


Error report staat al op E_ALL in de index, waar de functie geinclude wordt.

Headers had ik er per ongeluk uitgegooid

hier vernieuwde code:


<?php

$sql = "SELECT * FROM klanten WHERE mail = '" . mysql_escape_string($_POST['mail']) . "' AND gebruikersnaam = '" . mysql_escape_string($_POST['naam']) . "'";
	$query = mysql_query($sql) or die(mysql_error);

    	if(mail($to, $subject, $message, $headers))
    	{
	    	echo 'Succes';
    	}
    	else
    	{
	    	echo 'Mislukt';
    	}
?>


Uitvoer:
SuccesJe wachtwoord is naar het opgegeven emailadres gestuurd
en heb je nu ook de mail gekregen?
koen schreef op 30.10.2009 11:03
en heb je nu ook de mail gekregen?


Nee, anders had ik het wel gezegd...
Kan je bij de logfiles van de mailserver?
Zo ja, kijk daar eens in.
Jasper schreef op 30.10.2009 10:59

hier vernieuwde code:


<?php

$sql = "SELECT * FROM klanten WHERE mail = '" . mysql_escape_string($_POST['mail']) . "' AND gebruikersnaam = '" . mysql_escape_string($_POST['naam']) . "'";
	$query = mysql_query($sql) or die(mysql_error);

    	if(mail($to, $subject, $message, $headers))
    	{
	    	echo 'Succes';
    	}
    	else
    	{
	    	echo 'Mislukt';
    	}
?>


mail ($to,$subject,$message[,$headers[,$additional_parameters ]] )
(uit manual van php.net)
http://nl3.php.net/manual/en/function.mail.php
mysql_escape_string()?
Beter is mysql_real_escape_string().

Reageren