php saute la page connexion

mohssine
Invité n'ayant pas de compte PHPfrance

10 juil. 2014, 15:05

Bonjour,

J'ai un petit souci, quand j'essaye de me connecté. Il saute la page connexion et passe directement a la page membre sans faire de vérification ni récupérer les données de la base de donnée..

Ps: je suis débutant en php, c'est mon premier site en php :D

Merci pour votre aide.

Formulaire :

Code : Tout sélectionner

<!DOCTYPE html> <!--[if lt IE 7 ]> <html lang="en" class="no-js ie6 lt8"> <![endif]--> <!--[if IE 7 ]> <html lang="en" class="no-js ie7 lt8"> <![endif]--> <!--[if IE 8 ]> <html lang="en" class="no-js ie8 lt8"> <![endif]--> <!--[if IE 9 ]> <html lang="en" class="no-js ie9"> <![endif]--> <!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"> <!--<![endif]--> <head> <meta charset="UTF-8" /> <!-- <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> --> <title>Espace d'authentification administrateur</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" type="text/css" href="css/demo.css" /> <link rel="stylesheet" type="text/css" href="css/style.css" /> <link rel="stylesheet" type="text/css" href="css/animate-custom.css" /> </head> <body> <div class="container"> <!-- Codrops top bar --> <header> <h1>Espace d'authentification administrateur</h1> </header> <section> <div id="container_demo" > <div id="wrapper"> <div id="login" class="animate form"> <form method="POST" action="connexion.php"> <h1>Login</h1> <p> <label for="username" class="uname" data-icon="u" > Login </label> <input id="username" name="login" required="required" type="text"/> </p> <p> <label for="password" class="youpasswd" data-icon="p"> Password </label> <input id="password" name="password" required="required" type="password"/> </p> <p class="login button"> <input type="submit" value="Login" name="submit"/> </p> <p class="change_link"> <a href="#" class="to_register">Forgot your password?</a> </p> </form> </div> </div> </div> </section> </div> </body> </html>
Page connexion :

Code : Tout sélectionner

<?php session_start(); if(isset($_POST['submit'])) { $login = $_POST['login']; $password = $_POST['password']; if($login&&$password) { // Connexion de la base de donnée try { $bdd = new PDO('mysql:host=localhost;dbname=administration','root',''); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } //Je vérifie le pseudo et le mot de passe $req = $bdd->prepare('SELECT COUNT(*) AS membre_valide FROM profile WHERE userpassword = :password AND userprenom = :login'); // Je compte le nombre d'entrée ayant pour mot de passe et login ceux rentrés $req->bindValue(':password', $_POST['password'], PDO::PARAM_STR); $req->bindValue(':login', $_POST['userprenom'], PDO::PARAM_STR); $req->execute(); $data = $req->fetch(); $req->closeCursor(); // Termine le traitement de la requête // Je teste la valeur de $data['membre_valide'] if($data['membre_valide'] != 0) { // On as trouvé un membre avec ce couple mdp, login $_SESSION['login']=$login; header('Location:membre.php'); } else { // Personne n'existe dans la table avec ce couple mot de passe et login echo 'le login et le mot de passe rentrés sont invalides'; } } } ?>

Mammouth du PHP | 1339 Messages

10 juil. 2014, 16:48

Si il va sur la page membre c'est qu'il a fait la verification ...
Qu'est ce qui ne va pas pour toi ?
Bon sinon tu me fais un message privé et on se fait un TeamViewer

mohssine
Invité n'ayant pas de compte PHPfrance

10 juil. 2014, 17:01

Le probleme qu'il verifie pas les données inserer dans la bd, il prend les données taper et les affiche..

Mammouth du PHP | 1339 Messages

10 juil. 2014, 17:49

Si tu me dis qu'il te redirige vers membre, c'est qu'il execute :
header('Location:membre.php');
S'il l'execute c'est qu'il a trouer un résultat dans ta base de données.

Je serais toi je testerai ton script en faisant ;
if($data['membre_valide'] != 0) {
            // On as trouvé un membre avec ce couple mdp, login
            $_SESSION['login']=$login;
print_r($_SESSION);
exit();
            //header('Location:membre.php');
        }
Bon sinon tu me fais un message privé et on se fait un TeamViewer

mohssine
Invité n'ayant pas de compte PHPfrance

10 juil. 2014, 19:58

Apres avoir modifie les lignes que vous m'avais demandé j'ai eu l'erreur suivante :

( ! ) Notice: Undefined index: userprenom in C:\wamp\www\LoginRegistrationForm\connexion.php on line 44
le login et le mot de passe rentrés sont invalides

meme si les données sont correcte..

Mammouth du PHP | 1339 Messages

10 juil. 2014, 20:03

Euh ... T'as une ligne 44 ?
En gros pour lui tu dois demandé un truc genre $_POST['userprenom'] mais il la trouve pas ..
Déjà t'as une erreur. T'en sais un peu plus !
Bon sinon tu me fais un message privé et on se fait un TeamViewer

mohssine
Invité n'ayant pas de compte PHPfrance

10 juil. 2014, 20:25

C'est bon j'ai trouvé l'erreur merci pour votre aide Elie, voila mon nouveau code pour les gens intéresser :

Code : Tout sélectionner

<?php session_start(); if(isset($_POST['submit'])) { $login = $_POST['login']; $password = $_POST['password']; if($login&&$password) { // Connexion de la base de donnée try { $bdd = new PDO('mysql:host=localhost;dbname=administration','root',''); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } //Je vérifie le pseudo et le mot de passe $req = $bdd->prepare("SELECT COUNT(*) AS membre_valide FROM profile WHERE userpassword = '$password' AND userprenom = '$login'"); // Je compte le nombre d'entrée ayant pour mot de passe et login ceux rentrés $req->execute(); $data = $req->fetch(); $req->closeCursor(); // Termine le traitement de la requête // Je teste la valeur de $data['membre_valide'] if($data['membre_valide'] != 0) { // On as trouvé un membre avec ce couple mdp, login $_SESSION['login']=$login; header('Location:membre.php'); } else { // Personne n'existe dans la table avec ce couple mot de passe et login echo 'le login et le mot de passe rentrés sont invalides'; } } } ?>