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

PHP & Base de données Discussion :

Problème sur des comptes (login/mdp)


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 295
    Points : 87
    Points
    87
    Par défaut Problème sur des comptes (login/mdp)
    Bonjour j'ai 1 soucis pour la création de compte login/mdp

    En faite, j'ai créer quelque compte ca fonctionne, or comme la je test un compte avec login: "moise" et mdp: "moise" il me met que le compte est déja utiliser, alors qu'il n etait pas dans la base, et le crée quand meme.
    QUand j'essai avec login "test" mdp "test" il l'accepte


    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
    $utilisateur = $_POST['utilisateur']; 
    $password = $_POST['password']; 
    $email = $_POST['adresse_email']; 
    //on vérifie si il manque une information
    if((empty($utilisateur)) || (empty($password))) 
    	{ 
    	echo '<script language=javascript> alert ("Vous avez oublié de remplir un champs");</script>'; 
    	echo '<SCRIPT LANGUAGE="JavaScript"> document.location.href="creationcompte.php" </SCRIPT>'; 
    	exit; 
    	} 
    	else{ 
    		$sql1 = "SELECT loginL 
    				FROM logins 
    				WHERE loginL = '".$utilisateur."'"; 
    		$req1 = mysql_query($sql1) or die('Erreur SQL !<br>'.$sql1.'<br>'.mysql_error()); 
    		$data1 = mysql_fetch_array($req1);  
    		if($data1['loginL'] == $utilisateur) 
    		//on vérifie l'existence du pseudo choisi dans la bdd  
    			{ 
    			echo '<script language=javascript> alert ("Votre pseudo est déja pris");</script>'; 
    			echo '<SCRIPT LANGUAGE="JavaScript"> document.location.href="creationcompte.php" </SCRIPT>'; 
    			exit; 
    			} 
    		$sql2 = "SELECT emailL 
    				FROM logins 
    				WHERE emailL = '".$email."'"; 
    		$req2 = mysql_query($sql2) or die('Erreur SQL !<br>'.$sql2.'<br>'.mysql_error()); 
    		$data2 = mysql_fetch_array($req2); 
    		if($data2['emailL']==$email) 
    		//on vérifie l'existence de l'email choisi dans la bdd 
    			{ 
    			echo '<script language=javascript> alert ("Cette adresse e-mail à déjà été inscrite !");</script>'; 
    			echo '<SCRIPT LANGUAGE="JavaScript"> document.location.href="creationcompte.php"</SCRIPT>'; 
    			exit; 
    			} 
    			else 
    				{ 
    				//requête d'insertion
    				$sql3 = "INSERT INTO logins (loginL, passwordL, emailL) 
    						 VALUES ( '".$utilisateur."' , '".$password."', '".$email."')"; 
    				$result3 = mysql_query($sql3) or die ("Erreur d'Insertion dans la base : ". $sql3 .'<br />'. mysql_error()); 
    				echo '  <p>Votre login &agrave; &eacute;t&eacute; ajout&eacute; &agrave; la base de 
    				donn&eacute;es, <a href="index.php">cliquez ici</a> pour vous connecter.</p>'; 
    				} 
    		}

  2. #2
    Membre averti Avatar de XtofRoland
    Profil pro
    Inscrit en
    Août 2005
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 357
    Points : 392
    Points
    392
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $sql2 = "SELECT emailL 
                FROM logins 
                WHERE emailL = '".$email."'"; 
          $req2 = mysql_query($sql2) or die('Erreur SQL !<br>'.$sql2.'<br>'.mysql_error()); 
          $data2 = mysql_fetch_array($req2); 
          if($data2['emailL']==$email)
    ne me parait pas très logique...
    si tu fais un select avec cette condition, je me contenterai de conter le nombre de ligne retournée : soit avec un count(*) soit avec mysql_num_rows.


    PS: les pop up, perso je les trouves super agaçantes


    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
    <?php
    $utilisateur = $_POST['utilisateur']; 
    $password = $_POST['password']; 
    $email = $_POST['adresse_email']; 
    $OK= true;
    function test($sql){
    	global $OK;
    	$req = mysql_query($sql); 
        $data = mysql_fetch_array($req);  
        if($data['cnt'] > 0)  $OK= false;
    }
    if((empty($utilisateur)) || (empty($password)))  { 
       $OK= false;
    }  else{ 
        $sql = "SELECT count(*) as cnt FROM logins 
                WHERE loginL = '".$utilisateur."'"; 
        test($sql);
        $sql2 = "SELECT count(*) as cnt
    		FROM logins 
    		WHERE emailL = '".$email."'"; 
        test($sql);            
    } 
    if ($OK){
    	$sql = "INSERT INTO logins (loginL, passwordL, emailL) 
                       VALUES ( '".$utilisateur."' , '".$password."', '".$email."')"; 
                $result3 = mysql_query($sql) or die ("Erreur d'Insertion dans la base : ". $sql3 .'<br />'. mysql_error()); 
                echo '  <p>Votre login &agrave; &eacute;t&eacute; ajout&eacute; &agrave; la base de 
                donn&eacute;es, <a href="index.php">cliquez ici</a> pour vous connecter.</p>'; 
     
    }else{
    	include "formulaire.html";
    }
    ?>
    j'aurais plutôt tendance à écrire ton code de cette manière
    Le but de tout developpeur OO est de devenir une référence.
    Mon avatar est un ambigramme, les curieux peuvent le retourner ;-)
    Aider <> Faire a la place de!!!

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 295
    Points : 87
    Points
    87
    Par défaut
    J'ai donc adapté mon code au tien
    Seulement j'ai le meme soucis, maintenant j'ai essayé "moise" et "moise" ca fonctionne.

    Par contre j'essaye la "test" et "test" ca fonctionne et ensuite si j'essai "testa" et "testa" meme "test1" "test1" et il me dit pseudo deja pris et l'insert quand meme

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 295
    Points : 87
    Points
    87
    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
    <?php 
    //connection à la base
    include ("mysqlconnect.php"); 
    //récupération des saisies dans le formulaire
    $utilisateur = $_POST['utilisateur']; 
    $password = $_POST['password']; 
    $email = $_POST['adresse_email']; 
    $OK= true; 
    function test($sql)
    	{ 
    	global $OK; 
    	$req = mysql_query($sql); 
        $data = mysql_fetch_array($req);  
        if($data['cnt'] > 0)  $OK= false; 
    	} 
    if((empty($utilisateur)) || (empty($password)))  
    	{ 
    	$OK= false; 
    	echo '<script language=javascript> alert ("Vous avez oublié de remplir un champs");</script>'; 
    	echo '<SCRIPT LANGUAGE="JavaScript"> document.location.href="creationcompte.php" </SCRIPT>'; 
    	exit; 
    	}else{ 
    		$sql = "SELECT count(*) as cnt 
    				FROM logins 
    				WHERE loginL = '".$utilisateur."'"; 
        	test($sql); 
        	$sql2 = "SELECT count(*) as cnt 
          	FROM logins 
          	WHERE emailL = '".$email."'"; 
        	test($sql);            
    		} 
    if ($OK)
    	{ 
    	$sql = "INSERT INTO logins (loginL, passwordL, emailL) 
    			VALUES ( '".$utilisateur."' , '".$password."', '".$email."')"; 
                $result = mysql_query($sql) or die ("Erreur d'Insertion dans la base : ". $sql .'<br />'. mysql_error()); 
                echo '<p>Votre login &agrave; &eacute;t&eacute; ajout&eacute; &agrave; la base de 
                donn&eacute;es, <a href="index.php">cliquez ici</a> pour vous connecter.</p>'; 
    	}else{ 
    		echo '<script language=javascript> alert ("Votre pseudo est déja pris");</script>'; 
    		echo '<SCRIPT LANGUAGE="JavaScript"> document.location.href="creationcompte.php" </SCRIPT>'; 
    		exit;  
    		} 
    include ("mysqldeconnection.php");
    ?>
    <!--lien vers fichier style-->
    <link href="css/style2.css" rel="stylesheet" type="text/css" />

  5. #5
    Membre averti Avatar de XtofRoland
    Profil pro
    Inscrit en
    Août 2005
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2005
    Messages : 357
    Points : 392
    Points
    392
    Par défaut
    une remarque
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    include ("mysqldeconnection.php"); 
    ?> 
    <!--lien vers fichier style--> 
    <link href="css/style2.css" rel="stylesheet" type="text/css" />
    il me semble qu'il faut inclure le css avant.

    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
    <?php 
    //connection à la base 
    include ("mysqlconnect.php"); 
    //récupération des saisies dans le formulaire 
    $utilisateur = $_POST['utilisateur']; 
    $password = $_POST['password']; 
    $email = $_POST['adresse_email']; 
    $OK= true; 
    function test($sql) 
       { 
       global $OK; 
       $req = mysql_query($sql); 
        $data = mysql_fetch_array($req);  
        if($data['cnt'] > 0)  $OK= false; 
       } 
    if((empty($utilisateur)) || (empty($password)))  
       { 
       $OK= false; 
       echo '<script language=javascript> alert ("Vous avez oublié de remplir un champs");</script>'; 
       echo '<SCRIPT LANGUAGE="JavaScript"> document.location.href="creationcompte.php" </SCRIPT>'; 
       exit; 
       }else{ 
          $sql = "SELECT count(*) as cnt 
                FROM logins 
                WHERE loginL = '".$utilisateur."'"; 
           test($sql); 
           $sql2 = "SELECT count(*) as cnt 
             FROM logins 
             WHERE emailL = '".$email."'"; 
           test($sql);            
          } 
     
    echo $OK; // que te donne ct variable?
     
     
    if ($OK)    { 
    echo "<link href="css/style2.css" rel="stylesheet" type="text/css" />";
     
       $sql = "INSERT INTO logins (loginL, passwordL, emailL) 
             VALUES ( '".$utilisateur."' , '".$password."', '".$email."')"; 
                $result = mysql_query($sql) or die ("Erreur d'Insertion dans la base : ". $sql .'<br />'. mysql_error()); 
                echo '<p>Votre login &agrave; &eacute;t&eacute; ajout&eacute; &agrave; la base de 
                donn&eacute;es, <a href="index.php">cliquez ici</a> pour vous connecter.</p>'; 
       }else{ 
        $login=...
        $mdp=...
    $login_message=...
    include"formulaired'inscrition";//tu laisses le formulaire gérer les messages d'erreurs, moi j'utilise un class=error dans le formulaire pour signaler les champs fautifs.
     
        } 
    include ("mysqldeconnection.php"); 
    ?>
    Le but de tout developpeur OO est de devenir une référence.
    Mon avatar est un ambigramme, les curieux peuvent le retourner ;-)
    Aider <> Faire a la place de!!!

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 295
    Points : 87
    Points
    87
    Par défaut
    l'echo donne "1" quand les comptes s'ajoute

    donc autre exemple dans ma base j'avais comme login
    "test1" mdp "test1"
    "test2" mdp "test2"
    "test3" mdp "test3"

    quand je rajoute "test4" "test4" aucun soucis

    apres j essai "test5" "test5" il me renvoi vers la page creationcompte.php et pourtant il m insére test 5 dans la base

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 77
    Points : 57
    Points
    57
    Par défaut
    essaie d'initialiser ta variable $ok à true dans ta fonction test() plutot qu'en dehors.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 295
    Points : 87
    Points
    87
    Par défaut
    Après toutes ces modifs voila le code, et toujours le meme problème, 1 coup ca fonctionne, 1 coup il croit que le login est déja dans la base et l'insére quand meme.

    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
    <?php 
    //connection à la base 
    include ("mysqlconnect.php"); 
    //récupération des saisies dans le formulaire 
    $utilisateur = $_POST['utilisateur']; 
    $password = $_POST['password']; 
    $email = $_POST['adresse_email']; 
    $OK= true; 
    function test($sql) 
       { 
    	global $OK; 
    	$req = mysql_query($sql); 
    	$data = mysql_fetch_array($req);  
    	if($data['cnt'] > 0)  
    		{
    		$OK= false;
    		} 
       } 
    if((empty($utilisateur)) || (empty($password)))  
       { 
       $OK= false; 
       echo '<script language=javascript> alert ("Vous avez oublié de remplir un champs");</script>'; 
       echo '<SCRIPT LANGUAGE="JavaScript"> document.location.href="creationcompte.php" </SCRIPT>'; 
       exit; 
       }else{ 
    		$sql = "SELECT count(*) as cnt 
    		FROM logins 
    		WHERE loginL = '".$utilisateur."'"; 
    		test($sql); 
    		$sql2 = "SELECT count(*) as cnt 
    		FROM logins 
    		WHERE emailL = '".$email."'"; 
    		test($sql);            
    		} 
    echo $OK; 
    // que te donne ct variable? 
    if ($OK)
    	{
    	echo '<link href="css/style2.css" rel="stylesheet" type="text/css" />'; 
    	$sql = "INSERT INTO logins (loginL, passwordL, emailL) 
    	VALUES ('".$utilisateur."' , '".$password."', '".$email."')"; 
    	$result = mysql_query($sql) or die ("Erreur d'Insertion dans la base : ". $sql .'<br />'. mysql_error()); 
    	echo '<p>Votre login &agrave; &eacute;t&eacute; ajout&eacute; &agrave; la base de donn&eacute;es, <a href="index.php">cliquez ici</a> pour vous connecter.</p>'; 
       }else{ 
    include"creationcompte.php";
    //tu laisses le formulaire gérer les messages d'erreurs, moi j'utilise un class=error dans le formulaire pour signaler les champs fautifs. 
        	} 
    include ("mysqldeconnection.php"); 
    ?>

Discussions similaires

  1. Problème sur des PIPEs / tubes
    Par dr4g0n dans le forum POSIX
    Réponses: 7
    Dernier message: 24/01/2008, 21h58
  2. Problème sur des chaines de caractères
    Par soso78 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 16/10/2007, 13h11
  3. Réponses: 1
    Dernier message: 02/07/2007, 15h57
  4. PHP et IIS Problème sur des repertoires virtuels
    Par remi_neo dans le forum IIS
    Réponses: 1
    Dernier message: 30/05/2007, 17h17
  5. Problème sur des chaînes de caractères
    Par Anonymous dans le forum Access
    Réponses: 9
    Dernier message: 16/09/2005, 08h21

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