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

  FORUM HardWare.fr
  Programmation
  PHP

  Comment rediriger vers des pages différentes suivant le statut ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment rediriger vers des pages différentes suivant le statut ?

n°1334388
kawasakix
Posté le 29-03-2006 à 10:23:39  profilanswer
 

Bonjour.
Je suis bloqué depuis 3 jours (quel mauvais !) devant un problème qui n'en est surement pas un pour les "bêtes de PHP que vous êtes".
En fait, je voudrais rediriger la personne qui se connecte sur un accès réservé de ma page d'accueil vers une page ou une autre ou encore une autre en fonction de son statut.
Je ne sais pas comment récupérer la variable page correspondante et comment l'utiliser.
 
J'ai créé une table avec email, password, statut et page :  
 
id         email         password        statut              page
1      toto@free.fr      xxxxx           admin        page1.php
2      titi@free.fr        xxxxx        utilisateur      page2.php
3      tutu@free.fr      xxxxx        utilisateur2      page3.php

 
Voici le code source de ma page (avec l'aide de Dreamweaver) :
 
<?php require_once('Connections/db158466536.php'); ?>
<?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
  session_start();
}
 
$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
  $_SESSION['PrevUrl'] = $_GET['accesscheck'];
}
 
if (isset($_POST['email'])) {
  $loginUsername=$_POST['email'];
  $password=$_POST['password'];
  $MM_fldUserAuthorization = "statut";
  $MM_redirectLoginSuccess = "page.php";
  $MM_redirectLoginFailed = "login_error.php";
  $MM_redirecttoReferrer = false;
  mysql_select_db($database_db158466536, $db158466536);
   
  $LoginRS__query=sprintf("SELECT email, password, statut, page FROM login WHERE email='%s' AND password='%s'",
  get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password));  
   
  $LoginRS = mysql_query($LoginRS__query, $db158466536) or die(mysql_error());
  $loginFoundUser = mysql_num_rows($LoginRS);
  if ($loginFoundUser) {
     
    $loginStrGroup  = mysql_result($LoginRS,0,'statut');
     
    //declare two session variables and assign them
    $_SESSION['MM_Username'] = $loginUsername;
    $_SESSION['MM_UserGroup'] = $loginStrGroup;        
 
    if (isset($_SESSION['PrevUrl']) && false) {
      $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];  
    }
    header("Location: " . $MM_redirectLoginSuccess );
  }
  else {
    header("Location: ". $MM_redirectLoginFailed );
  }
}
?>

 
Merci encore pour votre aide.
Bien amicalement


Message édité par kawasakix le 29-03-2006 à 12:04:31
mood
Publicité
Posté le 29-03-2006 à 10:23:39  profilanswer
 

n°1334567
newneo2001
Posté le 29-03-2006 à 13:46:04  profilanswer
 

mais les gens arrêter de faire du PHP via dreamweaver.
 
dreamweaver ca vous sert à créer vos pages mais svp, apprenez à coder correctement. Le code généré par dreamweaver est atroce. Le pire c'est qu'il fait des trucs que tu ne comprends sûrement pas donc tu n'avanceras pas comme ca.
 
pour ton probleme voila ce que tu dois faire :
 
 
tu fais ta requetes comme ca
 
$req = mysql_query ("SELECT email, password, statut, page FROM login  WHERE email='%s' etc)
 
pense à limiter ton résultat avec LIMIT 1 <-- tu recup qu'un enregistrement au cas ou tu aies plusieurs fois la même adresse mail dans ta base
 
 
ensuite tu vérifie qu'il y a au moins un enregistrement

Code :
  1. if (mysql_num_rows($req) > 0) {
  2.   // tu recup les infos
  3.   $result = mysql_fetch_array($req); //pcq tu as qu'un enregistrement sinon il faudrait faire une boucle
  4.   $_SESSIOn['email'] = $result['email'];
  5. //et tu redirige direct ac le lien de la page
  6. header ('Location: '.$result['page']);
  7. }
  8. else { echo ('pas d'utilisateur'); }


 
voila tu as déjà la trame de comment faire ta redirection. ++


---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/
n°1334571
kawasakix
Posté le 29-03-2006 à 13:53:30  profilanswer
 

Je te remercie pour ton aide. Toutefois, je suis "un peu" agé et mon disque dur (cerveau) commence à saturer. Tout ceci pour te dire que je suis nul en programmation. Aussi, Dreamweaver me permettait d'arriver à un minimum de résultat, même si comme toi, je suis convaincu que c'est un pis aller. J'arrive donc à rediriger sur une page ou l'autre ($MM_redirectLoginSuccess = "page.php";  
  $MM_redirectLoginFailed = "login_error.php";) mais pas d'effectuer un choix. Je vais essayer ce que tu me dis même si cela semble, en plus simple, de se rapprocher de ce qu'a fait Dream.

n°1335274
Yertle
Posté le 30-03-2006 à 09:35:36  profilanswer
 

tu fais une requete qui selection l'adresse de ta page de redirection :

Code :
  1. $sql = "select page from Table where id=".$id.";
  2. $page = array_pop(mysql_fetch_array(mysql_query($sql)));


et ensuite tu insère ça dans ton code

Code :
  1. echo "<script language='javascript'>document.location=".$page.";</script>";


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

  Comment rediriger vers des pages différentes suivant le statut ?

 

Sujets relatifs
compteur: pages vuescomment faire pointer un index vers un autre
Comment calculer le nombre de pages selon une division par 10 ?[lazarus] créer un lien vers une page web
[Oracle 9i]Export résultat de requête SQL vers fichier XML?Problème converson d'hexa vers char
sql vers excelConversion vers utf8
PHP objet alloudi les pages ?Convertir Chaine de caractères vers hexa
Plus de sujets relatifs à : Comment rediriger vers des pages différentes suivant le statut ?


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