Sessions permissions

Résolu
Soul EX Messages postés 26 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 8 janvier 2006 - 7 oct. 2005 à 19:14
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 12 oct. 2005 à 17:43
<?php



session_start();



$login = $_POST["login"];

$password = $_POST["password"];



$connexion = mysql_connect("*","*","*");

mysql_select_db("*",$connexion);



$requete = "select * from membres where login='$login' and password='$password'";

$result = mysql_query($requete);



if (($enreg = @mysql_fetch_array($result)))

{

$_SESSION["membre"] = TRUE;

$_SESSION["membrelogin"] = '$login';

header("Location: menumaj.php");

die();

}



else

{

$_SESSION["membre"] = FALSE;

header("Location: acces_invalide.php");

die();

}



?>



Bonjour tout le monde. Voici le code qui suit un formulaire d'identification...

Pour l'instant et comme vous l'aurez compris, n'importe quel enregistrement de la table a accès à la page "menumaj.php".

Ce que je souhaite c'est que en fonction d'un certain login, l'affichage de menumaj.php change.

Actuellement menumaj.php est comme cela :



<?php



session_start();



if (!$_SESSION["membre"])

if (!$_SESSION["membrelogin"])

{

header("Location: menu.php");

die();

}

?>



+ le contenu de la page.



Je bloque vraiment la et suis assez embété de vous déranger comme cela.



Concrétement, je dois avoir 3 affichages différents avec donc 3 logins et 3 pass différents a chaque fois.

Je ne sais comment me débrouiller...



Merci de m'aider si quelqu'un à quelques minutes.

Je vous en serez plus que fort reconnaissant.



Clément

12 réponses

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
10 oct. 2005 à 18:19
<?php



session_start();
if (!isset($_SESSION['membre'])) {
header('Location: erreur.php');
die();
}

if ($_SESSION['membre']==='prout')

{
echo "j'ai fait un pet";
}
elseif ($_SESSION['membre']==='burp')

{
echo "j'ai fait un rot";
}
elseif ($_SESSION['membrelogin']==='prurp')

{
echo "je sais pas ce que j'ai fait mais c'était bizarre ^^";
}
?>

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
3
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
7 oct. 2005 à 19:25
Salut,



if (!$_SESSION["membre"])

> remplace par if(!isset($_SESSION['membre']))





ensuite tu veux faire quoi exactement ?



si tu veux faire une action en fonction de la valeur d'une session tu fais ça :



if($_SESSION['membre']==='valeur')

{

//action

}
<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
7 oct. 2005 à 19:35
if (($enreg = @mysql_fetch_array($result)))



Sera toujours TRUE.



<?php

$sql = select COUNT(*) from membres where login='$login' and password='$password'";

$query = mysql_query($sql);

$data = mysql_fetch_row($query);

if ( $data[0] === 1 ) {

// Alors le visiteur est bien un membre

} else {

// Non, ce n'est pas un membre.

}

?>



Pas compliqué pourtant...
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
7 oct. 2005 à 19:40
Mais merde ! J'ai quoi avec mes triples "égal" aujourd'hui ... !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
7 oct. 2005 à 19:40
bah c'est mieux, par contre if ( $data[0] === 1 ) {



ce sera toujours faux, mysql renvoit un string if($data[0]==='1')

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
0
Soul EX Messages postés 26 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 8 janvier 2006
9 oct. 2005 à 16:27
Marche toujours pas....



Voyez avec le code que je vous ai mis en haut... N'importe qui inscrit
sur la base rentre son login et code et a acces aux même infos que les
autres...

Je vais vous faire en francais ce que donne la page "menumaj.php".



Si variable de session MEMBRE existe et Si variable de session MEMBRELOGIN = x

Afficher les infos destinées à x "



Si variable de session MEMBRE existe et Si variable de session MEMBRELOGIN = y

Afficher les infos destinées a y



Sinon afficher les infos z





Je commence a désespérer. C'est un truc tout con j'en suis certain mais je ne sais pas du tout comment faire.

Et google ne m'aide meme pas :@
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
9 oct. 2005 à 18:40
C'est normal, tu dois ajouter un champ dans ta BDD afin de spécifier un niveau de sécurité pour chaque membre.

Par exemple, un admin a un niveau 2, alors qu'un membre simple n'a qu'un niveau 1.

Tu colles ca dans une session par exemple, et ensuite tu testes sur chaque page :

<?php

if ( !isset($_SESSION['level']) || !$_SESSION['level'] === 2 ) {

// L'utilisateur n'est pas un admin

}

// Autrement, il l'est.

?>
0
Soul EX Messages postés 26 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 8 janvier 2006
10 oct. 2005 à 17:46
Vous ne comprenez pas ce que je veux....



sur UNE page.



il me faut :



<html>



<? session_start();

if ($_SESSION["membre"]) {

header("Location: erreur.php");

die();

}



if ($_SESSION["membrelogin"]==='prout') {

echo "j'ai fait un pet";

}



if ($_SESSION["membrelogin"]==='burp') {


echo "j'ai fait un rot";


}



if ($_SESSION["membrelogin"]==='prurp') {


echo "je sais pas ce que j'ai fait mais c'était bizarre ^^";


}

?>



</html>



La variable de session membrelogin correspondant donc au login entré dans le formulaire d'identification...

je souhaite cela, mais c'est bourré d'erreurs :'(



Ca me stresse ca fait bientot deux semaines que je galère avec ca, c'est incroyable quand même ^^

LOL



Bon merci à tous ceux qui tentent de m'aider, en vain... et a celui qui me donnera la bonne réponse.



Clément
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
10 oct. 2005 à 17:58
bah perso je vois pas où est le problème, en fonction d'un login tu affiches un message, j'ai pas compris où tu peines là...

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
0
Soul EX Messages postés 26 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 8 janvier 2006
10 oct. 2005 à 18:12
eh bien ce code ne marche pas....
0
Soul EX Messages postés 26 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 8 janvier 2006
12 oct. 2005 à 17:42
Une dernière petite question à propos des fonctions et je ne vous embete plus....

Simple encore une fois....



Actuellement j'ai une page qui s'affiche uniquement si la variable de session est définie...

A savoir j'ai cela en haut de la page :



session_start();
if (!isset($_SESSION['membre'])) {
header('Location: erreur.php');
die();
}



Et ensuite j'ai ma page. Et je souhaiterais que ma page s'affiche

si $_SESSION['membre'] est true

ET

si $_SESSION['membrelogin']==='prout'



Je ne sais comment rajouter le second élément.

Merci d'avance

Clément
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
12 oct. 2005 à 17:43
heu tu pourrais apprendre les conditions en PHP... faut pas exagérer là...

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li>
0
Rejoignez-nous