Sur mon site se trouve un formulaire pour créer un compte sur un espace membre: il y a un champ "Pseudo", un "Mot de Passe" et enfin "Confirmer mot de passe". Le tout est relié à une bdd MySQL.
Cela marche à merveille mais j'aimerai ajouter un champ "e-mail" et une case à cocher si l'on veux recevoir la Newsletter. Comme j'ai utilisé un script tout prêt et que je débute en PHP, j'ai besoin de votre aide !!
Ajoutes deux champs sur ta table :
1. Un champ "email" en TINYTEXT
2. Un champ "newsletters" en BOOLEAN
Ensuite, il te suffit d'ajouter deux champs sur ton formulaire, ce n'est rien d'autre que du XHTML :
<form method="cible.php" method="post">
<!-- ce que tu as déjà -->
<p>
<label for="email">Adresse email</label>
<input type="text" name="email" id="email" />
</p>
<p>
<label for="newsletters">Recevoir la newsletters</label>
<input type="checkbox" id="newsletters" name="newsletters" />
</p>
<!-- la suite, avec le bouton d'envoye par ex. -->
</form>
<?php
session_start();
require 'conf.php';
$erreur=0;
if(isset($_GET['action'],$_POST['passe_membre'],$_POST['confirm_mdp']) AND $_POST['passe_membre']===$_POST['confirm_mdp'])
{
if(get_magic_quotes_gpc()===1)
{
$pseudo=$_POST['pseudo'];
$passe=$_POST['passe_membre'];
}
else
{
$pseudo=addslashes($_POST['pseudo']);
$passe=addslashes($_POST['passe_membre']);
}
if(!trim($pseudo) OR !trim($passe))
{
header('location:inscription.php');
exit;
}
mysql_connect($mysql_host,$mysql_login,$mysql_passe) OR die('<p>Connexion impossible à la base de données. Réessayez plus tard.</p>');
mysql_select_db($mysql_base) OR die('<p>sélection impossible</p>');
$requete=mysql_query('SELECT COUNT(*) FROM membres WHERE pseudo="'.$pseudo.'"') OR die(mysql_error());
$r=mysql_fetch_row($requete);
if($r[0]!=='0')
{
mysql_close();
$erreur=1;
}
else
{
mysql_query('INSERT INTO membres VALUES("","'.$pseudo.'",md5("'.$passe.'"))') OR die(mysql_error());
$_SESSION['login']=$pseudo;
mysql_close();
header('location:zonemembre.php');
exit;
}
}
if($erreur===1)
{
echo '<p>Ce pseudo existe déjà. Veuillez en choisir un autre</p>';
}
?>
<p class="DetailContainer"><span class="f">L'inscription est rapide et gratuite. Elle vous permet de bénéficier de multiples avantages.</span></p>
<hr />
<form method="post" action="inscription.php?action=ajout">
<p>
<span class="f">
<label for="log">Nom d'utilisateur (login) :</label>
<input type="text" name="pseudo" size="20" id="log" />
<br /><br />
Mot de passe :
<input type="password" name="passe_membre" size="20" id="mdp" />
</span></p>
<p><span class="f">
<label for="cmdp">Confirmez votre mot de passe :</label>
<input type="password" name="confirm_mdp" size="20" id="cmdp" />
</span><br /></p>
<p><input type="submit" class="f" value="Inscription" /></p>
</form> </p>
else
{
mysql_query('INSERT INTO membres VALUES("","'.$pseudo.'",md5("'.$passe.'"))') OR die(mysql_error());
$_SESSION['login']=$pseudo;
mysql_close();
header('location:zonemembre.php');
exit;
}
}
if($erreur===1)
{
echo '<p>Ce pseudo existe déjà. Veuillez en choisir un autre</p>';
}
Par
else
{
if(preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#i",$_POST['email'])) {
if(isset($_POST['newsletters'])) { $newsletters = true; } else { $newsletters = false; }
mysql_query('INSERT INTO membres VALUES("","'.$pseudo.'",md5("'.$passe.'"),"'.$_POST['email'].'",'.$newsletters.')') OR die(mysql_error());
$_SESSION['login']=$pseudo;
mysql_close();
header('location:zonemembre.php');
exit;
} else {
$erreur = 2;
}
}
}
if($erreur===1)
{
echo '<p>Ce pseudo existe déjà. Veuillez en choisir un autre</p>';
} elseif($erreur===2) {
echo '<p>L\'adresse email entrée est invalide.</p>';
}
Et n'oublie pas d'ajouter les champs à ton formulaire.