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 :

Inscription zone membre et envoi e-mail


Sujet :

Langage PHP

  1. #21
    Membre averti
    Webmaster
    Inscrit en
    Août 2009
    Messages
    33
    Détails du profil
    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Août 2009
    Messages : 33
    Par défaut
    Merci beaucoup pour cette précision !

    L'envoie du mail et l'enregistrement dans base MySql fonctionne parfaitement, mais c'est la vérification de l'e-mail qui ne marche plus

    Svp vous pouvez me dire ce qui ne va pas dans mon code

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     if (mail($destinataire, $objet, $message, $headers)) { // Envoi message
                //Redirection après envoi du message
                header("Location:inscription_ok.php");
            } else {
                $erreur_mail=1;
            }
        }
    }
    ?>

    Affichage de l'erreur :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
      if ($erreur_mail==1)
      {
    ?>
    <br>
    <p class="warning">L'email <b>: <?php echo $FORMemail ?> </b> existe d&eacute;j&agrave; dans notre base de donn&eacute;es.<br>
    Choisissez un autre Email ou utilisez le compte d&eacute;j&agrave; cr&eacute;e <a href="login.php">ICI</a><br>
    </p>
     <?php
      $erreur_mail=0; //ici on efface la valeur de la variable erreur_mail
       }
    ?>

    merci

  2. #22
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    C'est logique il n'y a plus le bout de code qui fait le test et que tu mettais au début.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $query_rsClient = "SELECT email FROM clients WHERE email = '$FORMemail' ";
    	$rsClient = mysql_query($query_rsClient , $cnx_pa) or die(mysql_error());
    	$totalRows_rsClient = mysql_num_rows($rsClient);
    	//echo '$totalRows_rsClient='.$totalRows_rsClient;
    	if ($totalRows_rsClient==0)
            {
                         //envoi du mail
             }
             else
            {
                          $erreur_mail = 1;
            }

  3. #23
    Membre averti
    Webmaster
    Inscrit en
    Août 2009
    Messages
    33
    Détails du profil
    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Août 2009
    Messages : 33
    Par défaut
    bé ! pourtant il y est

    voici le code complet :
    Code php : 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
     
     
    <?php
     
    //session inscription au site -----------------------
    if ($HTTP_POST_VARS['inscription']=="ok")
    {
    	//sélection de la base de données
    	mysql_select_db($database_cnx_pa, $cnx_pa);
    	//vérification si le mail existe déjà dans la base
    	$FORMemail=trim($FORMemail); //supprime les espaces éventuels
    $query_rsClient = "SELECT email FROM clients WHERE email = '$FORMemail' ";
    	$rsClient = mysql_query($query_rsClient , $cnx_pa) or die(mysql_error());
    	$totalRows_rsClient = mysql_num_rows($rsClient);
    	//echo '$totalRows_rsClient='.$totalRows_rsClient;
    	if ($totalRows_rsClient==0) 
    	{
            //enregistrement dans la base du nouveau compte client
            $insertSQL = "INSERT INTO clients (nom, societe, pays, email, pass) VALUES ('$nom', '$societe', '$pays', '$FORMemail', '$FORMpass')";
            $Result1 = mysql_query($insertSQL , $cnx_pa) or die(mysql_error()); 
            $clientID=mysql_insert_id();//récupère l'identifiant client attibué 
            //mémorisation des paramètres dans la session
            $statut="client";
            session_register("clientID");
            session_register("statut");
    		//envoie email	 
     
            $destinataire = $FORMemail;
            $expediteur = 'www@wanadoo.fr';
            $copie_cachee = 'stephane@www.com';
            $objet = 'Inscription Espace Pro www'; // Objet du message
            $headers  = 'MIME-Version: 1.0' . "\n"; // Version MIME
            $headers .= 'Reply-To: '.$expediteur."\n"; // Mail de reponse
            $headers .= 'From: "www"<'.$expediteur.'>'."\n"; //Expediteur
            $headers .= 'Delivered-to: '.$destinataire."\n"; // Destinataire
            $headers .= 'Bcc: '.$copie_cachee."\n\n"; // Copie cachée Bcc        
            $message = 'Inscription Espace Pro www recapitulatif des informations'."\n";
            $message .= '  Email: '.$FORMemail.'  Nom: '.$nom.'  Societe: '.$societe.'  Pays: '.$pays."\n\n";
            if (mail($destinataire, $objet, $message, $headers)) { // Envoi message
                //Redirection après envoi du message
                header("Location:inscription_ok.php");
            } 
    		else
            {
                          $erreur_mail = 1;
            }
     
        }
    }//fin du if ($HTTP_POST_VARS['inscription']=="ok") -------------------
    ?>

  4. #24
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2008
    Messages : 46
    Par défaut
    Citation Envoyé par stefart Voir le message

    Affichage de l'erreur :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
      if ($erreur_mail==1)
      {
    ?>
    <br>
    <p class="warning">L'email <b>: <?php echo $FORMemail ?> </b> existe d&eacute;j&agrave; dans notre base de donn&eacute;es.<br>
    Choisissez un autre Email ou utilisez le compte d&eacute;j&agrave; cr&eacute;e <a href="login.php">ICI</a><br>
    </p>
     <?php
      $erreur_mail=0; //ici on efface la valeur de la variable erreur_mail
       }
    ?>

    merci
    Ou test tu si la variable $erreur_mail == 1, à la suite de l'envoie du mail ??

  5. #25
    Membre averti
    Webmaster
    Inscrit en
    Août 2009
    Messages
    33
    Détails du profil
    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Août 2009
    Messages : 33
    Par défaut
    je ne comprend pas ta question ?

  6. #26
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Ton else ne s'applique pas au bon if.

    Tu le fait sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (mail($destinataire, $objet, $message, $headers)
    alors qu'il faut le faire sur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($totalRows_rsClient==0)
    L'indentation est trompeuse...

  7. #27
    Membre averti
    Webmaster
    Inscrit en
    Août 2009
    Messages
    33
    Détails du profil
    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Août 2009
    Messages : 33
    Par défaut
    Bonjour,
    HELP !
    Je suis trop naz je ni arrive pas soit il fait la vérification du mail et il retourne sur la même pag, soit il enregistrement dans la base et envoie a la page : inscription_ok.php

    Dans tous les cas le message ne s'affiche jamais !

    où dois-je mettre le else pour le message d'erreur s'affiche ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    } else {
                $erreur_mail=1;
            }

  8. #28
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2008
    Messages : 46
    Par défaut
    Citation Envoyé par stefart Voir le message

    Affichage de l'erreur :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
      if ($erreur_mail==1)
      {
    ?>
    <br>
    <p class="warning">L'email <b>: <?php echo $FORMemail ?> </b> existe d&eacute;j&agrave; dans notre base de donn&eacute;es.<br>
    Choisissez un autre Email ou utilisez le compte d&eacute;j&agrave; cr&eacute;e <a href="login.php">ICI</a><br>
    </p>
     <?php
      $erreur_mail=0; //ici on efface la valeur de la variable erreur_mail
       }
    ?>

    merci
    D'ou proviens ce code qui est doit afficher ton erreur. De la même page que ton test ?

  9. #29
    Membre averti
    Webmaster
    Inscrit en
    Août 2009
    Messages
    33
    Détails du profil
    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Août 2009
    Messages : 33
    Par défaut
    salut,

    Oui il se trouve dans la même page :

    Voici le code complet de la page 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
     
    <?php
     
    //session inscription au site -----------------------
    if ($HTTP_POST_VARS['inscription']=="ok")
    {
    	//sélection de la base de données
    	mysql_select_db($database_cnx_pa, $cnx_pa);
    	//vérification si le mail existe déjà dans la base
    	$FORMemail=trim($FORMemail); //supprime les espaces éventuels
    	$query_rsClient = "SELECT email FROM clients WHERE email = '$FORMemail' ";
    	$rsClient = mysql_query($query_rsClient , $cnx_pa) or die(mysql_error());
    	$totalRows_rsClient = mysql_num_rows($rsClient);
     
    	if ($totalRows_rsClient==0) {
            //enregistrement dans la base du nouveau compte client
            $insertSQL = "INSERT INTO clients (nom, societe, pays, email, pass) VALUES ('$nom', '$societe', '$pays', '$FORMemail', '$FORMpass')";
            $Result1 = mysql_query($insertSQL , $cnx_pa) or die(mysql_error()); 
            $clientID=mysql_insert_id();//récupère l'identifiant client attibué 
            //mémorisation des paramètres dans la session
            $statut="client";
            session_register("clientID");
            session_register("statut");
    		//envoie email	
     
            $destinataire = $FORMemail;
            $expediteur = 'stephane@xxx.com';
            $copie_cachee = 'stephane@xxx.com';
            $objet = 'Inscription Espace Pro '; // Objet du message
            $headers  = 'MIME-Version: 1.0' . "\n"; // Version MIME
            $headers .= 'Reply-To: '.$expediteur."\n"; // Mail de reponse
            $headers .= 'From: "espace pro"<'.$expediteur.'>'."\n"; //Expediteur
            $headers .= 'Delivered-to: '.$destinataire."\n"; // Destinataire
            $headers .= 'Bcc: '.$copie_cachee."\n\n"; // Copie cachée Bcc        
            $message = 'Inscription Espace Pro recapitulatif des informations'."\n";
            $message .= '  Email: '.$FORMemail.'  Nom: '.$nom.'  Societe: '.$societe.'  Pays: '.$pays."\n\n";
            if (mail($destinataire, $objet, $message, $headers)) { // Envoi message
                //Redirection après envoi du message
                header("Location:inscription_ok.php");
            } else {
                $erreur_mail==1;
            }
        }
    }//fin du if ($HTTP_POST_VARS['inscription']=="ok") -------------------
    ?>
    Le message d'erreur vérification mail
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
      if ($erreur_mail==1)
      {
    ?>
    <br>
    <p class="warning">L'email <b>: <?php echo $FORMemail ?> </b> existe déjà dans notre base de données.<br>
    Choisissez un autre Email ou utilisez le compte déjà crée <a href="login.php">ICI</a><br>
    </p>
     <?php
      $erreur_mail=0; //ici on efface la valeur de la variable erreur_mail
       }
    ?>
    Le formulaire d'enregistrement
    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
     
    <form action="<?php echo $editFormAction; ?>" method="post" name="form" id="form">
                                  <p>Votre Nom :
                                    <input name="nom" type="text" id="nom" size="35">
                                    ** </p>
    								<p>Votre société :
                            <input name="societe" type="text" id="societe" size="35">
    							</p>
     
    							<p> Votre Pays : 
    							<select name="pays" size="1">
     
                              <option value="FRA" selected>France   
                              <option value="AUTRE">Autre pays... 
                            </select>
    								</p>
                                    <p>Votre adresse email :
                                    <input name="FORMemail" type="text" id="FORMemail" size="35">
                                    **</p>
                                  <p>Votre mot de passe :
                                    <input name="FORMpass" type="password" id="FORMpass" size="10" maxlength="10">
                                    10 caractères maximum**	 </p>
                                  <p> Attention ** indique les champs  obligatoires</p>
     
                                      <p>
                                        <input name="inscription" type="hidden" id="inscription" value="ok">
                                        <input type="reset" name="reset"  value="R&eacute;initialiser">&nbsp;&nbsp;<input type="submit" name="Submit" value="Envoyer">
                                      </p>
     
    </form>
     
    <input type="hidden" name="MM_insert" value="form1">
    <a href="login.php">Retour</a></div>
    merci

  10. #30
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2008
    Messages : 46
    Par défaut
    Si je comprend bien lorsque l'enregistrement se passe bien tu redirige vers une autre page et tu n'a donc pas de message d'erreur.
    Dans l'autre cas tu utilise une variable pour afficher un message plus bas dans ta page.

    Tu doit donc assigner une valeur et non la comparer en utilisant un seul égal au lieu de deux.
    De plus de test de validation de ton mail ne doit pas s'appliquer à ton envoi de mail mais à ta procédure complète.
    Voici le code rectifié :

    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
     
    if ($totalRows_rsClient==0) {
            //enregistrement dans la base du nouveau compte client
            $insertSQL = "INSERT INTO clients (nom, societe, pays, email, pass) VALUES ('$nom', '$societe', '$pays', '$FORMemail', '$FORMpass')";
            $Result1 = mysql_query($insertSQL , $cnx_pa) or die(mysql_error()); 
            $clientID=mysql_insert_id();//récupère l'identifiant client attibué 
            //mémorisation des paramètres dans la session
            $statut="client";
            session_register("clientID");
            session_register("statut");
    		//envoie email	
     
            $destinataire = $FORMemail;
            $expediteur = 'stephane@xxx.com';
            $copie_cachee = 'stephane@xxx.com';
            $objet = 'Inscription Espace Pro '; // Objet du message
            $headers  = 'MIME-Version: 1.0' . "\n"; // Version MIME
            $headers .= 'Reply-To: '.$expediteur."\n"; // Mail de reponse
            $headers .= 'From: "espace pro"<'.$expediteur.'>'."\n"; //Expediteur
            $headers .= 'Delivered-to: '.$destinataire."\n"; // Destinataire
            $headers .= 'Bcc: '.$copie_cachee."\n\n"; // Copie cachée Bcc        
            $message = 'Inscription Espace Pro recapitulatif des informations'."\n";
            $message .= '  Email: '.$FORMemail.'  Nom: '.$nom.'  Societe: '.$societe.'  Pays: '.$pays."\n\n";
            if (mail($destinataire, $objet, $message, $headers)) { // Envoi message
                //Redirection après envoi du message
                header("Location:inscription_ok.php");
            }
    } else {
          $erreur_mail=1;
    }

  11. #31
    Membre averti
    Webmaster
    Inscrit en
    Août 2009
    Messages
    33
    Détails du profil
    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Août 2009
    Messages : 33
    Par défaut
    ok ! super ça marche

    merci beaucoup

  12. #32
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2008
    Messages : 46
    Par défaut
    De rien ;-)

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [AC-2003] VBA, Zone de liste et envoi de mail
    Par jpamy dans le forum VBA Access
    Réponses: 1
    Dernier message: 25/10/2011, 23h24
  2. [phpBB] Validation par e-mail de l'inscription du membre
    Par jlb59 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 29/11/2007, 11h05
  3. Réponses: 2
    Dernier message: 03/05/2006, 00h12
  4. [MySQL] Envoi identifiant d'une zone membre par mail
    Par vinche999 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 26/01/2006, 23h12
  5. envoi de mail, protocol SMTP langage C
    Par Heimdall dans le forum Développement
    Réponses: 2
    Dernier message: 23/05/2003, 11h22

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