Probleme d'identification avec pseudo et mot de passe
Bonjour à tous et à toutes,
Dans le script d'identification suivant :
Code:
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
|
<?php
session_start(); // ouvrir une session
require_once("includes/inc_connexion.php"); // on se connecte à la Base de données
try {
// On vérifie que les champs pseudo et pass soient initialisées bien et qu'ils ne soient pas vides
if(isset($_POST['pseudo']) && isset($_POST['pass']) && !empty($_POST['pseudo']) && !empty($_POST['pass'])) {
$login = addslashes($_POST['pseudo']);
$login = htmlentities($login);
$password = md5($_POST['pass']); // on crypte le mot de passe
extract($_POST); // importation des variables dans la table des symboles
// on recupère le password de la table qui correspond au login du visiteur
// utilisation d'un marqueur nominatif dans la requete
$req="select * from membres where login = :pseudo and password = :pass" ;
// on prépare la requete a executer sur le serveur
$stm=$conn->prepare($req);
// on exécute la requete
$stm->execute(array(':pseudo'=> $login,':pass'=> $password));
// récuperer chaque entree du resultat de la requete
// chaque entree doit etre stockee sous forme d'objet dans une variable $ligne
$ligne=$stm->fetch(PDO::FETCH_OBJ);
// Ensuite, on regarde si il existe un membre avec ce login et ce pass
if($ligne === 1) {
// ouverture d'une session pour l'utilisateur
session_start();
// creation de la variable de session
$_SESSION['pseudo'] = $login;
echo '<p style="color:green">Vous êtes authentifié</p>';
} else {
echo '<p style="color:red">Mauvais login ou mot de passe</p>';
// Redirection vers la page d'accueil du site
header("Location: http://localhost/index.php");
exit; // pour non-execution de la suite du code
}
} else {
//echo '<p>Vous avez oublié de remplir un champ.</p>';
exit;
}
$stm->closeCursor();
} //try
catch(Exception $e) {
echo "Accès à l'espace membre impossible : ", $e->getMessage();
} //catch
?> |
Dans le fichier index.php contenant le formulaire d'identification :
Code:
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_name("initiated");
session_start();
if(!isset($_SESSION['initiated'])) {
session_regenerate_id();
$_SESSION['initiated'] = true;
print_r($_SESSION);
}
require("includes/inc_connexion.php");
$conn=opendb_conn();
//$_SESSION['pseudo'] = $_POST['pseudo'];
?>
...
<form method="post" action="connexion.php" id="connexionForm" onSubmit="return verif_connexion()">
<p>
Identifiant :<input type="text" name="pseudo" id="pseudo" placeholder="e.g : vineyard" size="27" maxlength="15"/>
</p>
<p>
Mot de passe :<input type="password" name="pass" id="pass" size="24"/>
</p>
<p><input type="submit" value="Se connecter" /></p>
</form><!-- connexionForm --> |
L'identification ne s'effectue pas.
Merci d'avance,
Transact