Vous n'êtes pas identifié(e).
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
// 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" "[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/url]">
<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
Mr onesat
Hors ligne
Bonsoir,
Outre le fait que tu fais tout ce qu'il faut eviter de faire pour assurer un contrôle d'accès à un contenu par un utilisateur, et que cela est fait maladroitement (tu peux poser des questions si tu le souhaites), je ne vois nulle par un header vers ta page admin par exemple... donc je ne suis pas étonné que tu n'y arrives pas.
++
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Bon je vais être alors plus précis dans ce que je veux obtenir comme résultat
j'ai une page d'authentification (connexion.html) avec 2 champs à remplir le Pseudo et le mot de passe
Pour cela j'ai créer une autre page verifconnexion.php
qui contient les scripts php pour la vérification et la validation de l'authentification avec les requêtes sql
Et je voudrais que si l'authentification d'un utilisateur est validée qu'il soit soit connecté et redirigé vers la page profil (profil.html) et si c'est l'administrateur qu'il soit redirigé vers la page d'administration (adminpage.html)
Et si l'authentification n'est pas validée soit par un champ mal renseigné ou vide ou encore non inscrit, je voudrais qu'un message d'erreur s'affiche du genre "le Pseudo ou le mot de passe est invalide veuillez remplir correctement tous les champs Et si vous ne disposer pas d'un compte veuillez cliquer sur ce lien pour vous inscrire"
voici le code que j'ai utilisé à l'entête de la page de connexion.html
// 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($data['admin']){
header('Location: adminpage.html');
}
else{
header('Location: profil.html');
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/url]">
<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 merci d'avance
Mr onesat
Hors ligne
C'est déjà mieux (pour résoudre ton problème de redirection vers adminpage.html), sauf pour le reste on est d'accord.
Pour que ton problème soit résolu complètement, je t'invite à consulter le manuel PHP en ligne sur les valeurs de retour possible d'un resultset fetch_assoc, ce qui est à l'origine de tes problèmes, car ton code ne le gère pas du tout correctement.
Cordialement
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Si tu lis bien ce que j'ai écris, ca ne va pas plus loin que cela:
[img align=C]http://www.tse-online.fr/img/Capture.PNG[/img]
Dernière modification par Jc (14-07-2011 05:40:34)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Bonsoir Mr encore un dérangement je voudrais savoir comment on utilise la fonction PASSWORD de MySQL pour obtenir le hash du mot de passe?
Merci pour votre aide
Mr onesat
Hors ligne
Bonjour,
Voilà Monsieur. La fonction password s'utilise comme SHA1 et si je vous ai mis SHA1 c'est que je vous le recommande à la place de password.
Bonne journée à vous.
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne