Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1768 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  envoie mail lors de son inscription

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

envoie mail lors de son inscription

n°2333405
ivan941
Posté le 11-05-2019 à 17:15:08  profilanswer
 

bonjour, j'ai crée un systeme d'enregistrement
 
pseudo, mdp et mail.
 
j'aimerais que les membres clique sur une cléf de validation  
 
donc j'ai pensé  
 
membre_validdation ave enum 0 (attende de validation) et 1 pour valider accepter
 
et ce code a mon avis je dois mettre après le tratement du mail
 

Citation :

<?php
//Message
$message = "Bienvenue sur mon super forum !";
//Titre
$titre = "Inscription à mon super forum !";
 
mail($_POST['email'], $titre, $message);
?>


 
 
si quelqu'un peut m'expliquer ou je doit précisément le mettre coment ca se passe
 
merci de votre aide

mood
Publicité
Posté le 11-05-2019 à 17:15:08  profilanswer
 

n°2333409
s123459
Posté le 11-05-2019 à 17:41:18  profilanswer
 

salut,
 
dans ton mail il faut que tu ajoute un lien du genre monsite.fr?validation=xxxxxx
 
quand l'utilisateur clique sur le lien, tu dois détecter que c'est le lien de validation, et faire le traitement pour modifier membre_validation.
 
dans cet exemple, tu peux détecter si c'est la page de validation en faisant :
 

Code :
  1. if(isset($_GET['validation'])) {
  2. // vérifications et traitement
  3. }

n°2333410
ivan941
Posté le 11-05-2019 à 18:32:42  profilanswer
 

si je mets juste ca après le traitement mail

Citation :

    // on envoiie un mail
     if(isset($_GET['validation'])) {
// vérifications et traitement
//Message  
$message = "Bienvenue sur mon super forum !";  
//Titre  
$titre = "Inscription à mon super forum !";  
 
mail($_POST['email'], $titre, $message);  
}


 
ca n'envoi pas un mail dans ma boite mail

n°2333411
SICKofitAL​L
misanthrope
Posté le 11-05-2019 à 19:41:30  profilanswer
 

Salut
 
et dans ton $_POST['email'] il y a quoi ? D'ailleurs il vient d'où ??


---------------
We deserve everything that's coming...
n°2333420
s123459
Posté le 12-05-2019 à 16:56:31  profilanswer
 

SICKofitALL a écrit :

Salut
 
et dans ton $_POST['email'] il y a quoi ? D'ailleurs il vient d'où ??


 
+1
et d'ailleurs toujours vérifier les données GET et POST
règle n°1 : ne jamais faire confiance à l'utilisateur ;)
ici, vérifier que c'est bien un email que l'on a avant d'en faire quelque chose : if (filter_var($email_a, FILTER_VALIDATE_EMAIL)) {
 
dans ton cas je pense aussi que tu n'as pas de POST ['email'] ; tu devrais activer l'affichage des erreurs et warnings, tu auras surement vu l'erreur s'afficher à ton écran ;)

n°2333422
ivan941
Posté le 12-05-2019 à 17:33:08  profilanswer
 

oui mais j'ai un champs
 

Citation :

    <div class="global-inscription">
     <label class="inscription-label" for="email">* Votre adresse Mail :</label>
     <div class="inscription-input icon-inscription-input-mail"><input type="text" name="email" id="email" /></div>
     <p class="inscription-description">confirmez votre email.</p>
     <span class="inscription-pris-non-pris icon-inscription-ok"></span>
     </div>


 
je recupere mon mail
 

Citation :

    $email = $_POST['email'];


 
et après je verifie
 

Citation :

    //Vérification de l'adresse email
     //Il faut que l'adresse email n'ait jamais été utilisée
     $query=$db->prepare('SELECT COUNT(*) AS nbr FROM forum_membres WHERE membre_email =:mail');
     $query->bindValue(':mail',$email, PDO::PARAM_STR);
     $query->execute();
     $mail_free=($query->fetchColumn()==0)?1:0;
     $query->CloseCursor();
     
     if(!$mail_free)
     {
     $email_erreur1 = "Votre adresse email est déjà utilisée par un membre";
     $i++;
     }
     
     //On vérifie la forme maintenant
     if (!preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-z]{2,4}$#", $email) || empty($email))
     {
     $email_erreur2 = "Votre adresse E-Mail n'a pas un format valide";
     $i++;
     }


 
et ensuite ensous je met le code envoi mail
 
mais ca n'envoie rien ;)

n°2333423
rat de com​bat
attention rongeur méchant!
Posté le 12-05-2019 à 19:20:10  profilanswer
 

Si tu mets que un bout de code pour envoyer un mail, ça fonctionne? Je suppose que non, car aujourd'hui pour pouvoir envoyer un mail ton serveur doit avoir un reverse-DNS et tout un bazar (que je ne saurait te citer mais la fonction de recherche sait le faire), c'est pour limiter le spam...

n°2333424
SICKofitAL​L
misanthrope
Posté le 12-05-2019 à 19:37:04  profilanswer
 

ivan941 a écrit :

oui mais j'ai un champs
 

Citation :

    <div class="global-inscription">
     <label class="inscription-label" for="email">* Votre adresse Mail :</label>
     <div class="inscription-input icon-inscription-input-mail"><input type="text" name="email" id="email" /></div>
     <p class="inscription-description">confirmez votre email.</p>
     <span class="inscription-pris-non-pris icon-inscription-ok"></span>
     </div>


 
je recupere mon mail
 

Citation :

    $email = $_POST['email'];


 
et après je verifie
 

Citation :

    //Vérification de l'adresse email
     //Il faut que l'adresse email n'ait jamais été utilisée
     $query=$db->prepare('SELECT COUNT(*) AS nbr FROM forum_membres WHERE membre_email =:mail');
     $query->bindValue(':mail',$email, PDO::PARAM_STR);
     $query->execute();
     $mail_free=($query->fetchColumn()==0)?1:0;
     $query->CloseCursor();
     
     if(!$mail_free)
     {
     $email_erreur1 = "Votre adresse email est déjà utilisée par un membre";
     $i++;
     }
     
     //On vérifie la forme maintenant
     if (!preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-z]{2,4}$#", $email) || empty($email))
     {
     $email_erreur2 = "Votre adresse E-Mail n'a pas un format valide";
     $i++;
     }


 
et ensuite ensous je met le code envoi mail
 
mais ca n'envoie rien ;)


 
+1 en effet pour le check de l'envoi d'email à partir de chez toi. Il y a de grandes chances que ca ne fonctionne pas tel quel afin de limiter les possibliités de spam.
 
Sinon perso je validerais d'abord l'email avant de vérifier qu'il existe dans la BDD. En effet, si l'email n'est pas correct, il ne sera de tte facon pas dans la BDD. Tu gagnes en perf ;)
 
Un truc comme ca :!

Code :
  1. // contiendra ttes les erreurs
  2. $email_erreur = [];
  3. if (filter_var ($email_a, FILTER_VALIDATE_EMAIL))
  4. {
  5. $email_erreur[] = "Votre adresse E-Mail n'a pas un format valide";
  6. }
  7. // tu peux quitter ici, ou continuer si tu veux checker toutes les erreurs tout de même
  8. $stmt = $db->prepare ('SELECT COUNT(*) AS nbr FROM forum_membres WHERE membre_email = :mail');
  9. $stmt->execute ([ ':mail' => $email ]);
  10. if($stmt->fetchColumn() > 0)
  11. {
  12. $email_erreur[] = "Votre adresse email est déjà utilisée par un membre";
  13. }
  14. // ...
  15. // affiche ttes les erreurs
  16. foreach ($email_erreur as $erreur)
  17. {
  18. echo $erreur, '<br>';
  19. }


Message édité par SICKofitALL le 12-05-2019 à 19:38:19

---------------
We deserve everything that's coming...
n°2333425
ivan941
Posté le 12-05-2019 à 19:44:38  profilanswer
 

merci, mais je croit que c'est un peut trop compliquer por moi je laisse tombé ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  envoie mail lors de son inscription

 

Sujets relatifs
Trace du mail envoyé avec PHPenvoie de mail wordpress
RESOLU : Icone dans les objets des mailBesoin d'aide pour améliorer ma signature mail svp.
Mail : Lecture de l'emetteur et ou de l'objet2 div séparés par un trait vertical pour siganture mail
Excel 2016 - Inscription données saisie par formulaire[VBA/HTML] insérer une image dans un mail
[Excel] macro outlook ne traite jamais dernier mail sauf si un seul 
Plus de sujets relatifs à : envoie mail lors de son inscription


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR