Forum Clubic

Ajout de confirmation d'inscrption par mail

Bonjour, suite à une petite recherche sur internet et de copier coller de bribes de code j’ai fait ce petit formulaire d’inscription en php.

dont voici le code

    <?php
    // on teste si le visiteur a soumis le formulaire  
    if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') { 
       // on teste l'existence de nos variables. On teste également si elles ne sont pas vides 
       if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) { 
          // on teste les deux mots de passe 
          if ($_POST['pass'] != $_POST['pass_confirm']) { 
             $erreur = 'Les 2 mots de passe sont différents.'; 
          } 
         else { 
            $base = mysql_connect ('localhost', 'root', 'glaces'); 
            mysql_select_db ('meteo', $base); 
            
            // on recherche si ce login est déjà utilisé par un autre membre 
            $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"'; 
            $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
            $data = mysql_fetch_array($req); 
    
            if ($data[0] == 0) { 
               $sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string(md5($_POST['pass'])).'")'; 
               mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); 
    
               session_start(); 
               $_SESSION['login'] = $_POST['login']; 
               header('Location: membre.php'); 
               exit(); 
            } 
            else { 
               $erreur = 'Un membre possède déjà ce login.'; 
            } 
         } 
      } 
      else { 
         $erreur = 'Au moins un des champs est vide.'; 
      }  
   }  
   ?>
   <html>
   <head>
   <title>Inscription</title>
   </head>
    
   <body>
   Inscription à l'espace membre :<br />
  <form action="inscription.php" method="post">
   Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
   Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
   Confirmation du mot de passe : <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"><br />
   <input type="submit" name="inscription" value="Inscription">
   </form>
   <?php
   if (isset($erreur)) echo '<br />',$erreur;  
   ?>
   </body>
   </html> 

Malgré de nombreuses tentative et de nombreux échec, je m’adresse à vous.

J’aurais aimé ajouter une fonction ou le membre qui s’inscrit reçois par mail un mail de confirmation d’inscription et ses identifiant pour se loger sur le site.

merci pour votre aide.

ps : sur ce code j’ai supprimer tout code pour la fonction mail que j’avais essayer.

Bon dimanche

Dans le if ($data[0] == 0) { …

tu ajoute la funtion mail de php

php.net…

par contre va falloir que tu bosse la sécurité.
Mais tu verra cela dans l’étape suivante de ton apprentissage

J’avoue que cette fois c’est compliquer, je vais tenter quelques choses … mais bon, je n’y croit pas trop.

voici avec l’option mail qu’en pensez vous ?

<?php
 // on teste si le visiteur a soumis le formulaire 
 if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') { 
 // on teste l'existence de nos variables. On teste également si elles ne sont pas vides 
 if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) { 
 // on teste les deux mots de passe 
 if ($_POST['pass'] != $_POST['pass_confirm']) { 
 $erreur = 'Les 2 mots de passe sont différents.'; 
 } 
 else { 
 $base = mysql_connect ('localhost', 'root', 'glaces'); 
 mysql_select_db ('meteo', $base); 
 
 // on recherche si ce login est déjà utilisé par un autre membre 
 $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"'; 
 $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
 $data = mysql_fetch_array($req); 
 
 if ($data[0] == 0) { 
 $sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string($_POST['mail']).'", "'.mysql_escape_string(md5($_POST['pass'])).'")'; 
 mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); 
 
 session_start(); 
 $_SESSION['login'] = $_POST['login']; 
 header('Location: membre.php'); 
 exit(); 
 } 
 else { 
 $erreur = 'Un membre possède déjà ce login.'; 
 } 
 } 
 } 
 else { 
 $erreur = 'Au moins un des champs est vide.'; 
 } 
 } 

// Préparation du mail 
$destinataire = $mail;
$sujet = "Merci" ;
$entete = "From: mail@yahoo.fr" ;

// contenu du mail
$message = 'Bienvenue sur.'


---------------
Ceci est un mail automatique, Merci de ne pas y répondre.';


mail($destinataire, $sujet, $message, $entete) ; // Envoi du mail

 ?>


 <html>
 <head>
 <title>Inscription</title>
 </head>
 
 <body>
 Inscription à l'espace membre :<br />
 <form action="inscription.php" method="post">
 Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
 Mail : <input type="text" name="mail" value="<?php if (isset($_POST['mail'])) echo htmlentities(trim($_POST['mail'])); ?>"><br />
 Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
 Confirmation du mot de passe : <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"><br />
 <input type="submit" name="inscription" value="Inscription">
 </form>
 <?php
 if (isset($erreur)) echo '<br />',$erreur; 
 ?>
 </body>
 </html> 

j’ai pas pu tester car je suis en local, sendmail semble le pas fonctionner, dans php.ini (je suis sous linux) à smtp et pout le port, je doit mettre quel paramètre ?
Edité le 25/04/2010 à 21:09

re

Je te conseil de passer par le site du zero www.siteduzero.com…

car le forum de clubic est pas très évolué pour parler code, c’est impeu l’enferre

je crois que tu a mi le mail au mauvais endroit

mais va sur le site du zero est tout serra plus rapide