inscription probleme (même pseudo ou même email)

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : inscription probleme (même pseudo ou même email)

par tghpow » 04 nov. 2008, 11:23

Oui merci du rappel:)
bien probleme résolu, merci encore

par djtec » 04 nov. 2008, 01:11

Oui exact.

Explication rapide:

== Veut dire égal
!= Veut dire différent de
>= Veut dire supérieur ou égal à
=< Veut dire inférieur ou égal à

par tghpow » 04 nov. 2008, 00:22

merci beaucoup! donc pour mon script, j'utilise == et non != c'est bien ca? merci de votre aide!

par orgerix » 03 nov. 2008, 23:23

C'est bien ca. A l'interieur de tes conditions tu valides l'inscription. Donc il faut voir quand tu veux valider.

Avec $nombrepseudo != 0, tu valides l'inscription si le pseudo est déjà présent au moins une fois.

Avec $nombrepseudo == 0, tu valides l'inscription si le pseudo n'existe pas dans la table.

La méthode de djtec est diiférente. Dans la condition, on affiche un mesage d'erreur (et vraissemblablement on arrete le script). Dans ce cas, la condition exprime quand l'inscription n'est pas validé.

J'espère t'avoir légèrement éclairé.

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. :roll:


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 :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

par orgerix » 03 nov. 2008, 21:12

Il y a quelque chose que je comprend pas très bien
if (($_POST['pseudo']) != ($_POST['pseudo']) ) 
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.

par sylvaing26 » 03 nov. 2008, 21:05

car on compte le nombre de ligne ou il y a le même pseudo ou le même mail, si c'est zero alors c'est bon mais tu remarquera le ! qui signifie l'inverse donc ca veut dire si le nombre de ligne n'est pas egal a zero

par tghpow » 03 nov. 2008, 21:01

Ok merci, j'ai compris le principe.

Peux tu juste me dire pourquoi 0? j'ai une idée un peu flou et j'aimerais plus de precision stp.

Encore merci

par djtec » 03 nov. 2008, 20:11

Vérifie dans table si le pseudo existe déjà.

Avec une requete de ce genre:
//Vérification du pseudo
$nombrepseudo = mysql_result(mysql_query('SELECT COUNT(*) FROM membres WHERE pseudo = "'.$_POST["pseudo"].'"'), 0);
if($nombrepseudo != 0)
{
        echo "Votre pseudo est déjà utilisé par un membre";
}
Après pour l'e-mail c'est le même principe donc adapte le.

Ceci un extrait du script disponible sur le site du zéro donc voici le lien http://www.siteduzero.com/tutoriel-3-99 ... #ss_part_2

par sylvaing26 » 03 nov. 2008, 20:06

fait d'abord une premiere reuqete a ta base
Select pseudo,mail FROM tatable WHERE pseudo =="$pseudo" OR mail=="mail"
..... fais le necessaire pour la requete je te donne les grdes lignes
if(isset($result['pseudo'])){
echo "ce pseudo existe deja";
}
if(isset($result['mail'])){
echo"ce mail existe deja";
}

inscription probleme (même pseudo ou même email)

par tghpow » 03 nov. 2008, 18:20

Bonjour a tous!

je crée mon premier script (d'inscription), et j'aimerai empecher l'inscription d'un même pseudo ou d'une même adresse email.

J'ai donc fait ca, et je sais que j'ai faux^^Mais comment faire?
<?php
mysql_connect("localhost", "root", "")or die(mysql_error());

mysql_select_db("aranhil")or die(mysql_error());


if ( isset($_POST['pseudo'], $_POST['mot_de_passe'], $_POST['mot_de_passe_repete'], $_POST['email']) )       //Si les formulaires existent
{  
    if (($_POST['pseudo']) != ($_POST['pseudo']) )
    {
       if (($_POST['email']) != ($_POST['email']) )
       {
          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>';
}
}	



 


?>
merci

tghpow. :roll:

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]