Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1862 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  authentification et redirection

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

authentification et redirection

n°2089351
onesat
Dieu est le 1er programmeur
Posté le 13-07-2011 à 20:38:51  profilanswer
 

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
mood
Publicité
Posté le 13-07-2011 à 20:38:51  profilanswer
 

n°2089593
rufo
Pas me confondre avec Lycos!
Posté le 15-07-2011 à 14:26:21  profilanswer
 

Et la question est? Faut qu'on la devine?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2090075
onesat
Dieu est le 1er programmeur
Posté le 18-07-2011 à 23:06:36  profilanswer
 

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?

n°2090101
furie gast​rique
Posté le 19-07-2011 à 09:40:24  profilanswer
 

C'est ce que fait déjà ton code non? Que contient $data['admin'] ?


---------------
Google isn't making us stupider, it's simply making us realise that omniscience is actually slightly boring. (Douglas Copland)
n°2090113
rufo
Pas me confondre avec Lycos!
Posté le 19-07-2011 à 10:29:14  profilanswer
 

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 :??:


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2090196
onesat
Dieu est le 1er programmeur
Posté le 19-07-2011 à 16:31:07  profilanswer
 

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');
 }

n°2090198
rufo
Pas me confondre avec Lycos!
Posté le 19-07-2011 à 16:42:19  profilanswer
 

quelle valeur contient $data['admin']?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2090201
furie gast​rique
Posté le 19-07-2011 à 16:49:44  profilanswer
 

C'est que $data['admin'] ne contient pas une valeur que PHP peut assimiler à du booléen :o


---------------
Google isn't making us stupider, it's simply making us realise that omniscience is actually slightly boring. (Douglas Copland)
n°2090210
onesat
Dieu est le 1er programmeur
Posté le 19-07-2011 à 17:34:36  profilanswer
 

Alors comment devrais-je procédé?????????

n°2090286
rufo
Pas me confondre avec Lycos!
Posté le 20-07-2011 à 08:52:59  profilanswer
 

ben dis-nous ce que contient $data['admin'] et on te donnera le bon test à mette dans ton elseif :/


Message édité par rufo le 20-07-2011 à 08:53:07

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
mood
Publicité
Posté le 20-07-2011 à 08:52:59  profilanswer
 

n°2090344
furie gast​rique
Posté le 20-07-2011 à 13:10:48  profilanswer
 

Tu fais un:
 

Code :
  1. SELECT DISTINCT admin FROM visiteurs


 
et tu connaîtras la liste des valeurs que tu peux exploiter. Tu devrais en avoir minimum 2.


---------------
Google isn't making us stupider, it's simply making us realise that omniscience is actually slightly boring. (Douglas Copland)
n°2090469
onesat
Dieu est le 1er programmeur
Posté le 20-07-2011 à 21:31:57  profilanswer
 

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

n°2090503
furie gast​rique
Posté le 20-07-2011 à 22:55:30  profilanswer
 

L'expression $data['admin'] réfère à la colonne admin.


Message édité par furie gastrique le 20-07-2011 à 22:55:50

---------------
Google isn't making us stupider, it's simply making us realise that omniscience is actually slightly boring. (Douglas Copland)
n°2090708
onesat
Dieu est le 1er programmeur
Posté le 21-07-2011 à 19:08:53  profilanswer
 

Non l'expression 4data['admin'] réfère à un enregistrement

n°2090716
furie gast​rique
Posté le 21-07-2011 à 20:13:40  profilanswer
 

à la colonne admin de ton enregistrement [:aloy]


---------------
Google isn't making us stupider, it's simply making us realise that omniscience is actually slightly boring. (Douglas Copland)
n°2090731
onesat
Dieu est le 1er programmeur
Posté le 21-07-2011 à 21:49:14  profilanswer
 

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

n°2090734
rufo
Pas me confondre avec Lycos!
Posté le 21-07-2011 à 22:10:16  profilanswer
 

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


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2090735
onesat
Dieu est le 1er programmeur
Posté le 21-07-2011 à 22:17:10  profilanswer
 

la données c'est varchar

n°2090736
furie gast​rique
Posté le 21-07-2011 à 22:32:46  profilanswer
 

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.


---------------
Google isn't making us stupider, it's simply making us realise that omniscience is actually slightly boring. (Douglas Copland)
n°2090738
onesat
Dieu est le 1er programmeur
Posté le 21-07-2011 à 22:36:26  profilanswer
 

Ah bon!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

n°2090774
rufo
Pas me confondre avec Lycos!
Posté le 22-07-2011 à 09:26:15  profilanswer
 

Donc le bon test est :

Code :
  1. if($data['admin'] == "admin" ){  
  2.  header('Location: adminpage.html');  
  3. }  
  4. else{
  5.  header('Location: profil.php');
  6. }


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2090776
furie gast​rique
Posté le 22-07-2011 à 09:28:29  profilanswer
 

Non parce qu'il n'y a pas de colonne "admin" [:joce]


---------------
Google isn't making us stupider, it's simply making us realise that omniscience is actually slightly boring. (Douglas Copland)
n°2090777
rufo
Pas me confondre avec Lycos!
Posté le 22-07-2011 à 09:33:59  profilanswer
 

Vue que sa requête est SELECT *, comment peux-tu le savoir :??:


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2090782
furie gast​rique
Posté le 22-07-2011 à 09:56:48  profilanswer
 

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 :o


---------------
Google isn't making us stupider, it's simply making us realise that omniscience is actually slightly boring. (Douglas Copland)
n°2091467
onesat
Dieu est le 1er programmeur
Posté le 25-07-2011 à 22:17:44  profilanswer
 

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 :
  1. <?php
  2. session_start();
  3. // On vérifie si une erreur a été envoyée
  4. if(isset($_SESSION['erreur']))
  5. {
  6. $erreurAffichage = $_SESSION['erreur'];
  7. }
  8. else
  9. $erreurAffichage = "";
  10. {
  11. $_SESSION['erreur'] = "";
  12. }
  13. ?>


Et voici le code qui a beaucoup fatiguer Le Grand Programmeur furie gastrique!

Code :
  1. <?php
  2. session_start();
  3. $_SESSION['erreur'] ='';
  4. $_SESSION['connexion'] = '';
  5. $_SESSION['pseudo']=$_POST["pseudo"];
  6. $_SESSION['motdep']=$_POST["motdep"];
  7. // On vérifie que le login et le mot de passe ont été précisés  
  8. if(!empty($_POST['pseudo']) && !empty($_POST['motdep']))
  9. {
  10. // Connexion à la base  
  11. $connexion=mysql_connect("localhost", "root", "" )or die("cannot connect" );
  12. mysql_select_db("basedugenie" )or die("cannot select DB" );
  13. mysql_query("SET NAMES 'utf8'" );
  14. // Requete à la base (verification login/mdp)  
  15. $SQL = 'SELECT * FROM visiteurs WHERE pseudo= "'.mysql_real_escape_string($_POST['pseudo']).'" AND mot_de_passe = "'. mysql_real_escape_string(      $_POST['motdep']).'"';
  16.  $request = mysql_query($SQL, $connexion) or die(mysql_error());
  17. $data = mysql_fetch_assoc($request);
  18. if (empty($data) || !sizeof($data)) // Login / Mot de passe invalide  
  19. {
  20.  $_SESSION['erreur'] = 'Login ou mot de passe non valide';
  21.  header("Location:connexion.php" );
  22. }
  23. if($data['pseudo']=='admin'){
  24.  header('location:adminpage.php');
  25.  }
  26. elseif($data['pseudo']){
  27.  header('Location: profil.php');
  28. }
  29. else{
  30.  header('Location:connexion.php');
  31. }
  32. // Récupération des informations de l'utilisateur dans les variables de session   
  33. // Redirection de l'utilisateur  
  34. }
  35. else // Si au moins un champs est vide   
  36. {
  37. // Définition d'une erreur + Redirection  
  38. $_SESSION['erreur'] = 'Tous les champs doivent être renseignés';
  39. header("Location:connexion.php" );
  40. }
  41. //}
  42. ?>
  43. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  44. <html xmlns="http://www.w3.org/1999/xhtml">
  45. <head>
  46. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  47. <title>Document sans titre</title>
  48. </head>
  49. <body>
  50. </body>
  51. </html>


mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  authentification et redirection

 

Sujets relatifs
Apache + SVN, problème d'authentificationHeader d'authentification en PHP
Redirection des visiteurs avec préload ?redirection auto de mondomaine.tld vers www.mondomaine.tld
[Telnet] Problème d'authentification sur le smtp de gmail[Perl] Demande authentification avec le script mais pas avec Firefox
script authentification et redirectionAuthentification basique et redirection (header)
[PHP] authentification et redirection 
Plus de sujets relatifs à : authentification et redirection


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR