Gestion droits utilisateurs
Résolu
Ibilolz
Messages postés
130
Date d'inscription
Statut
Membre
Dernière intervention
-
Nhay Messages postés 838 Date d'inscription Statut Membre Dernière intervention -
Nhay Messages postés 838 Date d'inscription Statut Membre Dernière intervention -
Bonjour, j'ai une table utilisateur dans laquelle j'ai un champ rang avec 0 ou 1.
Je voudrais que les utilisateurs qui ont la valeur rang 1 puisse être redirigé vers index2.php et ceux qui ont la valeur rang 0 puisse être redirigé vers index3.php.
J'ai donc écrit le code suivant :
Que j'ai mis dans mon fichier de connexion en dessous de la vérification et de l'enregistrement dans les sessions :
Et depuis je reste bloqué à l'acceuil, la connexion ne marche plus ni la redirection.
Je voudrais que les utilisateurs qui ont la valeur rang 1 puisse être redirigé vers index2.php et ceux qui ont la valeur rang 0 puisse être redirigé vers index3.php.
J'ai donc écrit le code suivant :
if (isset($_SESSION[rang]==1)) { header("location: index2.php" ); }
Que j'ai mis dans mon fichier de connexion en dessous de la vérification et de l'enregistrement dans les sessions :
<?php include('config2.php'); //Si lutilisateur est connecte, on le deconecte if(isset($_SESSION['username'])) { //On le deconecte en supprimant simplement les sessions username et userid unset($_SESSION['username'], $_SESSION['userid']); header("location: index.html" ); ?> <?php } else { $ousername = ''; //On verifie si le formulaire a ete envoye if(isset($_POST['username'], $_POST['password'])) { //On echappe les variables pour pouvoir les mettre dans des requetes SQL if(get_magic_quotes_gpc()) { $ousername = stripslashes($_POST['username']); $username = mysql_real_escape_string(stripslashes($_POST['username'])); $password = stripslashes($_POST['password']); } else { $username = mysql_real_escape_string($_POST['username']); $password = $_POST['password']; } //On recupere le mot de passe de lutilisateur $req = mysql_query('select password,id from users where username="'.$username.'"'); $dn = mysql_fetch_array($req); //On le compare a celui quil a entre et on verifie si le membre existe if($dn['password']==$password and mysql_num_rows($req)>0) { //Si le mot de passe es bon, on ne vas pas afficher le formulaire $form = false; //On enregistre son pseudo dans la session username et son identifiant dans la session userid $_SESSION['username'] = $_POST['username']; $_SESSION['userid'] = $dn['id']; if (isset($_SESSION[rang]==1)) { header("location: index2.php" ); } else {header("location: index3.php" );} } else { //Sinon, on indique que la combinaison nest pas bonne echo 'La combinaison n\'est pas bonne.'; header("location: index.html" ); } } else { } } ?>
Et depuis je reste bloqué à l'acceuil, la connexion ne marche plus ni la redirection.
A voir également:
- Gestion droits utilisateurs
- Logiciel gestion locative gratuit excel - Télécharger - Comptabilité & Facturation
- Logiciel gestion photo gratuit - Guide
- Gestion de fichiers - Télécharger - Gestion de fichiers
- Gestion des utilisateurs windows 10 - Guide
- Gestion autorisation application android - Guide
2 réponses
Hello,
ce que tu fais c'est que tu test si $_SESSION['rang'] == 1 (ce qui te retourne un true/false et tu passe ceci à ta fonction isset().
ce qu'il faudrait faire c'est la chose suivante :
P.S. petites remarques :)
- tu as oublié les guillemets à la ligne 42 : $_SESSION[rang]
- tu la créer peut être ailleurs, mais dans ton code ci-dessus, à aucun moment tu créé la variable $_SESSION['rang'].
A+ Seezer
ce que tu fais c'est que tu test si $_SESSION['rang'] == 1 (ce qui te retourne un true/false et tu passe ceci à ta fonction isset().
ce qu'il faudrait faire c'est la chose suivante :
if(isset($_SESSION['rang'])) { if($_SESSION['rang']==1) header('location:index2.php'); else header('location:index3.php'); }
P.S. petites remarques :)
- tu as oublié les guillemets à la ligne 42 : $_SESSION[rang]
- tu la créer peut être ailleurs, mais dans ton code ci-dessus, à aucun moment tu créé la variable $_SESSION['rang'].
A+ Seezer
Merci de ta réponse, j'ai fais la modification que tu m'as écrite mais j'ai toujours une erreur à cause de la variable non déclarée $_SESSION['rang'] je peux la crée comment dans mon code ??
J'ai fait ceci mais page blanche, pas de redirection lors de la connection, il doit y avoir une erreur dans le code .
<?php
include('config2.php');
//Si lutilisateur est connecte, on le deconecte
if(isset($_SESSION['username']))
{
//On le deconecte en supprimant simplement les sessions username et userid
unset($_SESSION['username'], $_SESSION['userid']);
header("location: index.html" );
?>
<?php
}
else
{
$ousername = '';
//On verifie si le formulaire a ete envoye
if(isset($_POST['username'], $_POST['password']))
{
//On echappe les variables pour pouvoir les mettre dans des requetes SQL
if(get_magic_quotes_gpc())
{
$ousername = stripslashes($_POST['username']);
$username = mysql_real_escape_string(stripslashes($_POST['username']));
$password = stripslashes($_POST['password']);
}
else
{
$username = mysql_real_escape_string($_POST['username']);
$password = $_POST['password'];
}
//On recupere le mot de passe de lutilisateur
$req = mysql_query('select password,id from users where username="'.$username.'"');
$dn = mysql_fetch_array($req);
//On le compare a celui quil a entre et on verifie si le membre existe
if($dn['password']==$password and mysql_num_rows($req)>0)
{
//Si le mot de passe es bon, on ne vas pas afficher le formulaire
$form = false;
//On enregistre son pseudo dans la session username et son identifiant dans la session userid
$_SESSION['username'] = $_POST['username'];
$_SESSION['userid'] = $dn['id'];
$_SESSION['rang'] = $dn['rang'];
if(isset($_SESSION['rang']))
{
if($_SESSION['rang']==1) header('location:index2.php');
else header('location:index3.php');
?}
}
else
{
//Sinon, on indique que la combinaison nest pas bonne
echo 'La combinaison n\'est pas bonne.';
header("location: index.html" );
}
}
else
{
}
}
?>