J'ai un problème avec mon code. L'inscription se déroule très bien mais mon code ne verifie pas si le pseudo ou le mail entrés existent déjà dans la table.
Voici mon code :
<?php
//*********************************************************//
//******** Verification d'existance des variables *********//
//*********************************************************//
if (isset($_POST['login']) && isset($_POST['pass']) && isset($_POST['pass_confirme']) && isset($_POST['mail']))
{
if (!empty($_POST['login']) && !empty($_POST['pass']) && !empty($_POST['pass_confirme']) && !empty($_POST['mail']))
{
//****************************************************//
//***** Déclaration des variables et des erreurs *****//
//****************************************************//
if ($_POST['pass'] == $_POST['pass_confirme'])
{
$pass = $_POST['pass'];
$pass_confirme = $_POST['pass_confirme'];
}
else
{
$error = 'Les deux mot de passe sont différents';
}
if (preg_match("#[a-z0-9._-]{2,10}#i", $_POST['login']))
{
$login = htmlentities($_POST['login']);
}
else
{
$error = 'Le pseudo doit contenir entre 4 et 10 caractéres !';
}
if (preg_match("#[a-z0-9._-]{6,}#i", $_POST['pass']))
{
$mot_de_passe = htmlentities($pass);
}
else
{
$error = 'Le mot de passe doit contenir aumoins 6 caractére !';
}
if (preg_match("#[a-z0-9._-]{6,}#i", $_POST['pass_confirme']))
{
$mot_de_passe_confirmation = htmlentities($pass_confirme);
}
elseif (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['mail']))
{
$mail = htmlentities($_POST['mail']);
}
else
{
$error = 'L\'adresse e-mail que vous avez entrée n\'est pas valide !';
}
if ($login == htmlentities($_POST['login']) && $mot_de_passe == htmlentities($pass) && $mot_de_passe_confirmation = htmlentities($pass_confirme) && $mail == htmlentities($_POST['mail']))
{
$bdd = mysql_connect('localhost', '*******', '************');
mysql_select_db('******', $bdd);
$sql = 'SELECT count(*) FROM membres WHERE login="'.addslashes($login).'" AND mail="'.addslashes($mail).'"';
$reponse = mysql_query($sql) or die ('<span style="color:red"><em>Une erreur est survenue lors de la requête SqL !</em></span><br />'.$sql.'<br />'.mysql_error());
$donnees = mysql_fetch_array($reponse);
//***************************************************//
//********** Inscription d'un nouveau login *********//
//***************************************************//
if ($donnees['login'] == 0 && $donnees['mail'] == 0)
{
$SQL = 'INSERT INTO membres VALUES("", "'.addslashes($login).'", "'.addslashes(md5($mot_de_passe)).'", "'.addslashes($mail).'", "0", "'.addslashes(md5($login)).'")';
mysql_query($SQL) or die ('<span style="color:red"><em>Une erreur est survenue lors de la requête SqL !</em></span><br />'.$SQL.'<br />'.mysql_error());
$mail_destinataire = $mail;
$sujet = 'Validation du compte';
$message = '*********** vous souhaite la bienvenue. Pour vous connecter sur le site, vous devez d\'abord valider votre compte en cliquant sur le lien ci dessous :
http://**********.***/validation.php?login='.md5($login).'
Cordialement, ********.';
mail($mail_destinataire, $sujet, $message);
header('Location: validation.php');
exit();
}
else
{
if ($donnees['login'] == 1)
{
$error = 'Ce pseudo est déjà utilisé par un autre membre !';
}
elseif ($donnees['mail'] == 1)
{
$error = 'Cette adresse e-mail est déjà utilisée par un autre membre !';
}
}
}
}
else
{
$error = 'Tous les champs sont obligatoires !';
}
}
?>
<!-- inscription.php, créé le 09/04/2007 à 22h14 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Inscription</title>
</head>
<body>
<!-- Création du formulaire -->
<form action="inscription.php" method="post">
<p>
Pseudo : <input type="text" name="login" value="<?php if (isset($_POST['login'])) { echo $_POST['login']; } ?>" />*<br />
Mot de passe : <input type="password" name="pass" />*<br />
Confirmer le mot de passe : <input type="password" name="pass_confirme" />*<br />
Adresse e-mail : <input type="text" name="mail" />*<br />
<input type="submit" value="S'inscrire" /><br />
</p>
</form>
<!-- Fin du formulaire -->
<p>
<?php
if (isset($error))
{
echo '<span style="color:red;"><em>'.$error.'</em></span><br />';
}
?>
</p>
</body>
</html>
Est-ce que quelqu'un pourrai m'aider ? Je suis passionné par ce language et ça m'énerve d'être bloqué comme ça !Merci.