Je travaille à essayer de développer un espace membres.
Je voudrais l'optimiser
Les inscriptions fonctionnent, mais je n'arrive pas à afficher de message de résultat, qu'un message d'erreur. D'autre part, je souhaiterai qu'en cas d'erreur, dans mon cas : mail existant déjà dans la base, que la personne n'ai pas à retaper tous les champs.
J'ai essayé de faire un echo de variables de formulaire, mais bien évidemment, lorsque l'on se rend pour la première fois sur le formulaire, les champs indiquent une erreur : undefined index 'nom'....etc.
Voici le code d'inscription.php
<?php require_once('includes/xxxxx.php'); ?>
<?php
//init des variables
if(!isset ($_POST['id'])) $id=""; else $id=htmlentities($_POST['id']);
if(!isset ($_POST['nom'])) $nom=""; else $nom=htmlentities($_POST['nom']);
if(!isset ($_POST['prenom'])) $prenom=""; else $prenom=htmlentities($_POST['prenom']);
if(!isset ($_POST['login'])) $login=""; else $login=htmlentities($_POST['login']);
if(!isset ($_POST['pass'])) $pass=""; else $pass=htmlentities($_POST['pass']);
if(!isset ($_POST['pass2'])) $pass2=""; else $pass2=htmlentities($_POST['pass2']);
if(!isset ($_POST['adresse'])) $adresse=""; else $adresse=htmlentities($_POST['adresse']);
if(!isset ($_POST['code_postal'])) $code_postal=""; else $code_postal=htmlentities($_POST['code_postal']);
if(!isset ($_POST['ville'])) $ville=""; else $ville=htmlentities($_POST['ville']);
if(!isset ($_POST['email'])) $email=""; else $email=htmlentities($_POST['email']);
if(!isset ($_POST['naissance'])) $naissance=""; else $naissance=htmlentities($_POST['naissance']);
if(!isset ($_POST['ajoutMembre'])) $ajoutMembre="non"; else $ajoutMembre=$_POST['ajoutMembre'];
if(!isset($erreur_Membre)) $erreur_Membre=0;
if(!isset($_POST['ajoutMembre'])) $ajoutMembre=""; else $ajoutMembre=$_POST['ajoutMembre'];
?>
<?php
if ($ajoutMembre=="ok")
{
//sélection de la base de données
mysql_select_db($database, $xxxx);
//vérification si le mail existe déjà dans la base
$query_Membre = "SELECT email FROM membres WHERE email = '$email' ";
$Membre = mysql_query($query_rsMembre, $xxxx) or die(mysql_error());
$totalRows_Membre = mysql_num_rows($Membre);
//si le mail n'existe pas encore alors :
if ($totalRows_Membre==0)
{
//enregistrement dans la base du nouveau compte client
mysql_select_db($database, $xxxx);
$insertMembre = "INSERT INTO membres (nom, prenom, login, pass, pass2, adresse, code_postal, ville, email, naissance) VALUES ('$nom', '$prenom', '$login', '$pass', '$pass2', '$adresse', '$code_postal', '$ville', '$email', '$naissance')";
mysql_query($insertMembre, $xxxx) or die(mysql_error());
//redirection vers la page inscription
header("Location: inscription.php");
}//fin du if
//si l'email existe déjà > message d'erreur
else
{
$erreur_Membre=1;
}
}
?>
et ici la suite de la page et le formulaire :
<div id="messages">
<?php // script d'affichage d'erreur
if ($erreur_Membre==1)
{
?>
<span class="Style4 Style13">Ce mail<strong> <?php echo $email ?> </strong>existe déjà dans notre base membres. <strong><br /></strong>Choississez un autre mail et réinscrivez vous.</span><br /><br />
<?php
$erreur_Membre=0; // raz du drapeau d'erreur
}
?>
</div>
.../...
<fieldset>
<legend class="Style11">Formulaire d'inscription</legend>
<form action="inscription.php" method="post" enctype="" name="form" id="form">
<table width="346" align="center" cellpadding="3" cellspacing="0">
<tr>
<td width="208" class="Style4"><div align="left">Nom * </div></td>
<td width="124"><div align="left"><input name="nom" type="text" class="form" id="nom" value="<?php echo $_POST['nom']; ?>" /></div></td>
</tr>
<tr>
<td class="Style4"><div align="left">Prénom * </div></td>
<td><div align="left"><input name="prenom" type="text" class="form" value="<?php echo $_POST['prenom']; ?>" /></div></td>
</tr>
<tr>
<td class="Style4"><div align="left">Identifiant * </div></td>
<td><div align="left"><input name="login" type="text" class="form" value="<?php echo $_POST['login']; ?>" /></div></td>
</tr>
<tr>
<td class="Style4"><div align="left">Mot de passe * </div></td>
<td><div align="left"><input name="pass" type="password" class="form" id="pass" /></div></td>
</tr>
<tr>
<td class="Style4"><div align="left">Vérification * </div></td>
<td><div align="left"><input name="pass2" type="password" class="form" /></div></td>
</tr>
<tr>
<td class="Style4"><div align="left">Adresse</div></td>
<td><div align="left"><textarea name="adresse" cols="21" rows="3" class="form" ></textarea></div></td>
</tr>
<tr>
<td class="Style4"><div align="left">Code postal</div></td>
<td><div align="left"><input name="code_postal" type="text" class="form" maxlength="5" /></div></td>
</tr>
<tr>
<td class="Style4"><div align="left">Ville</div></td>
<td><div align="left"><input name="ville" type="text" class="form" /></div></td>
</tr>
<tr>
<td class="Style4"><div align="left">Email * </div></td>
<td><div align="left"><input name="email" type="text" class="form" value="" /></div></td>
</tr>
<tr><td class="Style4"><div align="left">Téléphone * </div></td>
<td><div align="left"><input name="tel" type="text" class="form" value="" /></div></td>
</tr>
<tr>
<td class="Style4"><div align="left">Date de naissance </div></td>
<td><div align="left"><input name="naissance" type="text" class="form" value=""></div></td>
</tr>
<tr>
<td><input name="ajoutMembre" type="hidden" id="ajoutMembre" value="ok" />
<input name="action" type="hidden" id="action" value="1" /></td>
<td><input name="inscription" type="submit" id="inscription" onclick="valider()" value="valider" /></td>
</tr>
</table>
</form>
</fieldset>
<p align="justify">* Champs obligatoires</p>
Une petite idée pour m'aiguiller ou me corriger ? Merci d'avance !