Je pense que le titre de mon message est assez clair, non
Je cherche comment vérifier si le pseudo et mail existe déjà avant l'inscription.
Merci beaucoup d'avance
Code : Tout sélectionner
ALTER TABLE ta_table ADD UNIQUE pseudo (pseudo), ADD UNIQUE email (email);Code : Tout sélectionner
ALTER TABLE ta_table ADD UNIQUE pseudo (pseudo (255)), ADD UNIQUE email (email (255));Code : Tout sélectionner
ALTER TABLE tbl_name ADD UNIQUE index_name (index_col_name)<?php
$pseudo = htmlspecialchars($_POST['pseudo']);
$pass = htmlspecialchars($_POST['pass']);
$pass2 = htmlspecialchars($_POST['pass2']);
$email = $_POST['email'];
$parrain = $_POST['parrain'];
$ip = $_SERVER['REMOTE_ADDR'];
$inscription = time();
if (isset($_POST) && !empty($_POST['pseudo']) && !empty($_POST['pass']) && !empty($_POST['email'])) {
extract($_POST);
$retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM membres WHERE username=\'' . $pseudo . '\'') or die("Erreur SQL:" . mysql_error()) ;
$donnees = mysql_fetch_array($retour);
if ($pass2 != $pass) {
echo '<p>Vous aves mal retapé votre mot de passe. <a href=\'javascript:history.go(-1)\'>Retour</a></p></p>';
exit;
} elseif($donnees['nbre_entrees'] == 0) {
include("configdebdd.php");
mysql_query("INSERT INTO membres (username,pass,email,argents,points,inscription, connexion,ip,affichage,statut,idparrain) values ('$pseudo','$pass','$email','','1000','$inscription','','$ip','','1','$parrain')") or die("Erreur SQL:" . mysql_error()) ;
mysql_query("update membres set points='+500' WHERE username='$parrain'") or die("Erreur màj :" . mysql_error()) ;
echo '<p>Votre inscription c\'est bien deroule<br />vous pouvez vous connecté <a href=\'my.php\'>Retour</a></p>';
$Sujet = "Vos identifiants";
$Message = "<p>Bonjour <b>$pseudo</b> et bienvenue sur .........</p><p>À bientôt,<br>Le staff</p>";
envoimail($email,$Sujet,$Message);
}else{
echo '<p>Pseudo déjà pris</p>';
}
} else {
echo '<p>Vous avez oublié de remplir un champ. <a href=\'javascript:history.go(-1)\'>Retour</a></p>';
exit;
}
?>Avec le code ci-dessousmais sa mettre un msg a l'utilisateur![]()
<?php
$pseudo = htmlspecialchars($_POST['pseudo']);
$pass = htmlspecialchars($_POST['pass']);
$pass2 = htmlspecialchars($_POST['pass2']);
$email = $_POST['email'];
$parrain = $_POST['parrain'];
$ip = $_SERVER['REMOTE_ADDR'];
$inscription = time();
if (isset($_POST) && !empty($_POST['pseudo']) && !empty($_POST['pass']) && !empty($_POST['email'])) {
extract($_POST);
include("configdebdd.php");
$resultat = mysql_query("INSERT INTO membres (username,pass,email,argents,points,inscription, connexion,ip,affichage,statut,idparrain) values ('$pseudo','$pass','$email','','1000','$inscription','','$ip','','1','$parrain')") or die("Erreur SQL:" . mysql_error()) ;
if (mysql_insert_id () == 0)
{
echo '<p>Pseudo déjà pris</p>';
}else{
mysql_query("update membres set points='+500' WHERE username='$parrain'") or die("Erreur màj :" . mysql_error()) ;
echo '<p>Votre inscription c\'est bien deroule<br />vous pouvez vous connecté <a href=\'my.php\'>Retour</a></p>';
$Sujet = "Vos identifiants";
$Message = "<p>Bonjour <b>$pseudo</b> et bienvenue sur .........</p><p>À bientôt,<br>Le staff</p>";
envoimail($email,$Sujet,$Message);
}
} else {
echo '<p>Vous avez oublié de remplir un champ. <a href=\'javascript:history.go(-1)\'>Retour</a></p>';
exit;
}
?>
Le message "Pseudo déjà pris" s'affichera.J'en ai viré un pour en mettre un autre, qui vérifie s'il y a eu insertion ou non.La vous avez carrement viré un if(vérif des passe) non ?
Faudrait peut être tout de même le remettre ce test sur la vérification (égalité) des 2 mots de passes "saisis" par l'utilisateur.J'en ai viré un pour en mettre un autre, qui vérifie s'il y a eu insertion ou non.La vous avez carrement viré un if(vérif des passe) non ?
Code : Tout sélectionner
set points='+500' ajout 500 points au filleul
Par contre à quoi correspond ceci dans la requête UPDATECode : Tout sélectionner
set points='+500'
un "+500"
Oui si tu as suivis les conseils de Victor BRITO l'insertion en base ne se fera pas puisque le champ pseudo est décalré "unique" donc qui dit pas d'insertion dit mysql_insert_id() renvoit 0.la a ce que je comprends bien la
Il insert puis vérife![]()
Code : Tout sélectionner
set points += 500
$pseudo = $_POST['pseudo'];
$mdp = $_POST['mdp'];
$email = $_POST['email'];
$date = date("d-m-Y");
$parrain = $_POST['parrain'];
$pays = $_POST['pays'];
// on regarde si le pseudo existe déjà
$sql = "SELECT id FROM membre_tbl WHERE pseudo='$pseudo'";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
// on compte le nombre de résultats
$res = mysql_num_rows($req);
if($res!=0) // le pseudo existe déjà, on affiche un message d'erreur
{
?>
<script language="JavaScript">
document.location.href="inscription.php?pseud=Le pseudo existe déjà!&#haut";
</script>
<?php
}
else // Le pseudo n'existe pas, on continue la vérification
{
$sql = "SELECT id FROM membre_tbl WHERE email='$email'";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
// on compte le nombre de résultats
$res = mysql_num_rows($req);
if($res!=0) // l'email existe déjà, on affiche un message d'erreur
{
?>
<script language="JavaScript">
document.location.href="inscription.php?mail=Cette e-mail est déjà pris!&#haut";
</script>
<?php
}
else // L'email n'existe pas, on continue la vérification
{
$sql = "SELECT id FROM membre_tbl WHERE pseudo='$parrain'";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
// on compte le nombre de résultats
$res = mysql_num_rows($req);
if($res==0) // le parrain n'existe pas, on affiche un message d'erreur
{
?>
<script language="JavaScript">
document.location.href="inscription.php?parra=Ce parrain n'existe pas!&#haut";
</script>
<?php
}
else
{
// on crée la requête SQL
$sql = "INSERT INTO membre_tbl(id,pseudo,mdp,email,date,parrain,points,pays) VALUES('','$pseudo','$mdp','$email','$date','$parrain','','$pays')";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
// on crée la requête SQL
$sql = "UPDATE membre_tbl SET points=points+500 WHERE pseudo='$parrain'";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
// on ferme la connexion à mysql
mysql_close();
Bon après je ne sais pas si c'est très sécurisé mais c'est ce que j'utilise et ça marche très bien! CHez moi en tout cas...^^