[RESOLU] Grade dans son site

Petit nouveau ! | 9 Messages

02 août 2016, 10:41

Bonjour et merci de vos futurs réponses;
Voila sur ma page connexion ( celle avant l'index) Je met une variable qui récupère le "rang" des membres.
J'aimerais afficher sur la page index, notamment pour les administrateurs, ce qu'ils peuvent faire. exemple afficher les membres et directement les modifier. Ma page de modification est faites, mais quand je rentre mon code pour le tester, celui ci affiche pareil sur mon compte de test admin, et mon compte de test utilisateurs.
Je vous met le code ici
<?php



	if ($_SESSION['grade']=='admin') // Uniquement admin
	{
		echo 'retest';
	}
	else
	{
		//sinon
		echo 'test';
	};
?>

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9783 Messages

02 août 2016, 10:51

Bonjour,

C'est à dire que dans ton exemple, il affiche toujours "retest" ?
Si c'est le cas, vérifie ta variable $_SESSION['grade'] car elle a probablement été mise à admin aussi pour les utilisateurs
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 9 Messages

02 août 2016, 11:06

Exactement donc les admins voient retest, et ce a partir d'un rang mis dans la base de donnée
Dans la bdd y a qu'un seul admin pour le moment. je copie le code entier pour que tu vois mieux
<?php       
if(date('G') >= 0 && date('G') < 17) {     
echo 'Bonjour';     
   
}  
else{echo " bonsoir";}   
         
?><?php if(isset($_SESSION['username'])){echo ' heureux de vous revoir, '.htmlentities($_SESSION['username'] );} 
else{ echo " bienvenue dans la section membre."; }?><br/>


<?php

if(isset($_SESSION['username']))
{
?>


 <body id="be">
 <table><tr>
<td><li><a href="edit_infos">Modifier mes informations personnelles</a></li></td></tr><tr><br/>
<td><li><a href="reservation">Reserver un bijou par email</a></li></td></tr><tr><br/>
<td><li><a href="condition">Condition d\'utilisation</a></li></td></tr><tr><br/>
<td><li><a  href="catalogues">Téléchargez nos catalogues en version PDF</a></li></td></tr><tr><br/>
<td><li><a href="connexion">Se déconnecter</a></li></td></tr></table>
	<?php



	if ($_SESSION['grade']=='admin') 
	{
		echo 'retest';
	}
	else
	{
		
		echo 'test';
	};
?>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

02 août 2016, 11:14

salut,

il faut que tu saches ce qu'il y dans $_SESSION['grade'] avant ton if. soit tu utilises un débogueur soit tu utilises la version artisanale avec un var_dump($_SESSION); qui t'afficheras le contenu de ton tableau de session.

comment affecte cette variable de session ? (grade)
Je pense qu'a la connexion soit tu n'affecte pas la variable soit tu le fait mal.

Si non c'est que :
- tu as une vielle version de php
- tu as le paramètre register global d'activé
- tu utilises une variable $grade et il y a une collision ;)


@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 9 Messages

02 août 2016, 11:22

je pense que j'ai oublier une variable... ce sont les derniers détails du site a bosser. Fin celui ci est le dernier puis c'est fini.
Donc dans la connexion, il ne prend que le nom d'utilisateur et non leur grade, comment puis je l'ajouter facilement dans mon code?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

02 août 2016, 12:35

ben $_SESSION['grade'] = la valeur issue de la requête sql qui récupère les données utilisateurs ?
le tout après la vérification des identifiants de connexion (ok de préférence)


@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 9 Messages

03 août 2016, 13:27

Je met le soucis en résolu,
je poste la solution pour ceux ou celles qui ont la même galère.
1- j'ai créé une colonne rang avec comme valeur admin ou utilisateur, comme valeur par défaut utilsateur.
2- J'ai du mettre dans le code de connexion ceci afin que le rang soit enregistré à chaque visite
$_SESSION['rang'] = $dn['rang'];
Sur la page index lorsque l'on est admin dans la bdd
on peut afficher deux messages differents, voici le code
<?php
	
	if ($_SESSION['rang'] =='Admin') // l'écho mais dis donc ne s'affichera que si le rang est en admin, bien entendu a partir de la tout est permis
	{
		echo'mais dit donc';
	}
	else
	{
		// Sinon, il affichera ceci, le but du jeu est de masqué la 'page' donc, il n'affichera rien bien entendu.
		echo 'bouhhhhhhhhhhhhhhhhhh';
		
	};
?>
Je met le sujet en résolu et merci a moogli

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

03 août 2016, 14:41

de rien :)

Merci à toi de partager ta solution ;)
Il en faut peu pour être heureux ......