PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 12-07-2011 18:09:19

onesat
Membre
Lieu : Conakry
Inscription : 12-07-2011
Messages : 7
Site Web

un souci avec la vérification du pseudo et le mot de passe + la redire

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

<?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" "[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

#2 13-07-2011 19:05:45

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : un souci avec la vérification du pseudo et le mot de passe + la redire

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

#3 13-07-2011 20:11:40

onesat
Membre
Lieu : Conakry
Inscription : 12-07-2011
Messages : 7
Site Web

Re : un souci avec la vérification du pseudo et le mot de passe + la redire

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

<?php
session_start();
// On vérifie si une erreur a été envoyée
if(isset($_SESSION['erreur']))
{
$erreurAffichage = $_SESSION['erreur'];
}
else
$erreurAffichage = "";
{
$_SESSION['erreur'] = "";
}
?>[/b]
Et voici encore une fois le code la page verifconnexion.php
[b]<?php
session_start();
$_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']))
{


// 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

#4 13-07-2011 20:22:17

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : un souci avec la vérification du pseudo et le mot de passe + la redire

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

#5 13-07-2011 21:03:54

onesat
Membre
Lieu : Conakry
Inscription : 12-07-2011
Messages : 7
Site Web

Re : un souci avec la vérification du pseudo et le mot de passe + la redire

Ok Thanks mais avant que je ne finisse de lire complètement le Manuel PHP en ligne peut tu me proposés une solution rapide?


Mr onesat

Hors ligne

#6 14-07-2011 05:39:04

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : un souci avec la vérification du pseudo et le mot de passe + la redire

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

#7 14-07-2011 22:45:10

onesat
Membre
Lieu : Conakry
Inscription : 12-07-2011
Messages : 7
Site Web

Re : un souci avec la vérification du pseudo et le mot de passe + la redire

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

#8 15-07-2011 11:44:03

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : un souci avec la vérification du pseudo et le mot de passe + la redire

Bonjour,


INSERT INTO mytable (login, pwd) VALUES ('$login', SHA1('$password'));

SELECT id, nom prénom FROM mytable WHERE login='$login' AND pwd=SHA1('$password') ;
 

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

Pied de page des forums