bernhardjo
Messages postés31Date d'inscriptionlundi 13 février 2006StatutMembreDernière intervention11 juin 2008
-
10 juin 2008 à 10:53
maelob
Messages postés943Date d'inscriptionmardi 14 novembre 2006StatutMembreDernière intervention 7 août 2009
-
11 juin 2008 à 16:33
Bonjour,
Je cherche a faire une validation par email pour les utilisateurs puissent devenir membre. J'ai passablement de petit problème, notamment au niveau de la fonction mail, elle l'accepte pas comme je l'ai écrit. Si quelqu'un pouvait m'aider?
<?
if(isset($pseudo))
{
if(isset($newsl))
$news= 1;
else
$news=0;
$chaine = "abcdefghijklmnopqrstuvwxyz0123456789";
$Validation = str_shuffle($chaine);
$message = 'Cher '.$pseudo.',';
$message .= 'Ceci est un mail automatique de confirmation d\'inscription au site de l\'Escobar';
$message .= 'Pour confirmer et ainsi terminer l\'inscription à votre compte, veuillez cliquer sur le lien de confirmation: ';
$message .= 'http://127.0.0.1/escobar/index.php?page=valid.php?pseudo='.str_replace(' ','%20',$pseudo);
$RequeteInsertionPersonne = "INSERT INTO personne VALUES('',
'".addslashes($nom)."',
'".addslashes($prenom)."',
'".addslashes($pseudo)."',
'".addslashes($passe)."',
'".addslashes($tel)."',
'".addslashes($mail)."',
'$news',
'$Validation')";
$result = mysql_query($RequeteInsertionPersonne);
if($result)
mail($mail,'Confirmation d\'inscription au site de l\'Escobar',$message);
echo "Bravo, ton inscription a été validée";
else
echo "une erreur est survenue, merci de réessayer plus tard.";
}
else
{
?>
Bienvenue sur la page d'inscription de l'Esco-Bar
<form name="inscription" action= "javascript:verifChamps();"; enctype="application/x-www-form-urlencoded" method="post">
<fieldset>
<legend> Création du compte </legend>
----
----
Nom :,
,
----
Prenom :,
,
----
Pseudo : *,
,
----
Mot de passe : *,
,
----
Telephone :,
,
----
Email : *,
,
----
M'inscrire à la newsletter :,
,
----
,
,
<small>Les champs marqués d'un * sont obligatoires.</small>
</fieldset>
</form>
<?
}
?>
Et voici ma page validation
<?
include 'variables.inc.php';
// Connexion à la base de donnée
$mysql_connect =mysql_connect($hostddb,$loginddb,$passddb);
mysql_select_db($baseddb, $mysql_connect);
$RequeteModifValid mysql_query("UPDATE personne SET Validation'1' WHERE pseudo ='$_GET[pseudo]'") or die ('erreur : '.mysql_error());
echo 'Votre compte est validé, cliquez [bienvenu.php ici] pour vous connecter
';
?>
maelob
Messages postés943Date d'inscriptionmardi 14 novembre 2006StatutMembreDernière intervention 7 août 20093 11 juin 2008 à 13:07
Si tu as ce problème c'est que verification mail n'est pas du bon type donc soit y'a une faute d'orthographe (que j en vois pas sur verificationmail) soit y'a un problème l'execution de ta requète
<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog
Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir. (Jacques Prévert)
bernhardjo
Messages postés31Date d'inscriptionlundi 13 février 2006StatutMembreDernière intervention11 juin 2008 11 juin 2008 à 13:19
Oui t'as raison, mon champs dans ma base s'appelle email et non mail.
A part ca, tout fonctionne maintenant mais quand je rentre un pseudo qui existe déja ou que je rentre une adresse mail qui existe deja, il ne me met pas les messages d'erreur correspondant comme ci-dessous
if($DonneeMail['COUNT(*)'] >= 1)
{ echo 'Cette adresse email est déjà utilisée, vous pouvez redemander votre mot de passe et votre login si vous les avez oublié';
mais il me met
une erreur est survenue, merci de réessayer plus tard. Pige pas.
Vous n’avez pas trouvé la réponse que vous recherchez ?
maelob
Messages postés943Date d'inscriptionmardi 14 novembre 2006StatutMembreDernière intervention 7 août 20093 11 juin 2008 à 13:34
Il faut que tu change la requete de la manière dont je t'ai dis de l'écrire plus haut sans le count et mysql_num_rows se chargera de compter après il te faudrat enlever les $DonneeMail['COUNT(*)'] ou $DonneePseudo['COUNT(*)'] et écrire simplement $DonneePseudo et $DonneeMail.
<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog
Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir. (Jacques Prévert)
bernhardjo
Messages postés31Date d'inscriptionlundi 13 février 2006StatutMembreDernière intervention11 juin 2008 11 juin 2008 à 14:09
Ok c'est nickel.
Maintenant au niveau du mot de passe, j'aimerai que si l'utilisateur rentre son mail et appuie sur le bouton envoyer , qu'il recoive les infos sur son mail. Hors là je n'entre même pas dans la boucle, y a un problème avec if(isset($mail)) mais si je le mais pas, il me dis Undefind Index etc.. pige pas.
<?
include 'variables.inc.php';
// Connexion à la base de donnée
$mysql_connect=mysql_connect($hostddb,$loginddb,$passddb);
mysql_select_db($baseddb, $mysql_connect);
print_r($_POST);
if(isset($mail))
{
$mail = $_REQUEST['mail'];
$RequeteNomPassword = mysql_query ("SELECT NomPersonne, Password FROM personne WHERE Email='$mail'");
$Resultat = mysql_query($RequeteNomPassword);
echo "$RequeteNomPassword";
while ($TableauNomPassword = mysql_fetch_array($Resultat)){
$NomPersonne = $TableauNomPassword['NomPersonne'];
$Password= $TableauNomPassword['Password'];
}
//envoi avec fonction mail
}
else
{
?>
<form name="motdepasse" action="javascript:verifChampsReserv();" enctype="application/x-www-form-urlencoded" method="post">
<fieldset>
<legend>Demande d'un nouveau mot de passe</legend>
----
maelob
Messages postés943Date d'inscriptionmardi 14 novembre 2006StatutMembreDernière intervention 7 août 20093 11 juin 2008 à 14:23
C'est normal tu testes l'existence d'une variable avant de la définir, tu l'as définis et après tu testes son existence enfin plutôt qu'elle ne soit pas vide avec !empty($mail)
<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog
Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir. (Jacques Prévert)
maelob
Messages postés943Date d'inscriptionmardi 14 novembre 2006StatutMembreDernière intervention 7 août 20093 11 juin 2008 à 14:49
Ca veut ditre qu'aucune variable de nom mail est passé en paramètre via post ou get.
if (isset($_REQUEST['mail']))
$mail = $_REQUEST['mail'];
else
$mail = null;
if (!empty($mail)) {
...
Le code pour éviter les erreurs si la variable n'existe pas.
Mais tu gardera toujours le même problème pour lui $_REQUEST['mail'] n'existe pas.
<hr size="2" width="100%" />
Maelo ou Elo --> Mon blog
Si quelqu'un vous dit : "Je me tue à vous le répéter", laissez-le mourir. (Jacques Prévert)
bernhardjo
Messages postés31Date d'inscriptionlundi 13 février 2006StatutMembreDernière intervention11 juin 2008 11 juin 2008 à 15:06
Ok mais alors comment faire pour récupérer la le mail depuis mon formulaire, j'avoue que je capte pas. Que faut-il que je rajoute pour que ca fonctionne?
bernhardjo
Messages postés31Date d'inscriptionlundi 13 février 2006StatutMembreDernière intervention11 juin 2008 11 juin 2008 à 16:21
Oui merci mille fois, j'ai pu trouver mon problème, c'est vrai que je débute et y a des trucs qui me flashent pas tout de suite.
D'ailleurs j'ai ce petit problème de boucle, je sais que tu m'as déjà beaucoup aidé donc laisse tomber si tu n'as pas le temps.
J'aimerai qu'il m'affiche
echo "Ton adresse mail n'est pas valide"; si elle ne l'ai pas, hors dans mon cas, il rentre quand même dans la boucle while
Je dois faire des erreurs dans mes tests.
{
$mail = $_POST['mail'];
$RequetePseudoPassword =("SELECT Pseudo, Password FROM personne WHERE Email='$mail'") or die(mysql_error());
$Resultat = mysql_query($RequetePseudoPassword);
if($Resultat){
while ($TableauNomPassword = mysql_fetch_array($Resultat)){
$PseudoPersonne = $TableauNomPassword['Pseudo'];
$Password= $TableauNomPassword['Password'];
}
echo " Vous allez recevoir un email qui vous redonnera votre mot de passe et votre pseudo ";
$message = "ton pseudo est ".$PseudoPersonne." et ton mot de passe est ".$Password;
mail($mail,'Identification',$message);
} else {
echo "Ton adresse mail n'est pas valide";
}
}
else
{