Problème de membre

Eléphanteau du PHP | 47 Messages

24 déc. 2005, 14:36

J'ai voulu créer un espace membre et je bloque déja pour l'inscription. Se que j'aimerai c'est faire c'est une confirmation d'inscription avec un mot de passe aléatoire qui sera envoyer par mail dont la fonction mail()
<?
if ((isset($_POST['pseudo']))) // Si les variables existent
{
    if ($_POST['pseudo'] != NULL AND $_POST['sexe'] != NULL AND $_POST['date'] != NULL AND $_POST['email'] != NULL ) 
    {
     if (preg_match("!^[-a-z0-9_.]+@[-a-z0-9_.]+.[a-z]{2,4}$!",$_POST['email']) == 1)
    {

        // D'abord, on se connecte à MySQL
        mysql_connect("localhost", "$$$$$$", "$$$$$$$");
        mysql_select_db("$$$$$$");
    
        // On utilise la fonction PHP htmlentities pour éviter d'enregistrer du code HTML dans la table    
        $message = htmlentities ($_POST['message']);
        $sexe = htmlentities ($_POST['sexe']);
        $jours = htmlentities ($_POST['jours']);
        $mois = htmlentities ($_POST['mois']);
        $année = htmlentities ($_POST['année']);
        $email = htmlentities ($_POST['email']);
        $signature = htmlentities ($_POST['signature']);
        $temps = time();
        $validiter=non;
        $motdepasse= rand (1,99999);
        // Ensuite on enregistre le message
        mysql_query("INSERT INTO membre(pseudo, nom, prenom,sexe, email, jour, signature, mois, annee, temps, valider, motdepasse) VALUES('', '$pseudo', '$nom', '$prenom', '$sexe', '$email', '$jour', '$signature', '$mois', '$année', '$temps', '$validiter', '$motdepasse' )");
    
        // On se déconnecte de MySQL
        mysql_close();
        echo "Un Message vient de vous être envoyer à ".$_POST['email']."<br>";
        mail($_POST['email'],"Validation d'inscription sur la communauté LOVE METAL","Bonjour,/r je vous envoie cette Email pour te donnée ton mot de passe de base et le pseudo que tu as enregistré à l'adresse suivante http://guismoman33.free.fr/HIM/index.php?page=inscription . Vous avez 24h pour valider votre inscription à l'adresse suivante : http://guismoman33.free.fr/HIM/index.php?page=inscription. Mon but est de créer une communauté : la communauté LOVE METAL. Je vous remercie d'y participer. /r Ton pseudo : '.$pseudo.' /r Mot de passe : '.$motdepasse.'/r Merci /r guismoman33 webmaster de la communauté love metal");
        $temoin = "temoin";
    }
    else
    {
    echo "Votre E-mail n'est pas valable";
    }}
    else
    {
    ?>Les champs munies d'une <font color="#FF0000">* </font> sont obligatoire voyez remplir tous les champs<?
    }
    
}

if (empty($temoin))
{
?>
Bienvenue dans la partie membre cette partie sera très utile au utilisateur
régulier et permettrons par la suite d'avoir dans partie consacrée juste pour
eux! Des vidéos, des photos juste pour les inscrits! Par la suite j'aimerai que
quelques modules se mettent en place! 
<br>En vous inscrivant je pourrai vous
contactez lorsqu'il y aura de nouvelle rubrique sur le site.
<br>Pour vous inscrire rien de plus simple, remplissez le formulaire suivant.
Toutes les informations que vous insérerez pourront être modifier dans votre
espace membre.
<br>Les indications avec <font color="#FF0000">* </font>seront
obligatoire.
<table border="1" width="50%" bordercolor="#FF66CC" cellspacing="0" cellpadding="0"><tr>
    <td width="50%">Pseudo <font color="#FF0000">* </font>:</td>
    <td width="50%">
    <form method="post" action="index.php?page=inscription">
    <center>
    <input type="text" name="pseudo" /></center>
    </td>
  </tr>
  <tr>
    <td width="50%">Prénom :</td>
    <td width="50%">
    <center>
    <input type="text" name="prenom" />
    </center>
    </td>
  </tr>
  <tr>
    <td width="50%">Nom :</td>
    <td width="50%">
    <center>
    <input type="text" name="nom" /></center>
    </td>
  </tr>
  <tr>
    <td width="50%">Date de naissance (jj/mm/aaaa)<font color="#FF0000">* </font> : </td>
    <td width="50%">
    <select name="jour">
  <option value="">Jour</option">
  <option value="">-----</option">
  <?php $plus = 1; while ($plus != "32")
                              {
                              echo "<option value=\"".$plus."\">".$plus."</option>";
                              $plus = $plus + 1;
                              }
  ?>
  </select>
    <select name="mois">
  <option value="">Mois</option">
  <option value="">-----</option">
  <?php $plus = 1; while ($plus != "13")
                              {
                              echo "<option value=\"".$plus."\">".$plus."</option>";
                              $plus = $plus + 1;
                              }
  ?>
  </select>
      <select name="annee">
  <option value="">Année</option">
  <option value="">-----</option">
  <?php $ans = date('Y'); $plus = 1; while ($plus <= $ans)
                              {
                              echo "<option value=\"".$plus."\">".$plus."</option>";
                              $plus = $plus + $ans - 100;
                              }
  ?>
  </select>
    </td>
  </tr>
      <td width="50%">Sexe <font color="#FF0000">* </font>:</td>
    <td width="50%">
    <input type="radio" name="sexe" value="féminin" checked="checked" /> Féminin
    <input type="radio" name="sexe" value="masculin" /> Masculin</td>
  <tr>
    <td width="50%">Adresse E-mail <font color="#FF0000">* </font>: </td>
    <td width="50%"><input type="text" name="email" /></center></td>
  </tr>
  <tr>
    <td width="50%">Ville~Département~Pays</td>
    <td width="50%">
    <input type="text" name="ville" /><br>
    <input type="text" name="departement" /><br>
    <input type="text" name="pays" />
    </td>
  </tr>
  <tr>
    <td width="50%">Signature : </td>
    <td width="50%">
    <input type="text" name="signature" />
    </td>
  </tr>
</table>
<input type="submit" value="S'inscrire" />
<?
}

if (isset($temoin))
{
$pseudo = htmlentities ($_POST['pseudo']);
$confirmation = htmlentities ($_POST['confirmation']);
$nouveau = htmlentities ($_POST['nouveau']);
$motdepasse2 = htmlentities ($_POST['motdepasse2']);
$change = htmlentities ($_POST['change']);
$donnée = mysql_query("SELECT * FROM membre");
$donnée = mysql_fetch_array($donnée);
$pseuso2=$donnée['pseudo'];
$email=$donnée['email'];
$motdepasse=$donnée['motdepasse'];
if($change=NULL)
{
if ((isset($_POST['pseudo'])) AND (isset($_POST['motdepasse2']))) // Si les variables existent
{
    if ($_POST['pseudo'] != NULL AND $_POST['motdepasse2']!=NULL ) 
    {
if ($pseudo==$pseudo2 AND $motdepasse==$motdepasse2)
{
$données2= mysql_query("UPDATE membre SET valider='oui' WHERE pseudo='$pseudo'");
$temoin2 = "temoin2";
}
}
}

elseif ($change=="on")
{
if ((isset($_POST['pseudo'])) AND (isset($_POST['motdepasse2'])) AND (isset($_POST['confirmation'])) AND (isset($_POST['nouveau']))) // Si les variables existent
{
if ($_POST['pseudo'] != NULL AND $_POST['motdepasse2']!=NULL AND $_POST['confirmation']!=NULL AND $_POST['nouveau']!=NULL) 
{
if  ($motdepasse==$motdepasse2 AND $pseudo==$pseudo2 AND $nouveau==$confirmation)
{
$données2= mysql_query("UPDATE membre SET valider='oui', motdepasse='$nouveau' WHERE pseudo='$pseudo'");
$temoin2 = "temoin2";
}
else {echo "Votre mot de passe ou votre pseudo n'est pas valide.";}
}
else {echo "Vous n'avez pas rempli toutes les informations demandées.";}
}
else {echo "Vous n'avez pas donné toutes les informations.";}
}
if (empty($temoin2))
{
?>
Un Email vous a été envoyé sur votre boîte à l'adresse : <? $email ?>.
<table border="1" width="50%" bordercolor="#FF66CC" cellspacing="0" cellpadding="0"><tr>
    <td width="50%">Pseudo <font color="#FF0000">* </font>:</td>
    <td width="50%">
    <form method="post" action="validation.php">
    <center>
    <input type="text" name="pseudo" /></center>
    </td>
  </tr>
  <tr>
    <td width="50%">Mot de passe aléatoire (celui donné dans le mail) <font color="#FF0000">* </font>:</td>
    <td width="50%">
    <center>
    <input type="text" name="motdepasse2" /></center>
    </td>
</tr>
  <tr>
    <td width="50%">Voulez-vous changez votre mot de passe? <font color="#FF0000">* </font>:</td>
    <td width="50%">
    <center>
    <input type="checkbox" name="change" />
</center>
    </td>
</tr>
  <tr>
    <td width="50%">Nouveau mot de passe<font color="#FF0000">* </font>:</td>
    <td width="50%">
    <center>
    <input type="text" name="nouveau" /></center>
    </td>
  </tr>
  <tr>
    <td width="50%">Confirmer votre nouveau mot de passe <font color="#FF0000">* </font>:</td>
    <td width="50%">
    <center>
    <input type="text" name="confirmation" /></center>
    </td>
  </tr>
  </form>
  </table>
  <?
  }
  else
  {
  ?> "Votre confirmation a bien été pris en compte. <a href=index.php>Revenir à l'entrée du site.</a>
  <?
  }
  }
  }
  ?>
L'information que j'ai ce que des l'inscription je ne recoit aucun mail.
hIm It'S good music

ViPHP
ViPHP | 649 Messages

24 déc. 2005, 16:48

Si tu es en local, tu dois aller jouer dans le php.ini pour configurer le serveur stmp. Sinon, assure toi que ton hébergeur t'offre la fonction mail() dans le phpinfo(). Au fait, c'est bien le mail qui te pose problème non?

Si par contre on reprend la fonction mail() que tu as codé, on voit bien que tu confond les ' et " pour la concaténation:
mail($_POST['email'],"Validation d'inscription sur la communauté LOVE METAL","Bonjour,/r je vous envoie cette Email pour te donnée ton mot de passe de base et le pseudo que tu as enregistré à l'adresse suivante http://guismoman33.free.fr/HIM/index.php?page=inscription . Vous avez 24h pour valider votre inscription à l'adresse suivante : http://guismoman33.free.fr/HIM/index.php?page=inscription. Mon but est de créer une communauté : la communauté LOVE METAL. Je vous remercie d'y participer. /r Ton pseudo : '.$pseudo.' /r Mot de passe : '.$motdepasse.'/r Merci /r guismoman33 webmaster de la communauté love metal"); 
Que tu devrais corriger par:
mail($_POST['email'],'Validation d\'inscription sur la communauté LOVE METAL', 'Bonjour,/r je vous envoie cette Email pour vous donner votre mot de passe de base et le pseudo que vous avez enregistré à l\'adresse suivante http://guismoman33.free.fr/HIM/index.php?page=inscription . Vous avez 24h pour valider votre inscription à l\'adresse suivante : http://guismoman33.free.fr/HIM/index.php?page=inscription. Mon but est de créer une communauté : la communauté LOVE METAL. Je vous remercie d\'y participer. /r Ton pseudo : ' . $pseudo . ' /r Mot de passe : ' . $motdepasse. '/r Merci /r guismoman33 webmaster de la communauté love meta'); 
J'ai remplacé les " par des ' au début (facultatif), j'ai ajouté des \ pour échapper les apostrophes puis j'ai corrigé quelques fautes :P
Image