IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

php et MySQL


Sujet :

Langage PHP

  1. #1
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 27
    Par défaut php et MySQL
    comment peut on faire une condition sur un champ pour k'il ne doit pa etre repéter par un autre utilisateur exemple
    dans la BD on comme pseudo ah20 , il ne faut pas qu'un autre utilisateur ait le même non , aider moi svp

  2. #2
    Membre expérimenté Avatar de sayari.dev
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2010
    Messages : 142
    Par défaut
    Si c'est au niveau du SGBD que tu parles, tu dois définir le champ pseudo comme clé primaire.

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur LAMP
    Inscrit en
    Janvier 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur LAMP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2010
    Messages : 48
    Par défaut
    OU plutôt le mettre en UNIQUE non ?

    Mais avant de valider son inscription rien ne t'empêche de vérifier si un autre utilisateur utilise le même pseudo

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    SELECT COUNT(*) AS nb FROM `user` WHERE pseudo = 'test';
    Si nb retourne 1 => pseudo déjà utilisé (ça n'empêche pas de le mettre en unique)

  4. #4
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 27
    Par défaut
    s'il vous plait comme je ss débutante tu peux m'expliquer ou je mettre ca voilà c mon code PHP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    <?php 
     require ('config.php');
     
    function verifMail($mail)
    {
       $synthaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#';
       if(preg_match($synthaxe,$mail))
          return true;
       else
         return false;
    }
     
     
    // Si j'ai appuyé sur créer votre compte
    if($_POST['Submit'])
    {	
    	if(empty($_POST["pseudo"]))
    		$error[] = "Vous devez saisir votre pseudo.";
    	if(!verifMail($_POST["mail"]))
    		$error[] = "Vous devez saisir une adresse mail correcte.";
    	if(empty($_POST["mdp1"]))
    		$error[] = "Vous devez saisir votre mot de passe";
    	if(empty($_POST["mdp2"]))
    		$error[] = "Vous devez saisir la confirmation de votre mot de passe";
    	if($_POST["mdp1"] != $_POST["mdp2"])
    		$error[] = "Les mots de passe sont différents.";
    	if($_POST["langue"] == 0)
    		$error[] = "Vous devez choisir votre langue.";
    	if(empty($_POST["nom"]))
    		$error[] = "Vous devez saisir votre nom.";
    	if(empty($_POST["prenom"]))
    		$error[] = "Vous devez saisir votre prénom.";
    	if(empty($_POST["date"]))
    		$error[] = "Vous devez saisir votre date de naissance.";
    	if($_POST["pays"] == 0)
    		$error[] = "Vous devez choisir votre pays.";
     
    	if(isset($error))
    	{
    		echo "<ul>";
    		for($i=0;$i<count($error);$i++)
    		{
    			echo "<h3><li style='color:green'>".$error[$i]."</li></h3>";
     
    		}
    		echo "</ul>";
    	}
    	else
    	{
          $pseudo=$_POST['pseudo'];
          $mail = $_POST['mail']; 
          $mdp1 =$_POST['mdp1'] ; 
          $langue =$_POST['langue'] ; 
          $sexe = $_POST['sexe']; 
          $nom = $_POST['nom'] ; 
          $prenom = $_POST['prenom']; 
          $date = $_POST['date'];
          $pays = $_POST['pays']; 
          $proposition = $_POST['proposition']; 
    	  if (empty($error)){ 
    	  $req = "INSERT  client SET pseudo='$pseudo',mail='$mail',mdp1='$mdp1',langue='$langue',sexe='$sexe',nom='$nom',prenom='$prenom',date='$date',pays='$pays',proposition='$proposition'"; 
          mysql_query($req);
          echo"<center>votre compte est valider vous devez confimer dans mail</center>";
    	}
    	}
     
     
    }
    ?>

  5. #5
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 27
    Par défaut
    j'aimerai bien une condition pour que l'utilisateur ne peut pas entrer un pseudo déja existant je' utilise phpMyadmin

  6. #6
    Membre expérimenté Avatar de sayari.dev
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2010
    Messages : 142
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    <?php
    require ('config.php');
     
    function verifMail($mail)
    {
    $synthaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#';
    if(preg_match($synthaxe,$mail))
    return true;
    else
    return false;
    }
     
     
    // Si j'ai appuyé sur créer votre compte
    if($_POST['Submit'])
    {
    if(empty($_POST["pseudo"]))
    $error[] = "Vous devez saisir votre pseudo.";
    $nb = mysql_query("SELECT * FROM user WHERE pseudo = '" . addslashes($_POST["pseudo"]) . "' LIMIT 1");
    if(mysql_num_rows($nb)) $error[] = "Pseudo déjà utilisé.";
    if(!verifMail($_POST["mail"]))
    $error[] = "Vous devez saisir une adresse mail correcte.";
    if(empty($_POST["mdp1"]))
    $error[] = "Vous devez saisir votre mot de passe";
    if(empty($_POST["mdp2"]))
    $error[] = "Vous devez saisir la confirmation de votre mot de passe";
    if($_POST["mdp1"] != $_POST["mdp2"])
    $error[] = "Les mots de passe sont différents.";
    if($_POST["langue"] == 0)
    $error[] = "Vous devez choisir votre langue.";
    if(empty($_POST["nom"]))
    $error[] = "Vous devez saisir votre nom.";
    if(empty($_POST["prenom"]))
    $error[] = "Vous devez saisir votre prénom.";
    if(empty($_POST["date"]))
    $error[] = "Vous devez saisir votre date de naissance.";
    if($_POST["pays"] == 0)
    $error[] = "Vous devez choisir votre pays.";
     
    if(isset($error))
    {
    echo "<ul>";
    for($i=0;$i<count($error);$i++)
    {
    echo "<h3><li style='color:green'>".$error[$i]."</li></h3>";
     
    }
    echo "</ul>";
    }
    else
    {
    $pseudo=$_POST['pseudo'];
    $mail = $_POST['mail'];
    $mdp1 =$_POST['mdp1'] ;
    $langue =$_POST['langue'] ;
    $sexe = $_POST['sexe'];
    $nom = $_POST['nom'] ;
    $prenom = $_POST['prenom'];
    $date = $_POST['date'];
    $pays = $_POST['pays'];
    $proposition = $_POST['proposition'];
    if (empty($error)){
    $req = "INSERT client SET pseudo='$pseudo',mail='$mail',mdp1='$mdp1',langue='$langue',sexe='$sexe',nom='$nom',prenom='$prenom',date='$date',pays='$pays',proposition='$proposition'";
    mysql_query($req);
    echo"<center>votre compte est valider vous devez confimer dans mail</center>";
    }
    }
     
     
    }
    ?>

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur LAMP
    Inscrit en
    Janvier 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur LAMP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2010
    Messages : 48
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
     
    function isDispo($pseudo)
    {
          $pseudo = mysql_real_escape_string($pseudo);
          $sql = "SELECT COUNT(*) as nb 
                    FROM `client`
                    WHERE `pseudo` = '$pseudo'";
          $ressource = mysql_query($sql);
          $result      = mysql_fetch_assoc($ressource);
     
          if($result['nb'] == 1 ) return false;
          else return true;
    }
     
    if(empty($_POST["pseudo"]))
         $error[] = "Vous devez saisir votre pseudo.";
    elseif(!isDispo($_POST["pseudo"]))
         $error[] = "Pseudo déjà utilisé.";
    => php.dev est plus rapide ^^

  8. #8
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 27
    Par défaut
    quand je l'ai executer ca m'arrive ca ??????
    Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\Documents and Settings\Afifa\Bureau\test\new2.php on line 20
    votre compte est valider vous devez confimer dans mail

  9. #9
    Membre expérimenté Avatar de sayari.dev
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2010
    Messages : 142
    Par défaut
    Excuse-moi mais c'est la table client et non pas user


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT .... FROM client ......

  10. #10
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 27
    Par défaut
    merci bcqqqqq

  11. #11
    Membre expérimenté Avatar de sayari.dev
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2010
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2010
    Messages : 142
    Par défaut
    De rien, voici un petit tuto pour bien se protéger contre les injections sql

    http://thierrylhomme.developpez.com/php/php_secure/#bdd

Discussions similaires

  1. [SGBD] requête sql en php pour mysql
    Par Thierry8 dans le forum Requêtes
    Réponses: 1
    Dernier message: 20/09/2005, 22h31
  2. [SGBD] Probleme Avec Php et Mysql
    Par junior258 dans le forum Installation
    Réponses: 2
    Dernier message: 20/09/2005, 10h39
  3. Serv apach 2, php 5, mysql 4
    Par Bouki dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 24/06/2005, 15h32
  4. Travailler avec PHP / Apache / MySQL
    Par R3iTt0R dans le forum Linux
    Réponses: 22
    Dernier message: 24/06/2004, 11h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo