(PHP] envoi mail

Fermé
Nicko - 14 déc. 2007 à 11:00
 le père - 14 déc. 2007 à 14:29
Bonjour,

je souhaite faire la fonction mot de pass oublié sur mon site : mais j'ai un soucis avec ma requête.


html
------------
<form action="pass.php" method='post'>
<p><label for="mail">Votre adresse email :</label>
<input type="text" name="mail" id="mail" maxlength="50"></p>
<p><input type="submit" value="Recevoir son mot de pass"></p>
</form>

------------
pass.php
------------
if(isset($_POST) && !empty($_POST['mail'])) {
extract($_POST);

$sql2 = "select password from membre where mailmembre='".mysql_real_escape_string($mail)."'";
$req2 = mysql_query($sql2) or die('Erreur SQL !<br>'.$sql2.'<br>'.mysql_error());
$data2 = mysql_fetch_assoc($req2);

$message = "Bonjour, \nVoici votre mot de pass: \n " . $data2['password'] . "ok";
$message = wordwrap($message, 70);
mail($mail, 'Votre mot de pass', $message);
echo 'mot de pass envoyé';
echo $data2['password'];
include('connexion.php');
} else {
echo "Saisissez votre email !";
}

------

l'email n'est pas envoyé car je suis en localhost donc ça pour le moment ok c'est pas mon principal soucis, mais lorsque je fais echo $data2['password']; pour voir si le mot de pass est bien récupéré dans ma requête, rien n'est affiché ..

D'où vient l'erreur ?

Merci d'avance.
A voir également:

5 réponses

Bonjour

peux-tu faire également echo $data2['mailmembre']; ? Si tu vois bien l'adresse s'afficher, c'est que le mot de passe est vide dans la base de donnée ou que la colonne ne s'appelle pas password.

l'email n'est pas envoyé car je suis en localhost
Mais si, on peut très bien envoyer des emails en localhost, il suffit d'indiquer le serveur SMTP du fornisseur d'accès.
0
Merci de votre aide.

pour le echo $data2['mailmembre'];

il ne me retourne rien également ..donc ça doit venir de ma requête mais elle parait correcte.
la colone s'appelle bien password et elle est remplie tout comme l'email.

pour l'envoi de mail en localhost je ne savais pas j'apprend quelquechose !
0
il ne me retourne rien également
Ta requête ne fait que SELECT password, normal qu'elle ne retourne pas mailmembre ! Pardon, j'aurais dû faire attention et te dire de faire un SELECT *
0
dans ton php.ini, vérifie que la ligne error_reporting= est bien à E_ALL
error_reporting = E_ALL

comme ça, tu auras des avertissements très utiles pour le développement (genre indice non défini) qui sont autrement passés sous silence par PHP.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ah génial ça fonctionne !!

merci beaucoup pour ton aide le père.

à chaque début de page j'insère : error_reporting(E_ALL | E_STRICT);

Merci encore.
0
le error_reporting, il vaut mieux le mettre dans le php.ini de ta machine en local
- ça t'évite de le taper à chaque page, et donc de l'oublier
- quand tu transfèreras ton site chez ton hébergeur, il vaut mieux qu'il y ait le moins possible de messages d'erreur. Ils contiennent souvent des indications que les pirates savent exploiter.
0