Besoin d'aide je narrive pas redirer vers ma page de connexion.... [Résolu]

Signaler
-
 caro -
Bonjour,
jaimerai creer un espace membre sur mon site...jaimerai quapres linscription le visiteur soit redirigé sur la page de connexion ensuite apres la connexion il soit rediriger sur mon site avec son nom ou sa photo. jai fait le formulaire d'inscription qui marche super bien avec insertion dans la base de donnée .maintenant je narrive pas a redirigé le visiteur sur la page de connexion.. et comment recuperer son nom pour afficher sur mon site..ci dessous mes codes

code dinsert dans la BD

<?php

//connexion à la bdd
// penser à activer l'affichage des erreurs PDO : https://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs
require_once 'connect_bd.php';

// on inclu la class user
require_once "user.class.php"; // on inclu la class user

//initialisation des variables 
$errors = array();

// recuperation PROPRE des variables AVANT de les utiliser
$pseudo = !empty($_POST['pseudo']) ? $_POST['pseudo'] : NULL;
$mdp = !empty($_POST['password']) ? $_POST['password'] : NULL;
$cmdp = !empty($_POST['cmdp']) ? $_POST['cmdp'] : NULL;
$prenom = !empty($_POST['prenom']) ? $_POST['prenom'] : NULL;
$nom = !empty($_POST['nom']) ? $_POST['nom'] : NULL;
$email = !empty($_POST['email']) ? $_POST['email'] : NULL;
$numero = !empty($_POST['numero']) ? $_POST['numero'] : NULL;
$photo=$_FILES['photo']['name'];
$fichierTemporaire=$_FILES['photo']['tmp_name'];
 move_uploaded_file($fichierTemporaire,'./images/'.$photo);


//on instancie la class user
$oUser = new user($bdd);

if (isset($_POST['register'])) {

  //test sur le pseudo

  if (!$pseudo || !preg_match('/^[a-zA-Z0-9]+$/', $pseudo)) {
    $errors['pseudo'] = "votre pseudo n'est pas valide(alphanumerique)";
  } else {   
    $user = $oUser->getUserBypseudo($pseudo);
    if (!empty($user)) {
      $errors['pseudo'] = 'ce pseudo est déjà pris';
    }
  }

  // test sur email

  if (!$email || !filter_var($email, FILTER_VALIDATE_EMAIL)) {
    $errors['email'] = "email invalide";
  } else {
    $user = $oUser->getUserByemail($email);
    if ($user) {
      $errors['email'] = 'cet email existe deja pour un autre compte';
    }
  }
  //test sur le mot de passe:
  if (!$mdp || $mdp != $cmdp) {
    $errors['mdp'] = "entrer un mot de passe valide";
  }

  if (empty($errors)) {
    
    if($oUser->addUser($pseudo,$mdp,$prenom,$nom,$email,$numero,$photo)){
      die('felicitation votre compte a bien été créer');
      header('location: connexion_view.php');
    }
  }else{
    print_r($errors);
  }
}
?>


code de connexion
  <?php 

   //connexion à la bdd
   // penser à activer l'affichage des erreurs PDO : https://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs
   require_once 'connect_bd.php';
   
   // on inclu la class user
   require_once "user.class.php"; // on inclu la class user
   
   //initialisation des variables 
   $errors = array();

   // recuperation PROPRE des variables AVANT de les utiliser
   $pseudo = !empty($_POST['psdoconnect']) ? $_POST['psdoconnect'] : NULL;
   $mdp = !empty($_POST['passconnect']) ? $_POST['passconnect'] : NULL;
     
    $req = $bdd->prepare('SELECT * FROM tblusers WHERE (pseudo = :psdoconnect OR email = :psdoconnect)');
    $req->execute(['pseudo' => $pseudo]);
    $user = $req->fetch();
    if($user == null){
        $_SESSION['flash']['danger'] = 'Identifiant ou mot de passe incorrecte';
    }
    elseif(password_verify($mdp, $user->password)){
        $_SESSION['auth'] = $user;
        $_SESSION['flash']['success'] = 'Vous êtes maintenant connecté';
        header('Location: boutique.php');
        exit();
    }
      else
      {
        $_SESSION['flash']['danger'] = 'Identifiant ou mot de passe incorrecte';
    }
}
 
 ?>



16 réponses

Messages postés
29875
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020
2 884
Si tu laisses un die .. la redirection qui se trouve après ne se fera jamais..
ok merci jordan vous avez raison jai enlever le die et kan jexecute il me redirige efrectivement vers ma page de connexion.. maintenant kan je me connect il me met cette erreur la:!!

Erreur fatale : exception PDO non capturée: SQLSTATE [HY093]: numéro de paramètre non valide: le nombre de variables liées ne correspond pas au nombre de jetons dans C: \ xampp \ (Array) # 1 a la ligne 18


la ligne 18 correspond a $req->execute(['pseudo' =>$pseudo]);
// recuperation PROPRE des variables AVANT de les utiliser
   $pseudo = !empty($_POST['psdoconnect']) ? $_POST['psdoconnect'] : NULL;
   $mdp = !empty($_POST['passconnect']) ? $_POST['passconnect'] : NULL;
     
    $req = $bdd->prepare('SELECT * FROM tblusers WHERE (pseudo = :psdoconnect OR email = :psdoconnect)');
    $req->execute(['pseudo' => $pseudo]);
    $user = $req->fetch();
    if($user == null){
        $_SESSION['flash']['danger'] = 'Identifiant ou mot de passe incorrecte';
    }
    elseif(password_verify($mdp, $user->password)){
        $_SESSION['auth'] = $user;
        $_SESSION['flash']['success'] = 'Vous êtes maintenant connecté';
        header('Location: boutique.php');
        exit();
    }
      else
      {
        $_SESSION['flash']['danger'] = 'Identifiant ou mot de passe incorrecte';
    }
Messages postés
29875
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020
2 884
Compare le "nom" de tes variables dans ta requête ( les fameux jetons) et ceux (ou celui devrais je dire) que tu envois dans ton execute... La réponse devrait te sauter aux yeux.
jai trouvé mon erreur merci jordan mais il me met encore une autrte erreur ci dessous

Notice: Trying to get property 'Password' of non-object
la ligne concernée cest celle ci:
elseif(password_verify($mdp, $user->Password))
Messages postés
29875
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020
2 884
Déjà, sachant que je t'avais fourni la class USER .. et que cette class contenait, de mémoire, une méhtode permettant de faire l'authentification... je voudrais comprendre pourquoi tu réécris du code .....
>
Messages postés
29875
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020

Effectivement .. je ne sais pas comment l'utiliser avec l page d'inscription.. DC je l'ai juste inclu en début du code ci dessus...
Messages postés
29875
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020
2 884 > caro
Redonne nous son contenu
>
Messages postés
29875
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020

Ok
>
Messages postés
29875
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020

voici le contenu de la class user

   <?php

class user {

  private $bdd = null;
  

  function __construct($bdd) {
    $this->bdd = $bdd;
  }

  public function dbExec($sql, $datas = NULL) {
    //Execution de la requete
    try {
      $requete = $this->bdd->prepare($sql);
      $requete->execute($datas);
    } catch (Exception $e) {
      // en cas d'erreur :
      echo " Erreur ! " . $e->getMessage();
      echo " Les datas : ";
      print_r($datas);
    }
    return $requete;
  }

  public function getUserBypseudo($pseudo) {
     $sql = 'SELECT id FROM tblusers WHERE pseudo = ?';
     $datas = array($pseudo);
     $res = $this->dbExec($sql,$datas);
     return $res->fetchAll();
  }
  
  public function getUserByemail($email) {
     $sql = 'SELECT id FROM tblusers WHERE Email = ?';
     $datas = array($email);
     $res = $this->dbExec($sql,$datas);
     return $res->fetchAll();
  }
  
  public function addUser($pseudo,$mdp,$prenom,$nom,$email,$contact,$photo){
     //cryptage du mot de passe
     $mdp = password_hash($mdp, PASSWORD_BCRYPT);
     
     //insertion en BDD
     $sql = "INSERT INTO tblusers (pseudo, Password, Firstname, Lastname, Email, contact, avatar)
       values (?,?,?,?,?,?,?) ";
     $datas = array($pseudo,$mdp,$prenom,$nom,$email,$contact,$photo);
     $res = $this->dbExec($sql,$datas);
     return $res;
  }
  
  /**
   * Fonction permettant de vérifier si l'utilisateur existe en fonction de son login et password
   */
  public function authentification($pseudo,$mdp){
    $user = $this->getUserByPseudo($pseudo);
    //verifie qu'il n'y a bien qu'un seul user avec ce pseudo..
    if(!empty($user) && count($user)==1){
      $mdpBdd = $user[0]['password'];
      if (password_verify($mdp, $mdpBdd)){
        return $user;
      }else{
        return false;
      }
    }
  }
}
?>
effectivement jai toujour la classe user jai vu la partie authentification mais je ne savait pas comment lutiliser avec la partie connexion je me suis dit quil avait besoin du code ci dessus...
Messages postés
29875
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020
2 884
  <?php

class user {

  private $bdd = null;
  

  function __construct($bdd) {
    $this->bdd = $bdd;
  }

  public function dbExec($sql, $datas = NULL) {
    //Execution de la requete
    try {
      $requete = $this->bdd->prepare($sql);
      $requete->execute($datas);
    } catch (Exception $e) {
      // en cas d'erreur :
      echo " Erreur ! " . $e->getMessage();
      echo " Les datas : ";
      print_r($datas);
    }
    return $requete;
  }

  public function getUserBypseudo($pseudo) {
     $sql = 'SELECT * FROM tblusers WHERE pseudo = ?';
     $datas = array($pseudo);
     $res = $this->dbExec($sql,$datas);
     return $res->fetchAll();
  }
  
  public function getUserByemail($email) {
     $sql = 'SELECT * FROM tblusers WHERE Email = ?';
     $datas = array($email);
     $res = $this->dbExec($sql,$datas);
     return $res->fetchAll();
  }
  
  public function addUser($pseudo,$mdp,$prenom,$nom,$email,$contact,$photo){
     //cryptage du mot de passe
     $mdp = password_hash($mdp, PASSWORD_BCRYPT);
     
     //insertion en BDD
     $sql = "INSERT INTO tblusers (pseudo, Password, Firstname, Lastname, Email, contact, avatar)
       values (?,?,?,?,?,?,?) ";
     $datas = array($pseudo,$mdp,$prenom,$nom,$email,$contact,$photo);
     $res = $this->dbExec($sql,$datas);
     return $res;
  }
  
  /**
   * Fonction permettant de vérifier si l'utilisateur existe en fonction de son login et password
   */
  public function authentification($pseudo,$mdp){
    $user = $this->getUserByPseudo($pseudo);
    //verifie qu'il n'y a bien qu'un seul user avec ce pseudo..
    if(!empty($user) && count($user)==1){
      $mdpBdd = $user[0]['password'];
      if (password_verify($mdp, $mdpBdd)){
        return $user;
      }else{
        return false;
      }
    }else{
      return null;
    }
  }
}
?>


NB: J'ai changé les fonctions getUserBypseudo et getUserByemail pour qu'elles retournent toutes les infos du user et pas seulement son id
Il me semble que c'est ce que je t'avais donné... et si tel est le cas, je ne vois pas pourquoi tu les avais modifié...

J'ai un peu modifié également la fonction d'authentification.


Et pour ton code, (bien entendu tu as chargé la class user )
et donc.. ça donne :

<?php


// recuperation PROPRE des variables AVANT de les utiliser
$pseudo = !empty($_POST['psdoconnect']) ? $_POST['psdoconnect'] : NULL;
$mdp = !empty($_POST['passconnect']) ? $_POST['passconnect'] : NULL;

$userAuth = $oUser->authentification($pseudo,$mdp);
if($userAuth){
  $_SESSION['auth'] = $userAuth;
  $_SESSION['flash']['success'] = 'Vous êtes maintenant connecté';
  header('Location: boutique.php');
  exit();
} elseif($userAuth === false ) {
  $_SESSION['flash']['danger'] = 'Identifiant ou mot de passe incorrecte';
}else{
  $_SESSION['flash']['danger'] = 'Identifiant ou mot de passe incorrecte';
}

cc jordan merci bien... jai executé et on me met erreur: Undefined variable: oUser in C:\xampp\htdocs\Mb_Projet\mon blog\membres\connexion.php on line 17

Fatal error: Uncaught Error: Call to a member function authentification() on null a la ligne 8 du code ci dessus :
$userAuth = $oUser->authentification($pseudo,$mdp);
Messages postés
29875
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020
2 884
Tu dois remplacer oUser par la variable qui a été utilisé pour l'instantation de la classe user.
comme tu ne nous as pas montré le début de ton code impossible de savoir ce que tu as utilisé...
ah mince ...ok excuse moi jordan javais oublier dinstancier la class ... je lai fait il nya plus derreur mais au lieu de me rediriger vers mon site il maffiche une page vierge jai pourtant bien le header location .. jai essayer avec et sans la session flash ca ne passe pas.
  <?php 

   //connexion à la bdd
   require_once 'connect_bd.php';
   
   // on inclu la class user
   require_once "user.class.php"; 
   
   //initialisation des variables 
   $errors = array();

   //on instancie la class user
   $oUser = new user($bdd);

   // recuperation PROPRE des variables AVANT de les utiliser

   $pseudo = !empty($_POST['psdoconnect']) ? $_POST['psdoconnect'] : NULL;
   $mdp = !empty($_POST['passconnect']) ? $_POST['passconnect'] : NULL;
   
   $userAuth = $oUser->authentification($pseudo, $mdp);
   if($userAuth){
     $_SESSION['auth'] = $userAuth;
     header('Location: boutique.php');
     exit();
   } 
      elseif($userAuth === false ) {
     $_SESSION['flash']['danger'] = 'Identifiant ou mot de passe incorrecte';
   }  else{
     $_SESSION['flash']['danger'] = 'Identifiant ou mot de passe incorrecte';
   }

 
 ?>



Messages postés
29875
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020
2 884
Il te manque le démarrage des sessions non ?
Et as tu activé l'affichage des erreurs PHP ?

Après, peux tu faire des tests en plaçant (juste le temps des tests...) quelques echo dans le code (et en retirant une partie du code )
Par exemple
  <?php 
<?php
  session_start(); // si tu ne l'as pas déjà mis..

   //connexion à la bdd
   require_once 'connect_bd.php';
   
   // on inclu la class user
   require_once "user.class.php"; 
   
   //initialisation des variables 
   $errors = array();

   //on instancie la class user
   $oUser = new user($bdd);

   // recuperation PROPRE des variables AVANT de les utiliser

   $pseudo = !empty($_POST['psdoconnect']) ? $_POST['psdoconnect'] : NULL;
   $mdp = !empty($_POST['passconnect']) ? $_POST['passconnect'] : NULL;
   
echo " On arrive bien là";




Si le echo s'affiche, tu peux ensuite tester
<?php
  session_start(); // si tu ne l'as pas déjà mis..


   //connexion à la bdd
   require_once 'connect_bd.php';
   
   // on inclu la class user
   require_once "user.class.php"; 
   
   //initialisation des variables 
   $errors = array();

   //on instancie la class user
   $oUser = new user($bdd);

   // recuperation PROPRE des variables AVANT de les utiliser

   $pseudo = !empty($_POST['psdoconnect']) ? $_POST['psdoconnect'] : NULL;
   $mdp = !empty($_POST['passconnect']) ? $_POST['passconnect'] : NULL;
   
   $userAuth = $oUser->authentification($pseudo, $mdp);
   print_r( $userAut);
>
Messages postés
29875
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020

bonjour jordan.. jai tester le echo il saffiche .. jai executer le print_r et ca maffiche une page
blanche vierge .. cest normal ? sinon quesqui devrait safficher en executant le print_r
Messages postés
29875
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020
2 884
Le champ "Password" dans ta bdd est bien écrit avec un "P" majuscule ?
Dans ce cas, modifie la class user :
public function authentification($pseudo,$mdp){
    $user = $this->getUserByPseudo($pseudo);
    //verifie qu'il n'y a bien qu'un seul user avec ce pseudo..
    if(!empty($user) && count($user)==1){
      $mdpBdd = $user[0]['Password']; // Password au lieu de password
      if (password_verify($mdp, $mdpBdd)){
        return $user;
      }else{
        return false;
      }
    }else{
      return null;
    }
  }

Messages postés
29875
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020
2 884 > caro
Quelle version de php utilises tu ?
>
Messages postés
29875
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020

le 7.2.12
>
Messages postés
29875
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020

le 7
Messages postés
29875
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020
2 884 > caro
ok, je regarde ça.

Dans tes tests, le temps que je regarde, peux tu remplacer le print_r par un var_dump ?

Tu peux aussi placer des echo dans la fonction authentification dans chaque étape du if/else.. pour essayer de voir si tu passes dedans.
>
Messages postés
29875
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020

ok
Messages postés
29875
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020
2 884
Donc...

Le code est bon.
Il faut juste lui dire quoi faire lorsque l'identifiant n'est pas bon...
par exemple...
 header('Location: login.php');

Sinon.. normal que rien ne s'affiche.
    if($userAuth){
     $_SESSION['auth'] = $userAuth;
     header('Location: boutique.php');
     exit();
   } elseif($userAuth === false ) {
     $_SESSION['flash']['danger'] = 'Identifiant ou mot de passe incorrecte';
     echo 'Identifiant ou mot de passe incorrecte';
     header('Location: login.php');
     exit();
   }  else{
     $_SESSION['flash']['danger'] = 'Identifiant ou mot de passe incorrecte';
     header('Location: login.php');
     exit();
   }


Ensuite..
Ton user
(4, 'Fatim', 'Fatima', 'marie pascale', 'Kouassi', '***@***', 0, ''),

n'est pas bon.. le Password n'est pas hashé ... Donc si c'est lui que tu utilises pour vérifier.. normal que ça ne marche pas.
Et enfin..
La structure de ta table n'est pas bonne non plus.
Le champ pour stocker le Password n'est pas assez grand.

Modifie la structure de ta table par :

CREATE TABLE IF NOT EXISTS `tblusers` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `pseudo` varchar(20) CHARACTER SET utf8 NOT NULL,
  `Password` varchar(256) CHARACTER SET utf8 NOT NULL,
  `Firstname` text CHARACTER SET utf8 NOT NULL,
  `Lastname` text CHARACTER SET utf8 NOT NULL,
  `Email` varchar(60) CHARACTER SET utf8 NOT NULL,
  `contact` int(15) NOT NULL,
  `avatar` varchar(256) CHARACTER SET utf8 NOT NULL,
  PRIMARY KEY (`id`),
  KEY `pseudo` (`pseudo`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


Il te faudra supprimer puis recréer tes users si tu veux que les infos soient correctement enregistrées.
Par exemple, moi je me suis créer un user de test
<?php
 require_once 'connect_bd.php';
 // on inclu la class user
 require_once "user.class.php"; // on inclu la class user

$oUser = new user($bdd);
$oUser->addUser('jojo','azerty','jordane','re','jojo@test.fr',1,'moi.jpeg');
Ok je le fait mais .. la ligne Fatima la c'était un essaie sans cryptage du mot je l'avais fait avant dinserer le code du cryptage j'ai juste pas voulu supprimer.. sinon c'est avec les autre usées que je fais le test de connexion... Ok je change la structure de ma base et je reessai
Mais j'ai fait le var_dump a la place du print_r et là ça m'a afficher NULL
Messages postés
29875
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020
2 884
Le null, si tu regardes le code de la fonction authentification .. correspond au fait qu'il ne trouve pas l'utilisateur...

Donc, soit tu écrits mal le pseudo de l'utilisateur ... soit tes variables ne sont pas bien envoyées par ton formulaire.
Fais donc un print_r($_POST); pour voir ce que contient ton submit ...
>
Messages postés
29875
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020

Ok je fait le print_r
>
Messages postés
29875
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020

J'ai fait le print_r ça m'affiche ça: array() c'est tt ça veux dire kil ne récupère pas les donnée du formulaire ?
> caro
Il récupère bien les variables Jordan... J'ai essayer de faire un print_r ($_POST) sur un nvelle enregistrement voilà ce qui s'affiche:
jai fait une nvelle inscription et jai executer le print_r($_POST) kan je clik sur valider voila ce qui saffiche
Array ( [psdoconnect] => affia [passconnect] => aff [submit] => se connecter )
Messages postés
29875
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020
2 884
Ce n'est pas à l'inscription.. mais au login ....
>
Messages postés
29875
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020

Sisi c'est du login que je parle
Messages postés
29875
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020
2 884 > caro
Donc.. Ton $_POST contient bien le pseudo et le password... ça devrait donc être bon.
Que se passe t'il ?
Tu pourrais nous remontrer ton code complet ?
>
Messages postés
29875
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020

ok
Messages postés
4
Date d'inscription
lundi 16 mars 2020
Statut
Membre
Dernière intervention
10 mai 2020

//après avoir écrit la requête pour la connexion
header('location: lapage.php');
  <?php 
         session_start(); 
   //connexion à la bdd
   // penser à activer l'affichage des erreurs PDO :
   require_once 'connect_bd.php';
   
   // on inclu la class user
   require_once "user.class.php"; // on inclu la class user
   
   //initialisation des variables 
   $errors = array();

   //on instancie la class user
   $oUser = new user($bdd);

   // recuperation PROPRE des variables AVANT de les utiliser
   $pseudo = !empty($_POST['psdoconnect']) ? $_POST['psdoconnect'] : NULL;
   $mdp = !empty($_POST['passconnect']) ? $_POST['passconnect'] : NULL;
    print_r($_POST)
   
   
   $userAuth = $oUser->authentification($pseudo, $mdp);
   if($userAuth){
    $_SESSION['auth'] = $userAuth;
    header('Location: boutique.php');
    exit();
  } elseif($userAuth === false ) {
    $_SESSION['flash']['danger'] = 'Identifiant ou mot de passe incorrecte';
    echo 'Identifiant ou mot de passe incorrecte';
    header('Location: login.php');
    exit();
  }  else{
    $_SESSION['flash']['danger'] = 'Identifiant ou mot de passe incorrecte';
    header('Location: login.php');
    exit();
  }

 
 ?>




>
Messages postés
29875
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020

oui jai modifier la structure de la table... voila ce que donne le code avec les ini_set:

Pseudo:jojo
Password :azerty
NULL

Identifiant ou mot de passe incorrecte
Messages postés
29875
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020
2 884 > caro
Dis voir... tu passes bien par ton formulaire de connexion ???
Car là, ça indique que ta variable POST est vide ....
Quel est le code html de ta page de login ??
>
Messages postés
29875
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020

voici le code html de ma page de connexion

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<link href="logn.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Play" rel="stylesheet">
</head>

<body>

   <div class="signin">

<form action="connexion.php" method="post">

<h2 style="color:#fff;">Se connecter</h2>

<input type="text" name="psdoconnect" placeholder="pseudo" required><br><br>

<input type="password" name="passconnect" placeholder="Password" required /><br /><br />

<input type="submit" value="se connecter" name="submit" /><br /><br />

<div id="container">



</form>

</div>

</body>
</html>













> caro
jordan ca passe maintenant ... en parcourant les lignes du code html jai mi un a href sans mm men rendre compte sur le valider du formulaire connexion
Messages postés
29875
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020
2 884 > caro
Donc.. tu remplis ton formulaire.. tu cliques sur le bouton.. et là .. qu'est ce que le script php t'affiche ????
il me redirige vers mon site maintenant comment je fais pour recuperer le nom de celui qui vient de se connecter et lafficher dans le menu de naviguation?
avec le header en commentaire voila ce quil maffiche:


Pseudo:affia
Password :aff
array(1) {
[0]=>
array(8) {
["id"]=>
string(1) "1"
["pseudo"]=>
string(5) "affia"
["Password"]=>
string(60) "$2y$10$3XwTVEsrVdRBpuGRgZmjEuSBdoGDnNXrriFZQsGy3X1g258oZ9Bg6"
["Firstname"]=>
string(5) "herve"
["Lastname"]=>
string(2) "Sy"
["Email"]=>
string(17) "***@***"
["contact"]=>
string(8) "56318852"
["avatar"]=>
string(17) "1547479743728.jpg"
}
}

Connexion OK




quand (//header('Location: boutique.php');) nest pas en commentaire il me redirige sur boutique.php
Messages postés
29875
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020
2 884
Donc c'est bon.

Tu retires les echo/var_dump
tu réactives la redirection
et tout sera bon.

Et pour récupérer les infos de l'utilisateur connecté... il suffit de récupérer le contenu de la variable
$_SESSION['auth']    

mais là.. c'est une autre question.

Pense à mettre ce sujet en résolu et ouvre en un autre si tu as de nouveaux soucis.
>
Messages postés
29875
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 octobre 2020

ok merci bien jordan...