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 :

Souci de redirection après identification


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2016
    Messages : 51
    Par défaut Souci de redirection après identification
    Bonjour,
    J'ai un souci avec un fichier d'authentification. L'utilisateur existe bien dans la base mais quand j'entre le mail et le mdp je ne suis pas redirigé vers la page demandée. Après m'être creusé la tête pas mal de temps je ne comprends pas où est le problème. Je sais que l'erreur doit être d'une simplicité sans nom, mais là je désespère

    Voici mon 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
    19
    20
    21
    22
    23
    24
    <?php 
    include_once 'Bmanager.php';
     
    if(isset($_POST['submit'])){
     
    	$pseudo = $_POST['pseudo'];
    	$password = $_POST['password'];
    	$rep=  new Connection('localhost', 'membre', 'utf8', 'root', '');
    	$answer=$rep->dbconnect();
    	$user = new Bmanager($answer);
    	$user->login($pseudo, $password);
    	header('Location:membre.php');
     
    }
    ?>
     
    <form method="post" action="">
    	<p>Votre pseudo</p>
    	<input type="text" name="pseudo" placeholder="login" /> <br>
    	<p>Votre mot de passe</p>
    	<input type="password" name="password" placeholder="password" /> <br> <br>
    	<input type="submit" name="submit" value="Se connecter">
    </form>
    <a href="register.php">Pas encore membre</a>

  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
    Par défaut
    Que fais la méthode "login" ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2016
    Messages : 51
    Par défaut
    Normalement elle demande simplement à l'utilisateur de s'authentifier, avec le formulaire qui se trouve plus bas. Elle se trouve dans le fichier Bmanager tel que :
    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
    	public function login($username, $password){
    	try{
    		if(!empty($username) && !empty($password)){
    			$password = sha1($password);
    			$req = $this->db->prepare("SELECT * FROM membre WHERE email=? AND passw=?");
    			$req->execute(array($username,$password));
     
    			if ($req->rowCount()==1){
    				$_SESSION['username']=$username;
    				$_SESSION['mdp']=$password;
    				$donnees = $req->fetch(PDO::FETCH_OBJ);
    				$_SESSION['ident']=$donnees->id;
    			}
    			else{
    				echo "Utilisateur n'existe pas sur la base";
    			}
    		}else{
    			echo "Merci de saisir le login et le mot de passe ";
    		}
    		}catch(Exception $e){
    			$e->getMessage();
     
    		}
    	}

  4. #4
    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
    Par défaut
    Ta redirection devrait être ici, dans le if de réussite.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if ($donnees = $req->fetch(PDO::FETCH_OBJ)){
    				$_SESSION['username']=$donnees->username;
    				$_SESSION['mdp']=$donnees->password;
    				$_SESSION['ident']=$donnees->id;
    				header('Location:membre.php');
    			}
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2016
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2016
    Messages : 51
    Par défaut
    Même si mes deux fichiers Bmanager et membre sont les suivants ? Et j'avoue ne pas voir exactement où mettre le bout de code que tu viens de me donner. En même temps à force j'ai de l'eau dans le cerveau.
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    <?php
    session_start();
    include_once 'connection.php';
     
    Class Bmanager{
     
    	private $db;
     
     
    	public function __construct($db){
    		$this->db=$db;
    	}
     
    	public function login($username, $password){
    	try{
    		if(!empty($username) && !empty($password)){
    			$password = sha1($password);
    			$req = $this->db->prepare("SELECT * FROM membre WHERE email=? AND passw=?");
    			$req->execute(array($username,$password));
     
    			if ($req->rowCount()==1){
    				$_SESSION['username']=$username;
    				$_SESSION['mdp']=$password;
    				$donnees = $req->fetch(PDO::FETCH_OBJ);
    				$_SESSION['ident']=$donnees->id;
    			}
    			else{
    				echo "Utilisateur n'existe pas sur la base";
    			}
    		}else{
    			echo "Merci de saisir le login et le mot de passe ";
    		}
    		}catch(Exception $e){
    			$e->getMessage();
     
    		}
    	}
     
    	//add user
    	public function addUser($nom, $prenom, $specialite, $email, $daten, $password, $repeatpassword) {
    		try {
    			if ($password == $repeatpassword){
     
    				// préparer la requête select 
    				$req=$this->db->prepare("select * from membre where email=?");
    				// exécuter la requête
    				$req->execute(array($email));
    				// Si le nombre de ligne retourné est différent de 0, cela signifie que l'email existe déja dans la table utilisateur
    				if($req->rowCount() !=0){
    					return false;
    					//return false;
    					}else {
    						$password = sha1($password);
    						$reponse = $this->db->prepare("INSERT INTO membre VALUES(Default,?,?,?,?,?,?)");
    						$reponse->execute(array($nom,$prenom,$specialite,$email,$daten,$password));
    						return true;
    			}
    		}
    		}catch (PDOException $e){
    			echo $e->getMessage();
    		}
    	}
     
    	public function getAll(){
    		try{
    			$alluser =  $this->db->prepare("SELECT * FROM membre");
    			$alluser->execute(); 
    			return $alluser;
     
    		}
    		catch(Exception $e){
     
    		}
    	}
     
    	public function rechercher($nom){
    		try{
    			$filtreuser = $this->db->prepare('SELECT * FROM membre WHERE email LIKE ?');
    			$filtreuser->execute(array('%'.$nom.'%'));
    			return $filtreuser;	  
    		}
    		catch(Exception $e){
    			$e->getMessage();
     
    		}
    	}
     
    	public function getUserById($id){
    		try{
    			$user =  $this->db->prepare("SELECT * FROM membre WHERE id= ? ");
    			$user->execute(array($id));
    			return $user;
    		}
    		catch(Exception $e){
    			$e->getMessage();
    		}
    	}
     
    	public function update($id, $pseudo, $mdp) {
    		try{
    			if(!empty($pseudo) && !empty($mdp)){
    				$mdp = sha1($mdp);
    				$modif = $this->db->prepare("update membre set email=? where id =?");
    				$modif->execute(array($pseudo,$id));
    				$modif = $this->db->prepare("update membre set passw=? where id =?");
    				$modif->execute(array($mdp,$id));
     
    				echo "<span>Modification enregistrée!</span>";
    			}
    		}
    		catch(Exception $e){
    			$e->getMessage();
    		}
     
    	}
    	public function delete($id){
    		try{ 
    		if($_SESSION['ident']== $id){
    			echo "Impossible de supprimer l'utilisateur connecté";
    		}else{
    				$st=$this->db->prepare("DELETE FROM membre WHERE id=?");
    				$st->execute(array($id));
    				echo "Utilisateur  suuprimé avec  Succès";
    			}
    		}catch (Exception $e){
    			$e->getMessage();
     
    		}
     
     
    	}
    }
    ?>


    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
    <?php
    session_start();
    if(isset($_SESSION['username'])){
    	echo "Bonjour ".$_SESSION['username'];
    	?>
    <br>
    <br>
    <a href="getall.php">Consulter La liste des utilisateurs</a>
    <br>
    <br>
    <a href="delete.php">Supprimer un utilisateur</a>
    <br>
    <br>
    <a href="chercher.php">Chercher un utilisateur</a>
    <br>
    <br>
    <a href="logout.php">Me déconnecter</a>
    <br>
    <?php 
    }else header('Location:login.php')
     
    ?>

  6. #6
    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
    Par défaut
    Dans le cas ou l'authentification n'est pas bonne, tu affiches des messages d'erreur.
    Tu ne peux donc pas avoir une redirection après.
    La redirection n'a lieu que si l'authentification est réussie ; de plus ça n'aurait pas de sens de faire le ping pong de redirections entre les deux fichiers.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/09/2012, 17h24
  2. redirection après l'identification
    Par erehcab dans le forum Zend_Acl & Zend_Auth
    Réponses: 17
    Dernier message: 25/08/2010, 21h59
  3. [Joomla!] problème de redirection apres identification sur frontend en local
    Par dadal56 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 12/01/2010, 16h17
  4. Redirection après identification
    Par ghada025 dans le forum Langage
    Réponses: 6
    Dernier message: 12/09/2008, 14h49
  5. sauvegarder url pour redirection après identification
    Par aurelientp dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 05/03/2008, 10h33

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