par
tghpow » 03 nov. 2008, 21:27
Il y a quelque chose que je comprend pas très bien
PHP:
if (($_POST['pseudo']) != ($_POST['pseudo']) )
PHP:
if (($_POST['email']) != ($_POST['email']) )
Ce ne sont pas des conditions qui ne sont jamais vérifiées vu que toute variable est égale à elle même.
Oui je sais:) J'ai ecrit ca au debut sans reflechir et aprés j'ai bien vu mon erreur.
Aprés, j'ai fait comme ceci:
<?php
mysql_connect("localhost", "root", "")or die(mysql_error());
mysql_select_db("aranhil")or die(mysql_error());
$nombrepseudo = mysql_result(mysql_query('SELECT COUNT(*) FROM inscription WHERE pseudo = "'.$_POST["pseudo"].'"'), 0);
$nombreemail = mysql_result(mysql_query('SELECT COUNT(*) FROM inscription WHERE email = "'.$_POST["email"].'"'), 0);
if ( isset($_POST['pseudo'], $_POST['mot_de_passe'], $_POST['mot_de_passe_repete'], $_POST['email']) ) //Si les formulaires existent
{
if($nombrepseudo != 0)
{
if($nombreemail != 0)
{
if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['email'])) //adresse email valide
{
if (!empty($_POST['pseudo']) AND !empty($_POST['mot_de_passe']) AND !empty($_POST['email'])) //Si les formulaires sont remplis
{
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$mot_de_passe = mysql_real_escape_string(htmlspecialchars($_POST['mot_de_passe']));
$mot_de_passe_repete = mysql_real_escape_string(htmlspecialchars($_POST['mot_de_passe_repete']));
$email = mysql_real_escape_string(htmlspecialchars($_POST['email']));
if ($_POST['mot_de_passe_repete'] == $_POST['mot_de_passe'])
{
mysql_query("INSERT INTO inscription (id, pseudo, mot_de_passe, email)VALUES('', '" . $pseudo . "', '" . $mot_de_passe . "', '" . $email . "')")or die(mysql_error()) ;
mysql_close();
echo '<h1 style="text-decoration: underline;">Félication votre inscription est un succés!</h1>';
}
else
{
echo "<p>Une erreur dans la confirmation de votre mot de passe!</p>";
}
}
else
{
echo "<p>Un ou des champs sont restés vides!</p>";
}
}
else
{
echo '<p>Votre adresse email n\'est pas valide.</p>';
}
}
else
{
echo '<p>Votre adresse email est déjà utilisé</p>';
}
}
else
{
echo '<p>Votre pseudo est déjà utilisé</p>';
}
}
?>
Seul probleme, ca fait exactement l'inverse
Je m'explique.
Si j'entre un pseudo ou email déjà dans la table, il accepte l'enregistrement.
Si j'entre un pseudo ou email different de ceux dans la table, il refuse l'enregistrement.
Donc ce ne serai pas plutôt:
if($nombrepseudo == 0) ?
Si c'est le cas, alors je ne comprend plus vraimment:)
merci en tous ca de votre aide
[quote]Il y a quelque chose que je comprend pas très bien
PHP:
if (($_POST['pseudo']) != ($_POST['pseudo']) )
PHP:
if (($_POST['email']) != ($_POST['email']) )
Ce ne sont pas des conditions qui ne sont jamais vérifiées vu que toute variable est égale à elle même.[/quote]
Oui je sais:) J'ai ecrit ca au debut sans reflechir et aprés j'ai bien vu mon erreur. :roll:
Aprés, j'ai fait comme ceci:
[php]<?php
mysql_connect("localhost", "root", "")or die(mysql_error());
mysql_select_db("aranhil")or die(mysql_error());
$nombrepseudo = mysql_result(mysql_query('SELECT COUNT(*) FROM inscription WHERE pseudo = "'.$_POST["pseudo"].'"'), 0);
$nombreemail = mysql_result(mysql_query('SELECT COUNT(*) FROM inscription WHERE email = "'.$_POST["email"].'"'), 0);
if ( isset($_POST['pseudo'], $_POST['mot_de_passe'], $_POST['mot_de_passe_repete'], $_POST['email']) ) //Si les formulaires existent
{
if($nombrepseudo != 0)
{
if($nombreemail != 0)
{
if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['email'])) //adresse email valide
{
if (!empty($_POST['pseudo']) AND !empty($_POST['mot_de_passe']) AND !empty($_POST['email'])) //Si les formulaires sont remplis
{
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$mot_de_passe = mysql_real_escape_string(htmlspecialchars($_POST['mot_de_passe']));
$mot_de_passe_repete = mysql_real_escape_string(htmlspecialchars($_POST['mot_de_passe_repete']));
$email = mysql_real_escape_string(htmlspecialchars($_POST['email']));
if ($_POST['mot_de_passe_repete'] == $_POST['mot_de_passe'])
{
mysql_query("INSERT INTO inscription (id, pseudo, mot_de_passe, email)VALUES('', '" . $pseudo . "', '" . $mot_de_passe . "', '" . $email . "')")or die(mysql_error()) ;
mysql_close();
echo '<h1 style="text-decoration: underline;">Félication votre inscription est un succés!</h1>';
}
else
{
echo "<p>Une erreur dans la confirmation de votre mot de passe!</p>";
}
}
else
{
echo "<p>Un ou des champs sont restés vides!</p>";
}
}
else
{
echo '<p>Votre adresse email n\'est pas valide.</p>';
}
}
else
{
echo '<p>Votre adresse email est déjà utilisé</p>';
}
}
else
{
echo '<p>Votre pseudo est déjà utilisé</p>';
}
}
?>[/php]
Seul probleme, ca fait exactement l'inverse :lol:
Je m'explique.
Si j'entre un pseudo ou email déjà dans la table, il accepte l'enregistrement.
Si j'entre un pseudo ou email different de ceux dans la table, il refuse l'enregistrement.
Donc ce ne serai pas plutôt:
if($nombrepseudo == 0) ?
Si c'est le cas, alors je ne comprend plus vraimment:)
merci en tous ca de votre aide