IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Création d'un mail de confirmation en PHP


Sujet :

Langage PHP

  1. #21
    Membre averti
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 23
    Par défaut
    merci de me mentionner "switch"
    il me manquait plus que celui là

    alors, je suis allée à la recherche de "switch".

    voilà ce que j'en ai compris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     // On compare les clés
        switch ($MailCle == $DBCle) { // On compare nos deux clés	
         case
    	  $requete = "UPDATE kdo SET Activation='1' WHERE Pseudo = '$MailPseudo'":
          $resultat = mysql_query($requete,$connexion) or die ("Erreur : ".mysql_error());
          echo '<br><span class="Style4">A présent ton compte est actif. <br><br>Prévois un certain temps avant que ta page soit fonctionnelle.<br><br>Tu recevras un mail lorsque cela sera fait.<BR><BR>En attendant, tu peux réfléchir aux cadeaux que tu aimerais avoir
    	  <br><br>Pour retourner sur le site, Mini Kdo, cliques sur <a href="http://minikdo.flash.free.fr/">ce lien</a>';
    	case                    // Si les deux clés sont différentes on ne valide pas
          mysql_close($connexion);
    	   break;
    default:('Votre compte n\'a pu être activé pour une raison indéterminée. Veuillez faire un nouvel essai ou contacter le webmaster.');
     
     
    	// compte déjà activé
     
    	     //ON RECUPERE LES IDENTIFIANTS
    	  case
             $Pseudo = $_REQUEST['Pseudo']:
    	  case
             $Password = $_REQUEST['Password']:
          case
             $Email = $_REQUEST['Email']:
     
     
    	 	 //Envoi du message au webmaster
    	 echo $sendmail['$adresse_webmaster'];
    	   	  $Sujet  = "Nouvelle inscription au site Mini Kdo";
    	  $Entete = "webmaster@$SERVER_NAME";
    	  $Destinataire = $Email;
     
    	   $subject="Nouvelle inscription pour Mini Kdo Flash";
           $Texte ="Bonjour,\n\n";
           $Texte.="Un nouveau membre vient de s\'inscrire :\n";
           echo $_REQUEST['Pseudo'] .'</br>';
           echo $_REQUEST['Password'] .'</br>';
           echo $_REQUEST['Email'] .'</br>';
           $headers="From: webmaster@SERVER_NAME\n";
           @mail($adresse_webmaster, $subject, $Texte, $headers);
     
    	}
     
     
    	  //FERMETURE DE LA CONNEXION
     
     
           mysql_close($connexion);
    et bien c'est bien moins qu'avec mes "if" que j'avais eu du mal à maîtriser car là, je ne reçois aucun mail.

    au moins avant, je recevais un bout de mail, même s'il était vide

    bon, je suppose que vous allez voir où sont mes erreurs, car moi j'ai tenté de les corriger au fur et à mesure que j'avais des messages "error de syntaxe".

    pourquoi je m'accroche ?

  2. #22
    Rédacteur

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2007
    Messages : 494
    Par défaut
    Oulah je t'ai jamais dit d'utiliser switch les if sont mieux dans ton cas !

    Le problème est que tes variables sont vides. Cela vient donc d'avant ton if. Peut-on avoir le code complet s'il te plait ?

  3. #23
    Membre émérite

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    Oui, bien sûr (je le sais ) ; ce que je trouve bizarre, c'est le : juste après if ('cond') (et si j'ai mis des accolades, c'est qu'elle a plusieurs traitements)
    L'utilisation des : est possible en PHP à la place des accolades :
    http://www.php.net/manual/fr/control...ive-syntax.php
    Par contre, c'est une syntaxe utilisée la plupart du temps dans les templates ou les mélanges avec HTML dans lesquels cette syntaxe alternative est plus lisible.

    Citation Envoyé par ytzmi Voir le message
    voilà ce que j'en ai compris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     // On compare les clés
        switch ($MailCle == $DBCle) { // On compare nos deux clés	
         case
    	  $requete = "UPDATE kdo SET Activation='1' WHERE Pseudo = '$MailPseudo'":
          $resultat = mysql_query($requete,$connexion) or die ("Erreur : ".mysql_error());
          echo '<br><span class="Style4">A présent ton compte est actif. <br><br>Prévois un certain temps avant que ta page soit fonctionnelle.<br><br>Tu recevras un mail lorsque cela sera fait.<BR><BR>En attendant, tu peux réfléchir aux cadeaux que tu aimerais avoir
    	  <br><br>Pour retourner sur le site, Mini Kdo, cliques sur <a href="http://minikdo.flash.free.fr/">ce lien</a>';
    	case                    // Si les deux clés sont différentes on ne valide pas
          mysql_close($connexion);
    	   break;
    default:('Votre compte n\'a pu être activé pour une raison indéterminée. Veuillez faire un nouvel essai ou contacter le webmaster.');
     
     
    	// compte déjà activé
     
    	     //ON RECUPERE LES IDENTIFIANTS
    	  case
             $Pseudo = $_REQUEST['Pseudo']:
    	  case
             $Password = $_REQUEST['Password']:
          case
             $Email = $_REQUEST['Email']:
     
     
    	 	 //Envoi du message au webmaster
    	 echo $sendmail['$adresse_webmaster'];
    	   	  $Sujet  = "Nouvelle inscription au site Mini Kdo";
    	  $Entete = "webmaster@$SERVER_NAME";
    	  $Destinataire = $Email;
     
    	   $subject="Nouvelle inscription pour Mini Kdo Flash";
           $Texte ="Bonjour,\n\n";
           $Texte.="Un nouveau membre vient de s\'inscrire :\n";
           echo $_REQUEST['Pseudo'] .'</br>';
           echo $_REQUEST['Password'] .'</br>';
           echo $_REQUEST['Email'] .'</br>';
           $headers="From: webmaster@SERVER_NAME\n";
           @mail($adresse_webmaster, $subject, $Texte, $headers);
     
    	}
    Tu as plus que très mal compris switch/case... Back to basic : http://fr.php.net/manual/fr/control-...res.switch.php

  4. #24
    Membre averti
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 23
    Par défaut
    c'est bon, j'abandonne ce sujet.

    2 semaines, plusieurs heures par jour ou nuit pour avoir toujours la même chose, c'est bon, je passe à autre chose.

    j'aurais toujours un mail m'avertissant que j'ai un nouveau membre, j'irais dans mon phpmyadmin pour relever les renseignements dans ma table sql

    j'ai un autre problème et je ne sais pas où le poster...

    on ne peut pas être ce que l'on est pas

    merci à vous.

  5. #25
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut
    L'utilisation des : est possible en PHP à la place des accolade
    Je viens d'apprendre un truc...cela dit, non seulement il est clair qu'il faut abandonner le switch et revenir à des if, mais pour la clarté, je trouve qu'il serait mieux aussi de privilégier les accolades (si l'on utilise un éditeur avec coloration syntaxique).
    Et je viens de lire que ytzmi abandonnait (c'est sûr que même si ça ne paraît pas très compliqué, pour une débutante, ça doit l'être). Mais si tu abandonnes, coche "résolu".

  6. #26
    Rédacteur

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2007
    Messages : 494
    Par défaut
    Citation Envoyé par ytzmi Voir le message
    c'est bon, j'abandonne ce sujet.

    2 semaines, plusieurs heures par jour ou nuit pour avoir toujours la même chose, c'est bon, je passe à autre chose.

    j'aurais toujours un mail m'avertissant que j'ai un nouveau membre, j'irais dans mon phpmyadmin pour relever les renseignements dans ma table sql

    j'ai un autre problème et je ne sais pas où le poster...

    on ne peut pas être ce que l'on est pas

    merci à vous.
    ytzmi il ne faut pas abandonner alors qu'on t'a dit pourquoi tu avais pas les informations : les variables $_REQUEST['Pseudo'], $_REQUEST['Password']et $_REQUEST['Email'] sont vides.

    Maintenant il faut trouver pourquoi donc peux tu nous donner le code entier de ta page ?

  7. #27
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut
    Sans avoir le code de la page, je crois comprendre le problème : ce n'est pas que les 3 variables soient vides, mais qu'elles ne font pas partie du message du mail !
    Moi, je ferais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $Texte="Bonjour,\n\n";
    $Texte.="Un nouveau membre vient de s\'inscrire :\n";
    $Texte.='pseudo='.$_REQUEST['Pseudo'] .'</br>';
    $Texte.='password='.$_REQUEST['Password'] .'</br>';
    $Texte.='email='."$_REQUEST['Email'] .'</br>';

  8. #28
    Rédacteur

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2007
    Messages : 494
    Par défaut
    Dans son premier code donnée, elles l'étaient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    //ON RECUPERE LES IDENTIFIANTS
    $Pseudo = $_REQUEST['Pseudo'];
    $Password = $_REQUEST['Password'];
    $Email = $_REQUEST['Email'];
     
    //Envoi du message au webmaster
     
    $Sujet   = "Nouvelle inscription au site Mini Kdo";
    $Entete = "webmaster@$SERVER_NAME";
    $Destinataire = $Email;
     
    $subject="Nouvelle inscription pour Mini Kdo Flash";
    $Texte="Bonjour,\n\n";
    $Texte.="Un nouveau membre vient de s\'inscrire :\n";
    $Texte.="Nom : '$Pseudo'\n";
    $Texte.="mot de passe : '$Password'\n";
    $Texte.="E-Mail : '$Email']\n";

  9. #29
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut
    Oui, c'est juste, sauf que dans ce code, il n'y a pas de requête "Select" ; pour être sûr d'où on en est, il faudrait avoir le code actuel en entier.

  10. #30
    Membre averti
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 23
    Par défaut
    vous êtes super sympa.

    aujourd'hui c'était mon annif.... j'ai fait un break sur ce problème

    abandonner ce n'est pas dans ma nature, niveau informatique, mais là, je bloque et il faut que j'avance...

    donc, merci pour votre patience et vos encouragements, je regarderai ce que vous me conseillez et je vous tiens au courant d'ici peu.

    merci, vous êtes mon cadeau d'anniversaire

  11. #31
    Membre averti
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 23
    Par défaut
    comme d'hab, comme j'avais des erreurs de syntax, je suis allée à la recherche et avec ce script, je n'ai plus d'erreur mais toujours pas de message avec les renseignements.

    je reçois un message vide :

    Bonjour,

    Un nouveau membre vient de s\'inscrire :
    Nom : \ .
    mot de passe : \ .
    E-Mail : \ .

    j'ai lu plus haut parce que mes "valeurs sont nulles".
    ok mais qu'est-ce que l'on entend par là ?

    car dans ma base sql, tous les "champs" sont renseignés, j'ai le pseudo, le password, l'email et l'activation à "0" puis à "1" quand il est validé.

    bon, voici, la page entière.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    <?php
      include ('protected/login.inc.php');
      //include ('protected/ctrl.inc.php');
     
      // On récupère le Pseudo et la clé chiffrée du message d'activation
      $MailPseudo = $_GET['log'];
      $MailClé = $_GET['cle'];
      $MailFlag = $_GET['flag'];
     
        // S'IL S'AGIT D'UNE ACTIVATION, ON MET LE FLAG D'ACTIVATION A 1  ET ON SORT
      If ($MailFlag==1):
        // On met le flag d'activation à 1
        $requete = "UPDATE kdo SET Activation='1' WHERE Cle='$MailClé'";
        $resultat = mysql_query($requete,$connexion) or die ("Erreur : ".mysql_error());
        mysql_close($connexion);
     
    	// On propose le retour à la page d'accueil
        echo '<br><span class="Style4">A présent ton compte est actif. D\'ici quelques temps ta page sera construite et tu seras prévenu par un mail. Pour retourner sur le site, Mini Kdo, cliques sur <a href="http://minikdo.free.fr/">ce lien</a>';
        // Et on quitte
    	exit;
      endif;
     
      // Il s'agit forcément  d'une création, on cherche la clé dans la base de données
      $sql = "SELECT Cle FROM kdo WHERE Pseudo = '$MailPseudo'";
      $resultat = mysql_query($sql,$connexion) or die ("Erreur : ".mysql_error());
     
      while ($row = mysql_fetch_assoc($resultat)) 
        { 
        $DBClé = $row["Cle"]; 
        }
     
      // On compare les clés
        if($MailClé == $DBClé): // On compare nos deux clés	
          $requete = "UPDATE kdo SET Activation='1' WHERE Pseudo = '$MailPseudo'";
          $resultat = mysql_query($requete,$connexion) or die ("Erreur : ".mysql_error());
          echo '<br><span class="Style4">A présent ton compte est actif. <br><br>Prévois un certain temps avant que ta page soit fonctionnelle.<br><br>Tu recevras un mail lorsque cela sera fait.<BR><BR>En attendant, tu peux réfléchir aux cadeaux que tu aimerais avoir
    	  <br><br>Pour retourner sur le site, Mini Kdo, cliques sur <a href="http://minikdo.free.fr/">ce lien</a>';
    	else:                   // Si les deux clés sont différentes on ne valide pas
          mysql_close($connexion);
    	   exit('Votre compte n\'a pu être activé pour une raison indéterminée. Veuillez faire un nouvel essai ou contacter le webmaster.');
     
    	endif;	
    		//LE WEBMASTER RECOIT UN MAIL
     
    	if ($Flag==1)
    	{
     
    $Nom=(isset($_POST["nom"])) ? $_POST["nom"] : "";
    $Password=(isset($_POST["password"])) ? $_POST["password"] : "";
    $Email=(isset($_POST["email"])) ? $_POST["email"] : "";
     
    	 	 //Envoi du message au webmaster
     
      	  $Sujet  = "Nouvelle inscription au site Mini Kdo";
    	  $Entete = "webmaster@$SERVER_NAME";
    	  $Destinataire = $Email;
     
    	   $subject="Nouvelle inscription pour Mini Kdo Flash";
           $Texte="Bonjour,\n\n";
           $Texte.="Un nouveau membre vient de s\'inscrire :\n";
           $Texte.="Nom : \t$Pseudo\ .\n";
           $Texte.="mot de passe : \t$Password\ .\n";
           $Texte.="E-Mail : \t$Email\ .\n";
           $headers="From: webmaster@SERVER_NAME\n";
           @mail($adresse_webmaster, $subject, $Texte, $headers);
    	}
    	  //FERMETURE DE LA CONNEXION
     
           mysql_close($connexion);
     
    ?>
    voilà ou j'en suis.

  12. #32
    Rédacteur

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2007
    Messages : 494
    Par défaut
    Salut,

    cette page est-elle appelée de suite après la validation du formulaire, ou alors est-elle appelée quand l'utilisateur clique sur un lien pour activer son compte ?

    PS : Joyeux anniversaire en retard

  13. #33
    Membre averti
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 23
    Par défaut
    merci

    cette page est appelée en même temps que la validation, en fait.

    si j'ai bien compris ce que j'ai fait, , celui qui s'inscrit reçoit un mail pour activer son inscription.

    donc, cette page est la page d'activation.

    il reçoit un mail avec la "clé" dont voici un copier-coller


    Ravie que ce site ait trouv� un int�r�t � tes yeux

    Te voil� avec ta propre page.

    Ton adresse E-Mail et tes identifiants ne seront pas divulgu�s. A toi de les transmettre � ceux de ton entourage pour qu'ils puissent venir �crire ou choisir un cadeau.

    Mais avant tout, il faut activer ton compte. Pour cela, cliques sur le lien ci dessous
    ou copier/coller dans ton navigateur internet.

    http://minikdo.free.fr/activation.ph...803da1c&flag=2

    ---------------
    Ceci est un mail automatique, Merci de ne pas y r�pondre.
    et dès que l'activation est faite, je devrais recevoir un mail avec ses renseignements.

    voilà comment je l'ai conçu.

    Et c'est pas bon...

  14. #34
    Rédacteur

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2007
    Messages : 494
    Par défaut
    Et beh j'ai compris d'où vient ton erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $Nom=(isset($_POST["nom"])) ? $_POST["nom"] : "";
    $Password=(isset($_POST["password"])) ? $_POST["password"] : "";
    $Email=(isset($_POST["email"])) ? $_POST["email"] : "";
    Sur ta page, tu n'as aucune variable POST, vu que celle ci est appelé par le lien que l'utilisateur clique

  15. #35
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut
    Moi, je ne suis pas convaincu ; je crois effectivement que ce code est appelé quand l'utilisateur clique sur le lien, mais seulement grâce aux commentaires du code, car en lisant les posts, j'avais compris le contraire. (Et pour commencer, pourrait-on avoir le code du formulaire ?)
    D'autre part, il y a encore des variables avec accent :
    $MailClé (3 fois) et $DBClé (2 fois)
    Enfin pour être sûr de ce que tu envoies par mail, je rajouterais un echo :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    <?php
      include ('protected/login.inc.php');
      //include ('protected/ctrl.inc.php');
     
      // On récupère le Pseudo et la clé chiffrée du message d'activation
      $MailPseudo = $_GET['log'];
      $MailClé = $_GET['cle'];
      $MailFlag = $_GET['flag'];
     
        // S'IL S'AGIT D'UNE ACTIVATION, ON MET LE FLAG D'ACTIVATION A 1  ET ON SORT
      If ($MailFlag==1):
        // On met le flag d'activation à 1
        $requete = "UPDATE kdo SET Activation='1' WHERE Cle='$MailClé'";
        $resultat = mysql_query($requete,$connexion) or die ("Erreur : ".mysql_error());
        mysql_close($connexion);
     
    	// On propose le retour à la page d'accueil
        echo '<br><span class="Style4">A présent ton compte est actif. D\'ici quelques temps ta page sera construite et tu seras prévenu par un mail. Pour retourner sur le site, Mini Kdo, cliques sur <a href="http://minikdo.free.fr/">ce lien</a>';
        // Et on quitte
    	exit;
      endif;
     
      // Il s'agit forcément  d'une création, on cherche la clé dans la base de données
      $sql = "SELECT Cle FROM kdo WHERE Pseudo = '$MailPseudo'";
      $resultat = mysql_query($sql,$connexion) or die ("Erreur : ".mysql_error());
     
      while ($row = mysql_fetch_assoc($resultat)) 
        { 
        $DBClé = $row["Cle"]; 
        }
     
      // On compare les clés
        if($MailClé == $DBClé): // On compare nos deux clés	
          $requete = "UPDATE kdo SET Activation='1' WHERE Pseudo = '$MailPseudo'";
          $resultat = mysql_query($requete,$connexion) or die ("Erreur : ".mysql_error());
          echo '<br><span class="Style4">A présent ton compte est actif. <br><br>Prévois un certain temps avant que ta page soit fonctionnelle.<br><br>Tu recevras un mail lorsque cela sera fait.<BR><BR>En attendant, tu peux réfléchir aux cadeaux que tu aimerais avoir
    	  <br><br>Pour retourner sur le site, Mini Kdo, cliques sur <a href="http://minikdo.free.fr/">ce lien</a>';
    	else:                   // Si les deux clés sont différentes on ne valide pas
          mysql_close($connexion);
    	   exit('Votre compte n\'a pu être activé pour une raison indéterminée. Veuillez faire un nouvel essai ou contacter le webmaster.');
     
    	endif;	
    		//LE WEBMASTER RECOIT UN MAIL
     
    	if ($Flag==1)
    	{
     
    $Nom=(isset($_POST["nom"])) ? $_POST["nom"] : "";
    $Password=(isset($_POST["password"])) ? $_POST["password"] : "";
    $Email=(isset($_POST["email"])) ? $_POST["email"] : "";
     
    	 	 //Envoi du message au webmaster
     
      	  $Sujet  = "Nouvelle inscription au site Mini Kdo";
    	  $Entete = "webmaster@$SERVER_NAME";
    	  $Destinataire = $Email;
     
    	   $subject="Nouvelle inscription pour Mini Kdo Flash";
           $Texte="Bonjour,\n\n";
           $Texte.="Un nouveau membre vient de s\'inscrire :\n";
           $Texte.="Nom : \t$Pseudo\ .\n";
           $Texte.="mot de passe : \t$Password\ .\n";
           $Texte.="E-Mail : \t$Email\ .\n";
           $headers="From: webmaster@SERVER_NAME\n";
           echo 'texte du mail : '.$Texte.'<br>';
           @mail($adresse_webmaster, $subject, $Texte, $headers);
    	}
    	  //FERMETURE DE LA CONNEXION
     
           mysql_close($connexion);
     
    ?>

  16. #36
    Membre émérite

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Par défaut
    S'il clique sur un lien, ça m'étonnerait beaucoup qu'il reçoive en POST

    Au pire, on peut utiliser $_REQUEST

  17. #37
    Rédacteur

    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2007
    Messages : 494
    Par défaut
    Je suis d'accord avec Shikiryu,

    De plus, vu la structure de son lien, les infos qu'il cherche à mettre dans le mail ne sont pas fournies.

    Avant ces lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $Nom=(isset($_POST["nom"])) ? $_POST["nom"] : "";
    $Password=(isset($_POST["password"])) ? $_POST["password"] : "";
    $Email=(isset($_POST["email"])) ? $_POST["email"] : "";
    Je pense que tu devrais faire une requête SQL pour récupérer les infos et ainsi remplir tes variables

  18. #38
    Membre averti
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 23
    Par défaut
    A LaurentSc

    Moi, je ne suis pas convaincu ; je crois effectivement que ce code est appelé quand l'utilisateur clique sur le lien, mais seulement grâce aux commentaires du code, car en lisant les posts, j'avais compris le contraire. (Et pour commencer, pourrait-on avoir le code du formulaire ?)
    D'autre part, il y a encore des variables avec accent :
    Citation:
    $MailClé (3 fois) et $DBClé (2 fois)
    j'ai enlevé les accents.

    et voici le formulaire d'inscription

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    	<title>formulaire occa piece detachee</title>
    	<META NAME="DESCRIPTION" CONTENT="des idées cadeaux à petit prix pour tous ceux qui ne savent pas quoi offrir ou qui sont dans l'urgence d'une invitation...">
    <META NAME="KEYWORDS" CONTENT="imagine, cadeau, petit, prix">
    <META NAME="AUTHOR" CONTENT="ytz">
    <META HTTP-EQUIV="CONTENT-LANGAGE" CONTENT="français">
    <META NAME="CREATION_DATE" CONTENT="20/05/2011">
    <META NAME="Identifier-URL" CONTENT="http://minikdo.free.fr">
    <META NAME="Reply-to" CONTENT="ytz@yopmail.fr">
    <META NAME="revisit-after" CONTENT="5 days">
    <META name="verify-v1" content="5VOye9oQj26+OHhWBI7nLGGrw0+VVrkFbISLUQwjc4E=" />
    <META NAME="Category" CONTENT="loisirs, famille">
    <META NAME="Robots" CONTENT="index,follow,all">
    </head>
     
    <body background="image/bleue.jpg">
     
    <div align="center"><H2><font face="Comic Sans MS" color="#006699">VALIDATION : NOM & MOT DE PASSE</font></H2></div>
    <form id="form1" method="post" action="inscription.php">
      </td>
      <fieldset>
      <font face="Comic Sans MS" size="3" color="#003399"><legend>Tes Identifiants</legend>
     
      <p>
        <label for="pseudo">Nom Utilisateur<font face="Times New Roman" size="3" color="#CC0033"><b><i>*</i></b></font> :</label>
        <input name="pseudo1" type="text" id="pseudo1" tabindex="50" />
        <br />
        <label for="confirmpseudo">Confirmation du Nom Utilisateur<font face="Times New Roman" size="3" color="#CC0033"><b><i>*</i></b></font> :</label>
        <input name="pseudo2" type="text" id="pseudo2" tabindex="50" />
        <br />
        <br />
        <label for="password">Mot de Passe <font face="Times New Roman" size="3" color="#CC0033"><b><i>*</i></b></font> :</label>
        <input name="password1" type="password" id="password1" />
        <br />
        <label for="confirmot">Confirmation du Mot de Passe<font face="Times New Roman" size="3" color="#CC0033"><b><i>*</i></b></font> :</label>
        <input name="password2" type="password" id="password2" />
        <br />
        <br />
        <label for="mail">Adresse mail <font face="Times New Roman" size="3" color="#CC0033"><b><i>*</i></b></font> :</label>
        <input name="mail1" type="text" id="mail1" tabindex="50" />
        <br />
        <label for="mail">Confirmation @ mail<font face="Times New Roman" size="3" color="#CC0033"><b><i>*</i></b></font> :</label>
        <input name="mail2" type="text" id="mail2" tabindex="50" />
        <br />
        <br />
      </p>
      </font>
      </fieldset>
     	 <div align="center"><br />
          <br />
          <input name="submit" type="submit" value="Envoyer le Formulaire" />
    </form>
     
        <br />
       <div align="center"> <font face="Comic Sans MS" size="3" color="#006699">Merci</font></font></form>
    </div>
     
    </body>
     
    </html>
    A moins que tu veuilles la page "inscription.php"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    <?php
      include ('protected/login.inc.php');
      //include ('protected/ctrl.inc.php');
     
      $Pseudo1=$_POST["pseudo1"];
      $Pseudo2=$_POST["pseudo2"];
      $Password1=$_POST["password1"];
      $Password2=$_POST["password2"];
      $Email1=$_POST["mail1"];
      $Email2=$_POST["mail2"];
     
     
      $Message_envoyé="Dans quelques instants tu vas trouver un E-Mail dans ta boîte à lettres<BR> t'indiquant le lien à suivre pour activer ton compte.<BR> La propagation de ce courrier peut prendre quelques minutes";
      $Message_non_envoyé="Une erreur indéterminée s'est produite dans la procédure d'inscription. Vérifies ton formulaire.";
     
     
      // ON VERIFIE LES CHAMPS OBLIGATOIRES
      if ($Pseudo1=="") exit("Tu dois choisir un nom");
      if ($Pseudo2=="") exit("Tu dois confirmer ton nom");
      if ($Password1=="") exit("Tu dois choisir un mot de passe");
      if ($Password2=="") exit("Tu dois confirmer ton mot de passe");
      if ($Email1=="") exit("L'adresse E-Mail est obligatoire");
      if ($Email2=="") exit("Tu dois confirmer ton adresse E-Mail");
     
      //ON VERIFIE LA COHERENCE DE LA SAISIE
      if ($Pseudo1!=$Pseudo2) exit ("le Nom et sa confirmation sont différents. INSCRIPTION INVALIDE");
      if ($Password1!=$Password2) exit ("le mot de passe et sa confirmation sont différents. INSCRIPTION INVALIDE");
      if ($Email1!=$Email2) exit ("l'adresse E-Mail et sa confirmation sont différentes. INSCRIPTION INVALIDE");
     
      //ON RECUPERE L'ENREGISTREMENT
      $Id = -1;
      $sql = "SELECT * FROM kdo WHERE Pseudo='$Pseudo1' AND Password='$Password1'";
      $resultat = mysql_query($sql,$connexion) or die ("Erreur : ".mysql_error());
     
      //SI L'ENREGISTREMENT EXISTE, ON RECUPERE LES VALEURS
      $Enregistrements=mysql_num_rows($resultat);
      if ($Enregistrements>0):  
        $row = mysql_fetch_row($resultat);
        $Id = $row[0];
        $Pseudo = $row[1];
        $Password = $row[2];
        $FlagActivation=$row[5];
     
      endif;
     
        //SI LE PSEUDO A DEJA ETE UTILISE, ON ARRETE L'INSCRIPTION
      If ($Id!=-1  && $Pseudo==$Pseudo1):
        exit("Ce Nom esr déjà utilisé, tu dois en choisir un autre.");
      endif;
     
      //SI LE MOT DE PASSE A DEJA ETE UTILISE, ON ARRETE L'INSCRIPTION
      If ($Id!=-1  && $Password==$Password1):
        exit("Ce mot de passe est déjà utilisé, tu dois en choisir un autre.");
      endif;
     
      //SI LE COMPTE EXISTE, ON ARRETE L'INSCRIPTION
      If ($Id!=-1 && $FlagActivation=='1'):
        exit("Ton compte est déjà actif, tu ne peux pas en créer un second avec la même adresse E-mail.");
      endif;
     
      //ON MET LE FLAG A 1 OU 2 SELON QUE LE COMPTE EST A ACTIVER OU A CREER
      if ($Id==-1):
        $Flag=2; //Le compte est à créer
      endif;
     
      If ($Id!=-1 && $FlagActivation=='0'):
        $Flag=1; //Le compte est à activer
      endif;
     
      // GENERATION D'UNE CLE ALEATOIRE. SI LE VISITEUR EST DEJA INSCRIT, ON N'EN TIENDRA PAS COMPTE;
      $Clé = md5(microtime(TRUE)*100000);
     
      //SI LE COMPTE EST A CREER, ON ENREGISTRE LES INFORMATIONS DANS LA BASE DE DONNEES
      iF ($Flag==2):
        $requete = "INSERT INTO kdo (Pseudo, Password, Email, Cle)
                    VALUES 
    			    ('$Pseudo1', '$Password1', '$Email1', '$Clé')";
    	$resultat = mysql_query($requete,$connexion);
        //S'il y a une erreur
        if ($resultat==false):
        	exit("Ton inscription n'a pu être effectuée pour une raison inconnue, vérifies ton formulaire.");
    	endif;
      else :
        //Le compte est à activer, on le met d'abord à jour dans changer la clé chiffrée et l'adresse E-Mail
        $requete = "UPDATE kdo SET pseudo='$Pseudo1', password='$Password1' WHERE id=$Id";
        $resultat = mysql_query($requete,$connexion);
     
        //S'il y a une erreur
        if ($resultat==false) exit("Ton inscription n'a pu être effectuée pour une raison inconnue, vérifies ton formulaire.");
     
      endif;
     
        //TOUT EST BON - PREPARATION DU MESSAGE D'ACTIVATION
     
      $Sujet   = "Procédure d'inscription";
      $Entete = "webmaster@$SERVER_NAME";
      $Destinataire = $Email1;
     
      //FORMULE DE POLITESSE
     
    	if(date('G') >= 0 && date('G') < 18) {
    	echo 'Bonjour';
    	} else {
    	echo 'Bonsoir';
    	}
      $Texte .= " \n\n";	
      $Texte .= "Ravie que ce site ait trouvé un intérêt à tes yeux\n\n";
      $Texte .= "Te voilà avec ta propre page.\n\n";
      $Texte .= "Ton adresse E-Mail et tes identifiants ne seront pas divulgués. A toi de les transmettre à ceux de ton entourage pour qu'ils puissent venir écrire ou choisir un cadeau.\n\n";
      $Texte .= 'Mais avant tout, il faut activer ton compte. Pour cela, cliques sur le lien ci dessous
    ou copier/coller dans ton navigateur internet.
    
    http://minikdo.flash.free.fr/activation.php?log='.urlencode($Pseudo1).'&cle='.urlencode($Clé).'&flag='.urlencode($Flag).'
    
    ---------------
    Ceci est un mail automatique, Merci de ne pas y répondre.';
     
      $sendmail=mail($Destinataire, $Sujet, $Texte, $Entete) ; // Envoi du mail
     
      if ($sendmail):
        echo $Message_envoyé;
      else:
        echo $Message_non_envoyé;
      endif;
     
      //FERMETURE DE LA CONNEXION
      mysql_close($connexion);
     
    ?>
    En faisant ce copier-coller, je viens de m'apercevoir que je devrai écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	$Pseudo=(isset($POST["pseudo1"])) ? $_POST["pseudo1"] : "";
    mais cela marche pas non plus, je reçois un mail sans renseignement.

    Et pour le fait de mettre un "echo" dans le mail :

    $Texte.="E-Mail : \t$Email\ .\n";
    $headers="From: webmaster@SERVER_NAME\n";
    echo 'texte du mail : '.$Texte.'<br>';
    @mail($adresse_webmaster, $subject, $Texte, $headers);
    l'echo en texte se retrouve sur la page du site.

    donc, pour le moment, après avoir fait je ne sais combien d'essai, j'en suis toujours au même point

  19. #39
    Membre émérite

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Par défaut
    Citation Envoyé par ytzmi Voir le message
    j'ai enlevé les accents.
    Citation Envoyé par ytzmi Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     if ($sendmail):
        echo $Message_envoyé;
      else:
        echo $Message_non_envoyé;
      endif;
    J'hésite entre et

  20. #40
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Shikiryu Voir le message
    J'hésite entre et
    il manque

    et pour info, dans le contenu des strings dans inscription.php, il y en a aussi plein et ça ne passera pas à l'affichage.

    et sinon, tu envoies combien de mails ? Car il y a un envoi dans inscription.php et un autre dans le code que tu as donné dans un post précédent (6/06 19h04).
    Moi, je suis justement en train de coder exactement la même chose, et je n'ai prévu qu'un seul envoi de mail (le mail avec le lien qui valide l'inscription de l'utilisateur quand celui-ci clique dessus). Et l'autre code (du 6/06), quand est-il appelé ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. [Conception] Création d'un Mailing List via une BDD
    Par Matmax dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 12/04/2006, 15h23
  2. [Mail] probleme piece jointe php
    Par davidcz dans le forum Langage
    Réponses: 4
    Dernier message: 04/03/2006, 01h14
  3. [Mail] Mail de confirmation
    Par tyarak dans le forum Langage
    Réponses: 9
    Dernier message: 13/11/2005, 11h49
  4. [Conception] Création de compte mail.
    Par proner dans le forum Général Java
    Réponses: 5
    Dernier message: 16/02/2005, 11h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo