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 INSERTION ET STRUCTURE [Débutant(e)] [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 INSERTION ET STRUCTURE
    Bonjour, je préviens je débute depuis 1 semaine en php , merci de votre compréhension.

    Donc voila j ai 1 Table logins ( loginL, passwordL, emailL )

    1 page de création de compte pour saisir ces 3 informations.

    SEULEMENT il créer le compte et insére les infos dans ma base de donnée correctement, mais il m'affiche le message d'erreur de la ligne 17 ("Votre pseudo est déja pris")

    voici mon code :
    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
     
    <?php
    include ("mysqlconnect.php");
    $utilisateur = $_POST[ 'utilisateur' ];
    $password = $_POST[ 'password' ];
    $email = $_POST[ 'adresse_email' ];
    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) {
    		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) {
    		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{
    $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>';
    include ("mysqldeconnection.php");
    }
    }
    ?>
    J'ai vraiment chercher, ce n'est pas de la mauvaise volonté
    J'ai l'impression que le probleme viens de la structure des if, else if, mais je n'arrive vraiment pas à le résoudre

    Merci Beaucoup

  2. #2
    Rédacteur
    Avatar de cladsam
    Profil pro
    Inscrit en
    Août 2003
    Messages
    1 785
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2003
    Messages : 1 785
    Points : 2 436
    Points
    2 436
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    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) { 
          echo '<script language=javascript> alert ("Votre pseudo est déja pris");</script>';

    Tout se passe comme si, dans le cas ou la personne a bien rentré son pseudo, tu recupere son login:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql1 = "SELECT loginL FROM logins WHERE loginL = '$utilisateur'";
    et si ce login existe, tu lui dit que son pseudo est utlisé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $data1 = mysql_fetch_array($req1); 
    if($data1['loginL']==$utilisateur) { 
          echo '<script language=javascript> alert ("Votre pseudo est déja pris");
    en gros pour moi tu teste l'utilisation de ce login non pas au moment de l'insertion dans la base ( ce qui serait logique) mais au moment de l'identification... et la oui en effet lorsque la personne s'identifie , son pseudo est deja utlisé... sinon elle risque pas de s'identifier
    Chef de Projet SAP. Certifié Prince2 Practitioner
    ---------------------------------------------------
    Anakin Skywalker turned to the Dark Side after his failed attempt to upgrade R/2-D2 to R/3-D2.

  3. #3
    Membre habitué Avatar de crashyear
    Homme Profil pro
    Responsable d’exploitation informatique
    Inscrit en
    Janvier 2006
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Responsable d’exploitation informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2006
    Messages : 267
    Points : 176
    Points
    176
    Par défaut
    Essaye ca et regarde le commentaire que je t'es rajouté :
    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
    <?php 
    include ("mysqlconnect.php"); 
    $utilisateur = $_POST['utilisateur']; 
    $password = $_POST['password']; 
    $email = $_POST['adresse_email']; 
    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); 
    	//tu devrais mettre un test qui verifie si ta requete t'as retourné quelquechose et si c'est le cas alors tu affiche le message
    	if($data1['loginL']==$utilisateur) 
    	{ 
    	      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) 
    	{ 
    	      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
    	{ 
    		$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>'; 
    		include ("mysqldeconnection.php"); 
    	} 
    } 
    ?>
    -> N'oubliez pas de mettre résolu
    http://collinalexis.free.fr

  4. #4
    Membre habitué Avatar de crashyear
    Homme Profil pro
    Responsable d’exploitation informatique
    Inscrit en
    Janvier 2006
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Responsable d’exploitation informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2006
    Messages : 267
    Points : 176
    Points
    176
    Par défaut
    je vien de voir aussi que au niveau des if tu avait oublier un else
    et c'est pour ca qu'il t'enregistrait bien ton utilisateur
    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
    <?php 
    include ("mysqlconnect.php"); 
    $utilisateur = $_POST['utilisateur']; 
    $password = $_POST['password']; 
    $email = $_POST['adresse_email']; 
    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; 
    } [b]
    else 
    { [/b]
    	$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); 
    	//tu devrais mettre un test qui verifie si ta requete t'as retourné quelquechose et si c'est le cas alors tu affiche le message
    	if($data1['loginL']==$utilisateur) 
    	{ 
    	      echo '<script language=javascript> alert ("Votre pseudo est déja pris");</script>'; 
    	      echo '<SCRIPT LANGUAGE="JavaScript"> 
    	      document.location.href="creationcompte.php" </SCRIPT>'; 
    	      exit; 
    	}
    	else
    	{	
    		$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) 
    		{ 
    		      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
    		{ 
    			$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>'; 
    			include ("mysqldeconnection.php"); 
    		} 
    	}
    } 
    ?>
    [/b]
    -> N'oubliez pas de mettre résolu
    http://collinalexis.free.fr

  5. #5
    Membre habitué Avatar de crashyear
    Homme Profil pro
    Responsable d’exploitation informatique
    Inscrit en
    Janvier 2006
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Responsable d’exploitation informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2006
    Messages : 267
    Points : 176
    Points
    176
    Par défaut
    Oups je me suis planté dans l'indication du else que j'ai rajouté c'est le suivant enfin tu vera bien a+
    -> N'oubliez pas de mettre résolu
    http://collinalexis.free.fr

  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
    Ok, bien je vais étudier ca maintenant.

  7. #7
    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
    Re J'sui perdu la, j ai regarder les else ils m'ont l'air correct

    Et quand j'effectue une saisie ( testa comme login ) il me met :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Erreur SQL !
    SELECT loginL FROM logins WHERE loginL = testa
    Unknown column 'testa' in 'where clause
    Le code c'est bien celui corrigé, j'ai pris soin de l'étudier et ...

    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
    <?php 
    include ("mysqlconnect.php"); 
    $utilisateur = $_POST['utilisateur']; 
    $password = $_POST['password']; 
    $email = $_POST['adresse_email']; 
    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)   
       { 
             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) 
       { 
             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 
       { 
          $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>'; 
          include ("mysqldeconnection.php"); 
       } 
    } 
    ?>
    Si je comprend bien l'erreur viendrai de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    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)   
       { 
             echo '<script language=javascript> alert ("Votre pseudo est déja pris");</script>'; 
             echo '<SCRIPT LANGUAGE="JavaScript"> 
             document.location.href="creationcompte.php" </SCRIPT>'; 
             exit; 
       }
    :

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 71
    Points : 46
    Points
    46
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql1 = "SELECT loginL FROM logins WHERE loginL = '".$utilisateur."'";
    n'oublie pas les quotes autour de la chaine a comparer

  9. #9
    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
    Ca marche nickel apres avoir corriger toute mes fautes de débutant
    Merci Beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [debutant][Applet] problèmes insertion applet java
    Par mlequim dans le forum Applets
    Réponses: 5
    Dernier message: 11/07/2005, 09h50
  2. [ZEOSLIB] Problème Insertion dans une table
    Par moscovisci dans le forum Bases de données
    Réponses: 1
    Dernier message: 09/06/2005, 12h05
  3. [javascript] problème insertion image
    Par Pwill dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 18/05/2005, 16h12
  4. Réponses: 5
    Dernier message: 12/04/2005, 09h45
  5. problème insertion
    Par sonialem2000 dans le forum Bases de données
    Réponses: 5
    Dernier message: 14/07/2004, 01h45

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