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 :

Liaison session-formulaire [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Membre actif
    Homme Profil pro
    développeur
    Inscrit en
    Février 2013
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : développeur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 123
    Points : 256
    Points
    256
    Par défaut Liaison session-formulaire
    Bonjour à tous !
    je suis débutant en PHP et j'essaye de créer un forum assez simple.
    la partie inscription fonctionne très bien mais j'ai un soucis au niveau de la partie connections (de l'utilisateur).
    j'ai crée 2 pages pour la connection.
    Voila le code de la premiére page (connexion.php):
    Code html : 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
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    	<title>Connexion</title>
    	<link rel="stylesheet" type="text/css" href="style.css" />
    	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    	<style>
            
            </style>
     
    </head>
    <body>
    	<form action="connexion2.php" method="post">
    <p>
    	Veuillez remplir ce formulaire et cliquer sur valider afin de vous identifier.
    	Pseudo (votre nom d'utilisateur): 
        <input type="text" name="pseudo" id="pseudo" method="POST" /><br >
    	Mot de passe (votre mot de passe): 
    	<input type="password" name="mot_de_passe" id="mot_de_passe" method = "POST" /><br >
    	<input type="submit" value="valider" />
    </p>	
     
    </body>

    et celui de la seconde page(connexion2.php):
    Code php : 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
    <?php
    session_start();
    if (isset($_POST['pseudo']))
    $_SESSION['pseudo'] = $_POST['pseudo'];
    if (isset($_POST['mot_de_passe']))
    $_SESSION['password'] = $_POST['mot_de_passe'];
    global $bdd;
    $bdd = mysql_connect('localhost', 'root', '');
    mysql_select_db('projet_forum', $bdd) or die('Erreur de selection '.mysql_error());  
    $result = mysql_query("SELECT ID, Pseudo, Mot de passe
                        FROM données utilisateur
                        WHERE Pseudo = '" . $_SESSION['pseudo'] . "'");
    					$row = mysql_fetch_array($result);
    					  if(md5($_SESSION['password']) != $row['Mot_de_Passe'])
                                  {
                                       $message = "Votre mot de passe est incorrect";
    								   echo $message;
    								   $_SESSION['authentification'] = '';
                                  }
                                  else
                                  {
    							  echo 'le mot de passe est correct<br >';
    							  echo 'Bienvenue' . $_SESSION['pseudo'] . '!';
    							  }
    							   ?>

    quand j'essaye de me connecter avec un compte crée, j'ai le message suivant:
    Warning:mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp2\www\Projet forum\connexion2.php on line 13
    Votre mot de passe est incorrect
    J'ai vérifié la requête SQL, elle m'a l'air bonne sauf que j'ai un gros doute concernant $_SESSION['pseudo'] qui n'est probablement pas attribué

    Je suis persuadé que le problème vient des variables session ou post (surement au niveau de l'emplacement ou de la syntaxe) mais je ne sais pas comment le régler...

    Je vous remercie d'avance.
    Bonne journée
    #Hashtag

  2. #2
    Membre averti

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 205
    Points : 409
    Points
    409
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FROM données utilisateur
    Ce n'est pas le nom de ta table ça dit ? Si oui, il faut que tu l'écrives ainsi : `données utilisateur` mais un accent et un espace...je la renommerai si j'étais toi !

    Et oui, en effet, $_SESSION['pseudo'] n'est pas obligatoirement rempli donc à tester avant d'effectuer ta requête, et à sécuriser aussi (mysql_real_escape_string())
    si ce post vous a été utile, si votre problème est résolu.
    Pensez-y !
    __________________________________
    Doc officielle PHP | FAQ PHP | Cours PHP

  3. #3
    Membre actif
    Homme Profil pro
    développeur
    Inscrit en
    Février 2013
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : développeur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 123
    Points : 256
    Points
    256
    Par défaut
    Ok merci k'amm de m'avoir répondu aussi rapidement.
    J'ai modifié le nom de la table pour éviter d’éventuels futurs problèmes
    concernant la variable $_SESSION['pseudo'] je viens de l'afficher avec un echo et elle contient bien le pseudo de l'utilisateur.
    J'ai aussi essayé de sécuriser $_SESSION['pseudo'] avec la fonction que tu m'as cité.
    Je l'ai positionné ici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $result = mysql_query("SELECT ID, Pseudo, Mot de passe
                          FROM donnees_utilisateur
                          WHERE Pseudo = '" . $_SESSION['pseudo'] . "'");
    mysql_real_escape_string($_SESSION['pseudo']);
    $row = mysql_fetch_array($result);
    J'ai peut être fait une boulette quelque part au niveau de l'utilisation de cette fonction, c'est la première fois que je l'utilise.
    J'ai reçu ce message d'erreur:
    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp2\www\Projet forum\connexion2.php on line 14
    En tout cas merci de ton aide
    #Hashtag

  4. #4
    Membre averti

    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 205
    Points : 409
    Points
    409
    Billets dans le blog
    1
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $result = mysql_query("SELECT ID, Pseudo, Mot de passe
                        FROM donnees_utilisateur
                        WHERE Pseudo = '" . mysql_real_escape_string($_SESSION['pseudo']) . "'");


    Le warning qui s'affiche signifie en fait qu'il y a soucis dans ta requête, que tu peux afficher avec un mysql_error(); mais je vois aussi que tu as un champs "Mot de passe" dans ta base de données. Pareil pour les champs que pour les noms des tables : pas d'espaces !
    si ce post vous a été utile, si votre problème est résolu.
    Pensez-y !
    __________________________________
    Doc officielle PHP | FAQ PHP | Cours PHP

  5. #5
    Membre actif
    Homme Profil pro
    développeur
    Inscrit en
    Février 2013
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : développeur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 123
    Points : 256
    Points
    256
    Par défaut
    Bon sang mais où avais-je la tête??? x)
    c'est bon c'est modifié et... y a du nouveau !
    plus de messages d'erreur mais en testant la connection, mon navigateur m'affiche que "Votre mot de passe est incorrect" alors que je suis sur d'avoir tapé ce qu'il fallait.
    Je vais créer un deuxième compte afin de voir si ce n'est pas un problème de synchronisation

    EDIT: ha bien non ce n'est pas un problème de synchronisation
    EDIT2: Je pense avoir trouvé la source de ce probléme: $row a pour valeur testArray au lieu de test
    EDIT3: Ca y est j'ai enfin trouvé la solution !!! Il fallait simplement que je vire md5 ^^'
    Merci pour ton aide k'amm
    #Hashtag

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

Discussions similaires

  1. Liaison entre formulaire
    Par cdelot dans le forum InfoPath
    Réponses: 5
    Dernier message: 12/07/2007, 11h02
  2. Liaison Table Formulaire
    Par yves12 dans le forum Access
    Réponses: 4
    Dernier message: 07/08/2006, 10h11
  3. Liaison table formulaire
    Par BOUBOU81 dans le forum Access
    Réponses: 5
    Dernier message: 27/07/2006, 16h34
  4. Pb liaison de formulaire
    Par cdumas dans le forum Access
    Réponses: 4
    Dernier message: 11/04/2006, 16h38
  5. Liaison table / Formulaire
    Par HE dans le forum Access
    Réponses: 2
    Dernier message: 08/09/2005, 09h32

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