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 :

Problème de connexion


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 228
    Par défaut Problème de connexion
    Bonjour,

    Depuis hier matin, je ne dois pas avoir les yeux en face des trous :

    J'ai une page connect.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <table border="0" width="400" align="center">
    	<tr>
    		<td width="200"><b>Votre login</b></td>
    		<td width="200"><input type="text" name="login"></td>
    	</tr>
    	<tr>
    		<td width="200"><b>Votre mot de passe<b></td>
    		<td width="200"><input type="password" name="password"></td>
    	</tr>
    	<tr>
    		<td colspan="2"><input type="submit" name="submit" value="login"></td>
    	</tr> 
    </table>
    La page verifConnect.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
    <?php
    	$id = $_POST["login"];
    	$motDePasse = $_POST["password"];
     
    	$requete = $bdd->prepare('SELECT * FROM profil WHERE email = ? AND password = ?');
    	$requete->execute(array($_POST['login'], $_POST['password']));
     
    	if ($requete->fetch() == FALSE) {
    		echo "Paramètres de connexion invalides<br/>";
    	} else {
    		$_SESSION["membre"] = TRUE;
    		$_SESSION["email"] = $id;
    		header("Location: profil.php");
    		die();
    	}
    ?>
    Et ma page profil.php ayant dans son header le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    	// Vérification de l'autorisation
    	if (!$_SESSION["membre"]) {
    	   // Si l'utilisateur n'est pas autorisé il est reconduit
    	   // sur le formulaire d'identification
    	   header("Location: connect.php");
    	   die();
    	}   
    ?>
    Si le mot de passe ou l'identifiant n'est pas bon, il m'affiche bien l'info mais, si c'est bon, je me retrouve ... Sur connect.php ...

    Une idée ?

    Merci d'avance.

    Scots

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Salut,

    est-ce que tu as pensé à mettre au début du script profil.php ?

    Pense aussi à vérifier la présence des clés :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $id = (isset($_POST["login"])) ? $_POST["login"] : '';
    et quand tu vérifies le fetch() fais une comparaison typée : === false.

    Enfin il est préférable d'utiliser exit; à la place de die(); qui n'est qu'un alias du premier terme.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 228
    Par défaut
    Yes !

    En fait avant tout ça j'ai des includes (et après) donc le header qui lui contient bien entendu :

    => La connexion à la base,
    => Le session_start();

    J'avoue que j'ai vérifié quand même ;-)

  4. #4
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    Ok, pose donc un print_r($_SESSION); dans profil.php et vérifie ce que la session contient au moment du bug.

    J'avais pas vu mais tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete->execute(array($_POST['login'], $_POST['password']));
    alors qu'un peu plus haut tu as défini $id et $motDePasse

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 228
    Par défaut
    J'ai modifié le verifConnect.php pour avoir ça :
    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
    <?php
     
    		$id = (isset($_POST["login"])) ? $_POST["login"] : '';
    		$motDePasse = (isset($_POST["password"])) ? $_POST["password"] : '';
     
    		$requete = $bdd->prepare('SELECT * FROM profil WHERE email = ? AND password = ?');
    		$requete->execute(array($_POST['login'], $_POST['password']));
     
    		if ($requete->fetch() === FALSE) {
    			echo "Paramètres de connexion invalides<br/>";
    		} else {
    			$_SESSION["membre"] = TRUE;
    			$_SESSION["email"] = $id;
    			header("Location: profil.php");
    			die();
    		}
    	?>
    Du coup, quand je clique sur le bouton login : il ne bouge plus ...

    Ce n'est pas bien ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete->execute(array($_POST['login'], $_POST['password']));
    Ah oui, je défini les variables pour rien c'est ça ?

  6. #6
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Billets dans le blog
    12
    Par défaut
    tu devrais faire plutôt comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete->execute(array($id, $motDePasse));

Discussions similaires

  1. [Première installation] Problème de connexion
    Par sekiryou dans le forum Installation
    Réponses: 2
    Dernier message: 02/03/2004, 19h18
  2. [ Oracle 9ias / 10g] problème de connexion
    Par Boosters dans le forum JDeveloper
    Réponses: 2
    Dernier message: 20/01/2004, 17h23
  3. Problème de connexion au serveur MYSQL
    Par ETOKA dans le forum Outils
    Réponses: 2
    Dernier message: 27/11/2003, 09h28
  4. Réponses: 11
    Dernier message: 13/10/2003, 14h48
  5. problème de connexion 2 PC
    Par guitalca dans le forum Développement
    Réponses: 3
    Dernier message: 22/09/2003, 14h04

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