Php mail de confirmation d'inscription
Résolu
leod
Messages postés
98
Date d'inscription
Statut
Membre
Dernière intervention
-
leod Messages postés 98 Date d'inscription Statut Membre Dernière intervention -
leod Messages postés 98 Date d'inscription Statut Membre Dernière intervention -
Bonjour a tous
je suis nouveau tout juste inscrit donc excusez moi si je ne post pas mon sujet au bon endroit ...
alors voila , je suis en train de réaliser un formulaire d'inscription et je souhaite valider comme tout bon formulaire l'utilisateur qui viens de s'inscrire par un email de confirmation
voici la methode que je compte utiliser :
- creation d'une chaine de 128 caractere de facon aleatoire
- verifier qu'aucun utilisateur ne la possede deja dans ma table "utilisateur" dans ma base de donnée mysql
- envoyer dans le mail de confirmation un lien avec cette chaine de caractere dans l'adresse pour activer l'utilisateur
la chaine est crée sans trop de difficulté
je voudrai connaitre la requete à taper pour verifier que personne ne l'a possede deja
je pense qu'elle se formule de cette facon :
$requete="select * FROM utilisateur where lien=$chaine" ;
$resultat=mysql_query($requete);
mais je ne vois pas comment savoir ce que contient $resultat (donc si la requete a trouvé quelques choses ou pas)
ensuite pas de probleme pour envoyer un mail , mais je voudrai savoir comment on fait pour passer en argument la chaine , que le lien arrive sur un fichier.php (qui contient la requete d'activation) et comment faire pour que ce fichier recupere la chaine passé en argument
voila j'espere avoir été clair dans mes explications ce qui n'est pas evident pour un novice ^^
en l'attente de vos reponse je vous remercie
leod
je suis nouveau tout juste inscrit donc excusez moi si je ne post pas mon sujet au bon endroit ...
alors voila , je suis en train de réaliser un formulaire d'inscription et je souhaite valider comme tout bon formulaire l'utilisateur qui viens de s'inscrire par un email de confirmation
voici la methode que je compte utiliser :
- creation d'une chaine de 128 caractere de facon aleatoire
- verifier qu'aucun utilisateur ne la possede deja dans ma table "utilisateur" dans ma base de donnée mysql
- envoyer dans le mail de confirmation un lien avec cette chaine de caractere dans l'adresse pour activer l'utilisateur
la chaine est crée sans trop de difficulté
je voudrai connaitre la requete à taper pour verifier que personne ne l'a possede deja
je pense qu'elle se formule de cette facon :
$requete="select * FROM utilisateur where lien=$chaine" ;
$resultat=mysql_query($requete);
mais je ne vois pas comment savoir ce que contient $resultat (donc si la requete a trouvé quelques choses ou pas)
ensuite pas de probleme pour envoyer un mail , mais je voudrai savoir comment on fait pour passer en argument la chaine , que le lien arrive sur un fichier.php (qui contient la requete d'activation) et comment faire pour que ce fichier recupere la chaine passé en argument
voila j'espere avoir été clair dans mes explications ce qui n'est pas evident pour un novice ^^
en l'attente de vos reponse je vous remercie
leod
A voir également:
- Php mail de confirmation d'inscription
- Wetransfer gratuit sans inscription - Guide
- Twitter inscription - Guide
- Confirmation de lecture whatsapp - Guide
- Confirmation de lecture gmail - Guide
- Windows live mail - Télécharger - Mail
10 réponses
salut,
128 caractères tu prévois très large !
avec un :
tu obtiens une chaîne de 32 caractères qui doit suffire amplement. et il faut la créer après la vérification de l'utilisateur.
pour la suite :
?>
et hop un p'tit tuto !
un autre plus orienté PHP.
128 caractères tu prévois très large !
avec un :
$var = md5( uniqid() );
tu obtiens une chaîne de 32 caractères qui doit suffire amplement. et il faut la créer après la vérification de l'utilisateur.
pour la suite :
<?php $requete="select * FROM utilisateur where lien=$chaine" ; // tu devrais nommer les champs à retourner $resultat=mysql_query($requete); if( $resultat ) //si la requête a bien été exécutée { if( mysql_num_rows( $resultat ) === 1 ) //il y a bien un enregistrement dans la table { echo '<p>L\'utilisateur existe déjà.</p>' } else // pas d'enregistrement { // traitement } } else // erreur d'exécution { echo '<p>Erreur d\'exécution de la requête.</p>' }
?>
et hop un p'tit tuto !
un autre plus orienté PHP.
désolé en faite mon probleme n'est pas tout a fait resolu
je ne comprend pas pourquoi mais il n'accepte pas la requete num_rows
je test la requete pour bien comprendre :
$requete="select * FROM utilisateur where lien=$chaine" ;
$resultat=mysql_query($requete);
$nbrequete=mysql_num_rows($resultat);
echo $nbrequete;
erreur retourner a la ligne : $nbrequete=mysql_num_rows($resultat);
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in ....
je ne comprend pas ce qui ne va pas ? pouvez vous m'expliquer ce qu'il manque ?
je ne comprend pas pourquoi mais il n'accepte pas la requete num_rows
je test la requete pour bien comprendre :
$requete="select * FROM utilisateur where lien=$chaine" ;
$resultat=mysql_query($requete);
$nbrequete=mysql_num_rows($resultat);
echo $nbrequete;
erreur retourner a la ligne : $nbrequete=mysql_num_rows($resultat);
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in ....
je ne comprend pas ce qui ne va pas ? pouvez vous m'expliquer ce qu'il manque ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
salut,
supplied argument is not a valid MySQL result
ça veut dire que $resultat ne contient pas le retour de ta requête.
donc la requête s'est mal exécutée.
c'est pour gérer ce cas que j'avais mis un test sur '$resultat'. car quand il y a un erreur de requête, 'mysql_query()' retourne 'false'.
tant que tu es en phase de développement tu peux afficher ta requête au lieu d'un message, ça te permettra de tester la dite requête directement dans ta BDD pour trouver plus facilement l'erreur.
et j'avais oublié des points virgules…
(ô_O)'
supplied argument is not a valid MySQL result
ça veut dire que $resultat ne contient pas le retour de ta requête.
donc la requête s'est mal exécutée.
c'est pour gérer ce cas que j'avais mis un test sur '$resultat'. car quand il y a un erreur de requête, 'mysql_query()' retourne 'false'.
if( $resultat ) //si la requête a bien été exécutée
{
if( mysql_num_rows( $resultat ) === 1 ) //il y a bien un enregistrement dans la table
{
echo '<p>L\'utilisateur existe déjà.</p>';
}
else // pas d'enregistrement
{
// traitement
}
}
else // erreur d'exécution
{
echo '<p>Erreur d\'exécution de la requête.</p>';
}
tant que tu es en phase de développement tu peux afficher ta requête au lieu d'un message, ça te permettra de tester la dite requête directement dans ta BDD pour trouver plus facilement l'erreur.
if( $resultat ) //si la requête a bien été exécutée { if( mysql_num_rows( $resultat ) === 1 ) //il y a bien un enregistrement dans la table { echo '<p>L\'utilisateur existe déjà.</p>'; } else // pas d'enregistrement { // traitement } } else // erreur d'exécution { echo "<p>$requete</p>"; }
et j'avais oublié des points virgules…
(ô_O)'
ok , merci mais en faite j'ai commencé par testé avec ta solution en corrigant les ;
le probleme c'est que je l'ai mis dans un while pour qu'il creer une chaine jusqu'a ce qu'il ne la trouve pas dans la base de donnée
et il tombe en boucle dans l'erreur d'execution
la requete est donc mauvaise
je ne vois pas du tout ce qui cloche
j'ai une table dans ma base de donnée qui s'appel utilisateur avec un champ lien qui doit contenir la chaine
donc pour verifier que la chaine n'est pas dans la table la requete est ?
et je n'ai pas compris ce que tu me disai de faire :
"tu devrais nommer les champs à retourner"
voila excuse moi de t'embeter avec tout ca mais je rame quelques peu ...
le probleme c'est que je l'ai mis dans un while pour qu'il creer une chaine jusqu'a ce qu'il ne la trouve pas dans la base de donnée
et il tombe en boucle dans l'erreur d'execution
la requete est donc mauvaise
je ne vois pas du tout ce qui cloche
j'ai une table dans ma base de donnée qui s'appel utilisateur avec un champ lien qui doit contenir la chaine
donc pour verifier que la chaine n'est pas dans la table la requete est ?
et je n'ai pas compris ce que tu me disai de faire :
"tu devrais nommer les champs à retourner"
voila excuse moi de t'embeter avec tout ca mais je rame quelques peu ...
fais lui afficher la requête et teste la directement dans phpMyAdmin (ou équivalent).
et quand je dis "nommer les champs" c'est de ne pas utiliser le '*'.
$requete="select * FROM utilisateur where lien=$chaine" ; echo($requete);
et quand je dis "nommer les champs" c'est de ne pas utiliser le '*'.
$requete="select champ1, champ2 FROM utilisateur where lien=$chaine"
Dans le code indiqué (
Et puis tant qu'à faire (relativement) propre, autant sécuriser un peu :
Raph
$requete="select champ1, champ2 FROM utilisateur where lien=$chaine"), ce qui ne va pas c'est qu'il faut mettre la chaîne entre apostrophes...
$requete="select champ1, champ2 FROM utilisateur where lien='$chaine'"
Et puis tant qu'à faire (relativement) propre, autant sécuriser un peu :
$requete="select champ1, champ2 FROM utilisateur where lien='".mysql_escape_string($chaine)."'"
Raph