par
quattro » 12 mai 2018, 17:34
Bonjour,
j'ai créer 3 pages : index.php, session-login.php, session-verif.php.
La 1ère page permet de m'identifier via un formulaire.
la 2ème traite la validité du login et password.
La 3ème sera le petit fichier à inclure dans toutes les autres pages de mon site.
Je voudrais maintenant vérifier mes password selon les 2 identifiants : Administrateur et Agent.
ex : login = Agent et password = toto.
Je prend la methode : password_hash.
ensuite je colle le résultat dans mon champ créer au préalable dans ma Bdd.
Mon soucis maintenant comment et ou je dois creer mon code pour verifier le mot de passe correspondant a "toto" ?
Page index.php :
Code : Tout sélectionner
<?php
$error = isset($_GET['error']) ? $_GET['error'] : '';
$psw = isset($_GET['psw']) ? $_GET['psw'] : '';
?>
<!DOCTYPE html>
<html lang="fr">
<head>
.....
</head>
<body>
<div class="bg-img">
<form action="/essai/session/session-login.php" method="post">
<div class="cont">
<h1>Se connecter</h1>
<label for="login"><b>Login</b></label>
<SELECT name="login" size="1">
<OPTION>Administrateur
<OPTION selected=>Agent
</SELECT>
<label for="psw"><b>Mot de passe</b></label>
<input type="password" placeholder="Votre mot de passe" name="psw">
<button type="submit" class="btn">Se connecter</button>
<?php
/* Ci-dessous,mon SWITCH case qui porte sur la $error ci-dessus, selon le code error (1 ou 2) */
switch ($error){
case 1:
echo "merci de saisir un login";
break;
case 2:
echo "Le mot de passe <b>$psw</b> n'est pas valide...";
break;
case 3:
echo "Vous avez été deconnecté";
break;
}
?>
</div>
</form>
</div>
page session-login.php :
Code : Tout sélectionner
<?php
/* Si les variables sont définies */
$login = isset($_POST['login']) ? $_POST['login'] : '';
$psw = isset($_POST['psw']) ? $_POST['psw'] : '';
/* Test de validité d'informations de connection */
if($login == '') { /*si la var est vide*/
header('Location: /essai/index.php?error=1');
}elseif ($psw != "toto") { /* si psw different de toto,*/
header('Location: /essai/index.php?error=2&psw='.$psw);
}else {
session_start(); /*si login pas vide, si psw = toto, on demarre la session*/
$_SESSION['login'] = $login;
$_SESSION['psw'] = $psw;
$_SESSION['logged'] = true;
header('Location: /essai/session/session-bienvenu.php');
}
?>
Dans cette page j'avais mis "toto" comme password, pour tester mon code. Il va falloir biensure que je supprime cette ligne.
Page session-verif.php :
Code : Tout sélectionner
<?php
session_start();
/* Ci-dessous, si la Super global $_SESSION['logged'] n'est pas défini(!isset)
* OU
* n'est pas égale à VRAIE(true)
* alors on redirige l'tilisateur sur la page d'acceuil avec un param code error=3 */
if(!isset($_SESSION['logged']) || !$_SESSION['logged']) {
header('Location: /essai/index.php?error=3');
}
/* Ci-dessous, le code permet de récupérer le login de l'utilisateur,
* que l'on pourra utilisé pour les differentes pages par la suite */
$login = isset($_SESSION['login']) ? $_SESSION['login'] : '';
[quote]je pense que là je pourrais mettre mon test password pour la Bdd[/quote]
?>
Bonjour,
j'ai créer 3 pages : index.php, session-login.php, session-verif.php.
La 1ère page permet de m'identifier via un formulaire.
la 2ème traite la validité du login et password.
La 3ème sera le petit fichier à inclure dans toutes les autres pages de mon site.
Je voudrais maintenant vérifier mes password selon les 2 identifiants : Administrateur et Agent.
ex : login = Agent et password = toto.
Je prend la methode : password_hash.
[code]$hash = password_hash('toto', PASSWORD_DEFAULT);
echo $hash;[/code]
ensuite je colle le résultat dans mon champ créer au préalable dans ma Bdd.
Mon soucis maintenant comment et ou je dois creer mon code pour verifier le mot de passe correspondant a "toto" ?
Page index.php :
[code]<?php
$error = isset($_GET['error']) ? $_GET['error'] : '';
$psw = isset($_GET['psw']) ? $_GET['psw'] : '';
?>
<!DOCTYPE html>
<html lang="fr">
<head>
.....
</head>
<body>
<div class="bg-img">
<form action="/essai/session/session-login.php" method="post">
<div class="cont">
<h1>Se connecter</h1>
<label for="login"><b>Login</b></label>
<SELECT name="login" size="1">
<OPTION>Administrateur
<OPTION selected=>Agent
</SELECT>
<label for="psw"><b>Mot de passe</b></label>
<input type="password" placeholder="Votre mot de passe" name="psw">
<button type="submit" class="btn">Se connecter</button>
<?php
/* Ci-dessous,mon SWITCH case qui porte sur la $error ci-dessus, selon le code error (1 ou 2) */
switch ($error){
case 1:
echo "merci de saisir un login";
break;
case 2:
echo "Le mot de passe <b>$psw</b> n'est pas valide...";
break;
case 3:
echo "Vous avez été deconnecté";
break;
}
?>
</div>
</form>
</div>[/code]
page session-login.php :
[code]<?php
/* Si les variables sont définies */
$login = isset($_POST['login']) ? $_POST['login'] : '';
$psw = isset($_POST['psw']) ? $_POST['psw'] : '';
/* Test de validité d'informations de connection */
if($login == '') { /*si la var est vide*/
header('Location: /essai/index.php?error=1');
}elseif ($psw != "toto") { /* si psw different de toto,*/
header('Location: /essai/index.php?error=2&psw='.$psw);
}else {
session_start(); /*si login pas vide, si psw = toto, on demarre la session*/
$_SESSION['login'] = $login;
$_SESSION['psw'] = $psw;
$_SESSION['logged'] = true;
header('Location: /essai/session/session-bienvenu.php');
}
?>[/code]
Dans cette page j'avais mis "toto" comme password, pour tester mon code. Il va falloir biensure que je supprime cette ligne.
Page session-verif.php :
[code]<?php
session_start();
/* Ci-dessous, si la Super global $_SESSION['logged'] n'est pas défini(!isset)
* OU
* n'est pas égale à VRAIE(true)
* alors on redirige l'tilisateur sur la page d'acceuil avec un param code error=3 */
if(!isset($_SESSION['logged']) || !$_SESSION['logged']) {
header('Location: /essai/index.php?error=3');
}
/* Ci-dessous, le code permet de récupérer le login de l'utilisateur,
* que l'on pourra utilisé pour les differentes pages par la suite */
$login = isset($_SESSION['login']) ? $_SESSION['login'] : '';
[quote]je pense que là je pourrais mettre mon test password pour la Bdd[/quote]
?>[/code]