authentification et redirection
bonjour tout le monde!
bon je vais allé direct au sujet! en faite je travail sur un projet de site web j'ai conçu une page de connexion pour les utilisateurs y compris l'administrateur inscrits (enregistrer dans la base de données) pour cela j'ai créer une page profil (profil.html) pour que dès qu'un utilisateur s'identifie avec son pseudo et le mot de passe qu'il soit directement rediriger vers la page de profile mais je veux faire l'exception pour l'administrateur pour que lui il soit redirigé vers la page administrateur (admin.html) et c'est ce que je n'arrive pas à faire. Et j'aimerais que vous m'aidiez! voici mon code
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 52 53 54 55 56 57 58 59 60 61 62
| <?php
// Initialisation de la session
include('connexion.html');
$_SESSION['erreur'] ='';
$_SESSION['connexion'] = '';
$host=""; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name="nomdemabase"; // Database name
$tbl_name="visiteurs"; // Table name
$_SESSION['pseudo']=$_POST['pseudo'];
$_SESSION['motdep']=$_POST['motdep'];
// On vérifie que le login et le mot de passe ont été précisés
if(!empty($_POST['pseudo']) && !empty($_POST['motdep']))
{
session_start();
// Connexion à la base
$connexion=mysql_connect("localhost", "root", "" )or die("cannot connect" );
mysql_select_db("nomdemabase" )or die("cannot select DB" );
mysql_query("SET NAMES 'utf8'" );
// Requete à la base (verification login/mdp)
$SQL = 'SELECT * FROM visiteurs WHERE pseudo= "'.mysql_real_escape_string($_POST['pseudo']).'" AND mot_de_passe = "'. mysql_real_escape_string($_POST['motdep']).'"';
$request = mysql_query($SQL, $connexion) or die(mysql_error());
$data = mysql_fetch_assoc($request);
if (empty($data) || !sizeof($data)) // Login / Mot de passe invalide
{
$_SESSION['erreur'] = 'Login ou mot de passe non valide';
header("Location:erreurconnexion.html" );
}
else
{
$data = $data[0];
// Récupération des informations de l'utilisateur dans les variables de session
$_SESSION['connexion'] = 1;
// Redirection de l'utilisateur vers la page de profil
header("Location: profil.html" );
}
}
else // Si au moins un champs est vide
{
// Définition d'une erreur + Redirection
$_SESSION['erreur'] = 'Tous les champs doivent être renseignés';
header("Location: erreurconnexion.html" );
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>
<body>
</body>
</html> |
Et vous pouvez me poser des questions si nécessaire
authentification et redirection
j'ai accédé aux données comme vous me l'avez suggerer et c'était OK! Merci d'avance et j'ai constaté aussi qu'en mettant la
condition sur pseudo sa marche comme ceci:
Code:
1 2 3 4 5 6
| elseif($_POST['pseudo'] == 'admin'){
header('Location: adminpage.html');
}
else{
header('Location: profil.html');
} |
elseif($_POST['pseudo'] == 'admin'){
header('Location: adminpage.html');
}
else{
header('Location: profil.html');
}
Mais j'ai constaté un autre problème au niveau de la vérification du pseudo et du mot de passe c'est à
dire si l'utilisateur saisi seulement le Pseudo et sans remplir le champ mot de passe ou bien sil rempli le champ mot de
passe sans remplir le pseudo aucun message d'erreur ne s'affiche et il fait une redirection en affichant la page de verification
de mon formulaire celle utilisée avec action='verifconnexion.php'
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['erreur'] ='';
$_SESSION['connexion'] = '';
$host=""; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name="nomdemabase"; // Database name
$tbl_name="visiteurs"; // Table name
$_SESSION['pseudo']=$_POST['pseudo'];
$_SESSION['motdep']=$_POST['motdep'];
// On vérifie que le login et le mot de passe ont été précisés
if(!empty($_POST['pseudo']) && !empty($_POST['motdep']))
{
session_start();
// Connexion à la base
$connexion=mysql_connect("localhost", "root", "" )or die("cannot connect" );
mysql_select_db("nomdemabase" )or die("cannot select DB" );
mysql_query("SET NAMES 'utf8'" );
// Requete à la base (verification login/mdp)
$SQL = 'SELECT * FROM visiteurs WHERE pseudo= "'.mysql_real_escape_string($_POST['pseudo']).'" AND mot_de_passe = "'. mysql_real_escape_string($_POST['motdep']).'"';
$request = mysql_query($SQL, $connexion) or die(mysql_error());
$data = mysql_fetch_assoc($request);
if (empty($data) || !sizeof($data)) // Login / Mot de passe invalide
{
$_SESSION['erreur'] = 'Login ou mot de passe non valide';
header("Location:erreurconnexion.html" );
}
elseif($_POST['pseudo'] == 'admin'){
header('Location: adminpage.html');
}
else{
header('Location: profil.html');
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>
<body>
</body>
</html> |