authentification et redirection - PHP - Programmation
Marsh Posté le 15-07-2011 à 14:26:21
Et la question est? Faut qu'on la devine?
Marsh Posté le 18-07-2011 à 23:06:36
La question est la suivante je veux que quand un simple utilisateur se connecte qu'il soit rédirigé vers la page profil.html mais quand c'est l'administrateur qu'il soit redirigé vers la page admin.html?
Marsh Posté le 19-07-2011 à 09:40:24
C'est ce que fait déjà ton code non? Que contient $data['admin'] ?
Marsh Posté le 19-07-2011 à 10:29:14
onesat a écrit : La question est la suivante je veux que quand un simple utilisateur se connecte qu'il soit rédirigé vers la page profil.html mais quand c'est l'administrateur qu'il soit redirigé vers la page admin.html? |
ben un simple if sur la variable qui contient le type de profil et un header("location: url" ) différent selon le profil, je vois pas où tu bloques
Marsh Posté le 19-07-2011 à 16:31:07
Ben g lè toute fois essayé (if) avec la redirection qu'il faut mais ça exécute toujours la première condition qu'elle soit vraie ou fausse et c'est là le problème
if($data['admin']){
header('Location: adminpage.html');
}
else{
header('Location: profil.php');
}
Marsh Posté le 19-07-2011 à 16:42:19
quelle valeur contient $data['admin']?
Marsh Posté le 19-07-2011 à 16:49:44
C'est que $data['admin'] ne contient pas une valeur que PHP peut assimiler à du booléen
Marsh Posté le 20-07-2011 à 08:52:59
ben dis-nous ce que contient $data['admin'] et on te donnera le bon test à mette dans ton elseif
Marsh Posté le 20-07-2011 à 13:10:48
Tu fais un:
Code :
|
et tu connaîtras la liste des valeurs que tu peux exploiter. Tu devrais en avoir minimum 2.
Marsh Posté le 20-07-2011 à 21:31:57
en faite "admin" est un utilisateur enregistrer dans la base de données tout comme les autres utilisateurs mais g veut l'octroyer un certain privilège contrairement aux autres utilisateurs C'est à dire qu'il soit le seul à être rediriger vers la page adminpage.html
Marsh Posté le 20-07-2011 à 22:55:30
L'expression $data['admin'] réfère à la colonne admin.
Marsh Posté le 21-07-2011 à 19:08:53
Non l'expression 4data['admin'] réfère à un enregistrement
Marsh Posté le 21-07-2011 à 20:13:40
à la colonne admin de ton enregistrement
Marsh Posté le 21-07-2011 à 21:49:14
je ne sais plus comment expliquer ça maintenant!!!!!!!!!!!!!!
admin est un utilisateur enregistrer dans la base de données et je voudrais que lui seul soit redirigé vers la page adminpage.html après son authentification
Marsh Posté le 21-07-2011 à 22:10:16
Bon sang, mais tu vas nous dire la donnée que contient $data['admin'], oui C'est une chaîne de caractères, un entier, un booléen???
Quand tu fais un var_dump($data['admin']), ça affiche quoi?
On essaye de t'aider, mais tu réponds pas à une question aussi basique
Marsh Posté le 21-07-2011 à 22:32:46
Bah c'est "admin" que la donnée contient, mais son test est erroné parce qu'il n'a pas compris comment ça fonctionne.
Je pense que tu devrais apprendre la programmation avant de te précipiter pour écrire un script.
Marsh Posté le 21-07-2011 à 22:36:26
Ah bon!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Marsh Posté le 22-07-2011 à 09:26:15
Donc le bon test est :
Code :
|
Marsh Posté le 22-07-2011 à 09:28:29
Non parce qu'il n'y a pas de colonne "admin"
Marsh Posté le 22-07-2011 à 09:33:59
Vue que sa requête est SELECT *, comment peux-tu le savoir
Marsh Posté le 22-07-2011 à 09:56:48
Il veut tester que le pseudo soit égal à "admin". Si avec cette phrase il ne trouve pas la réponse, je ne sais plus quoi faire à part lui taper le code tout cru
Marsh Posté le 25-07-2011 à 22:17:44
salut les gas je me suis démerder et j'ai trouver la solution et voici:
j'ai renommer ma page de connexion.html par connexion.php
et j'ai maintenu ce code à l'entête de la page
Code :
|
Et voici le code qui a beaucoup fatiguer Le Grand Programmeur furie gastrique!
Code :
|
Marsh Posté le 13-07-2011 à 20:38:51
bonjour tout le monde! Bon je vais allé droit au but et être plus précis dans ce que je veux obtenir comme résultat
j'ai une page de 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'] = "";
}
?>
Et voici le code de la page verifconnexion.php
<?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" "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 merci d'avance
---------------
Mr onesat