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 :

Formulaire d'identification


Sujet :

Langage PHP

  1. #1
    Membre du Club Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Points : 49
    Points
    49
    Par défaut Formulaire d'identification
    Bonjour à tous,

    je suis en ce moment entrain de travailler sur un formulaire d'identification mais je rencontre quelques problèmes. Le formulaire se trouve sur une page formulaire.php dont l'action du bouton renvois sur connexion.php.

    C'est d'ailleurs cette page qui me pose problème. L'utilisateur rentre son login et son mdp et je voudrais que l'authentification se fasse suivant les données stockées dans ma table. Suivant si c'est ok ou refusé, un message s'affiche quelques secondes avec une redirection automatique. Mais je ne vois pas comment faire de redirection et je vois pas ce qui cloche dans ma requête...

    Voici le 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
     
    <?						
    mysql_connect("localhost", "root", "");
    mysql_select_db("test");
     
    $SQL="select * from test where pseudo='".$_GET["pseudo"]."', pass='".$_GET["pass"]."'";
    $result=mysql_query($SQL);
     
    if(mysql_num_rows($result)<1){ // Il n'est pas dans la liste
    	echo "<center><b>Veuillez resaisir et vérifier vos identifiants.</b></center>"; 
    	//redirection à cet endroit
    }
    else{ // Il est dans la liste
    	echo "<center><b>Authentification réussie. Patientez, vous allez être redirigé.</b></center>";
    	//redirection à cet endroit
    }			
     
    ?>
    Pour la redirection j'avais pensé à header("location:......) mais il me semble que cela ne fonctionne pas quand on a une balise html présente auparavant dans le code....

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    On n'insere pas directement dans une requete les données saisies par l'utilisateur.
    Et pour separer tes deux conditions c'est 'AND'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $SQL="select * from test where pseudo='".mysql_real_escape_string($_GET["pseudo"])."' AND pass='".mysql_real_escape_string($_GET["pass"])."'";
    pour la redirection :
    http://php.developpez.com/faq/?page=...ts_redirection
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Points : 49
    Points
    49
    Par défaut
    Réponse rapide, merci !

    je vais consulter et tester cela de suite...

    Edit : je viens de tester avec les header et ça ne marche pas, le problème c'est pas les balises html ?

    Sinon je suis toujours refusé alors que les identifiants sont bien dans la table.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Veuillez resaisir et vérifier vos identifiants.
     
    Warning: Cannot modify header information - headers already sent by (output started at ............../connexion.php:1) in ................/connexion.php on line 161

  4. #4
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Bonjour

    Citation Envoyé par yohan0262 Voir le message
    Edit : je viens de tester avec les header et ça ne marche pas, le problème c'est pas les balises html ?
    Ce sont toutes les données textuelles envoyées avant le header : http://php.developpez.com/faq/index....s_already_sent.

    Lis bien le lien donné par sabotage, tu peut faire ta redirection en html ou en javascript, ce qui ne donnera pas cette erreur...
    Vous souhaitez participer à la rubrique (X)HTML/CSS, contactez moi.
    débutez avec les CSS
    Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
    Votez pour les messages qui vous ont aidés...

  5. #5
    Membre du Club Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Points : 49
    Points
    49
    Par défaut
    Ok mais le problème c'est qu'en html et en javascript, je ne pourrais faire qu'une redirection par page puisqu'il faut la mettre dans le <head>. Or là, il m'en faudrait deux possibles suivant la condition comprise dans le if.

    Sinon votre requête ne fonctionne pas...

  6. #6
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Il me semble que tu n'as pas mis tout ton code ?

    Si tu mets tes traitements php au début du fichier, tu pourra faire une redirection par header, ainsi qu'une redirection html ou javascript associée à une condition...

    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
    <?						
    mysql_connect("localhost", "root", "");
    mysql_select_db("test");
     
    $SQL="select * from test where pseudo='".$_GET["pseudo"]."', pass='".$_GET["pass"]."'";
    $result=mysql_query($SQL);
     
    if(mysql_num_rows($result)<1){ // Il n'est pas dans la liste
    	$result_rech = 'non';
    	//redirection à cet endroit
    }
    else{ // Il est dans la liste
    	$result_rech = 'oui';
    	//redirection à cet endroit
    }	 		
    ?>
     
    code html...
     
    <?php
    if ($result_rech == 'non') {		
        echo "<center><b>Veuillez resaisir et vérifier vos identifiants.</b></center>";
    } elseif ($result_rech == 'oui') {
        echo "<center><b>Authentification réussie. Patientez, vous allez être redirigé.</b></center>";
    }
    ?>
    Ceci est un exemple assez schématique pour te donner une idée de comment faire.
    Vous souhaitez participer à la rubrique (X)HTML/CSS, contactez moi.
    débutez avec les CSS
    Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
    Votez pour les messages qui vous ont aidés...

  7. #7
    Membre du Club Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Points : 49
    Points
    49
    Par défaut
    Ok ok je vois ce que vous me demandez de faire, c'est vrai que je n'y avais pas pensé, je vais tester !

    Par contre lorsque je tape des identifiants présents dans la table, mon mysql_num_rows reste toujours inférieur à 1 donc à 0, et me renvois toujours vers "veuillez resaisir vos identifiants"... Pas d'idée pour la requête ?

    En retirant les $_Get["pseudo"] et $_Get["pass"] et en les remplacant par les vrais identifiants, ma requête fonctionne très bien dans mysql, donc le problème doit apriori venir de sa...Y'a pas un problème de quote quelque part ?

  8. #8
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Tu pourrais commencer par faire un pour visualiser ta requête, cela peut éventuellement te montrer où se trouve le problème...
    Vous souhaitez participer à la rubrique (X)HTML/CSS, contactez moi.
    débutez avec les CSS
    Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
    Votez pour les messages qui vous ont aidés...

  9. #9
    Membre du Club Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Points : 49
    Points
    49
    Par défaut
    Voici ce que cela me renvois :

    select * from test where pseudo='', pass=''

    Donc je pense que ma requête ne récupère pas le pseudo et le mot de passe rentrés par l'user.

  10. #10
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    En effet, vérifie du coté de $_GET ce qui se passe. Il serait peut être intéressant de voir le code de ton formulaire.

    De plus tu n'as pas modifié ta requête comme te l'as suggéré sabotage dans son premier message : mettre un AND au lieu de la virgule dans ta requête...
    Vous souhaitez participer à la rubrique (X)HTML/CSS, contactez moi.
    débutez avec les CSS
    Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
    Votez pour les messages qui vous ont aidés...

  11. #11
    Membre du Club Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Points : 49
    Points
    49
    Par défaut
    Si si j'avais essayé juste avant avec la requête que m'avais passé sabotage mais j'obtenais le même résultat avec le echo $sql :

    select * from test where pseudo='' AND pass=''

  12. #12
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Oui mais c'est un autre problème : pour séparer deux conditions dans une clause WHERE il faut mettre AND et non une virgule.
    Vous souhaitez participer à la rubrique (X)HTML/CSS, contactez moi.
    débutez avec les CSS
    Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
    Votez pour les messages qui vous ont aidés...

  13. #13
    Membre du Club Avatar de yohan0262
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 159
    Points : 49
    Points
    49
    Par défaut
    C'est bien ce que je disais au dessus, j'ai déjà essayé mais ça ne marche pas et me renvois la même erreur...

    C'est bon le problème est résolut. Il suffisait de remplacer mes méthodes GET par des méthodes POST. Je récupère bien le pseudo et le mot de passe saisis par l'utilisateur et l'identification avec la base de donné se fait correctement avec la bonne redirection.

    J'en profiterais juste vous demander si vous ne connaissez pas quelques liens intéressant pour gérer le cas où l'utilisateur oublis son mot de passe.

    En vous remerciant déjà pour vos réponses précédentes !

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

Discussions similaires

  1. formulaire d'identification en vb
    Par maynousha dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 17/03/2008, 13h18
  2. Créer un formulaire d'identification
    Par Carnage76 dans le forum VBA Access
    Réponses: 6
    Dernier message: 25/05/2007, 13h21
  3. Pb formulaire d'identification (sécurité)
    Par kollyv dans le forum Langage
    Réponses: 6
    Dernier message: 03/10/2006, 15h27
  4. [MySQL] Formulaire d'identification ok en local mais pas sur le serveur
    Par hoangeric dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 24/04/2006, 20h49
  5. [SSL] Formulaire d'identification sécurisé
    Par akecoocoo dans le forum Sécurité
    Réponses: 1
    Dernier message: 05/01/2006, 17h59

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