menu differant tout dépendant du niveau de l'user

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : menu differant tout dépendant du niveau de l'user

par Poinball » 08 nov. 2007, 00:31

ahh jsuis dsl !! jme suis tromper de section la !! :P:P:P

par Truc » 08 nov. 2007, 00:00

C'est quoi ça ? :boire4:

Tu nous parlais de menu et maintenant de factures ?
(c'est nous qui allons t'en faire une de facture pour service rendu :lol: )

par Poinball » 07 nov. 2007, 23:48

Rebonjour !!

j'ai trouver le code idéal pour faire ce que je recherche
$reponse = mysql_query('SELECT count(t1.id) as facture,t1.login FROM factures as t1,utilisateurs as t2 WHERE t1.login=t2.login GROUP BY t2.login');


Mais je ne sais pas comment Extraire mon nombre de facture par membre..

par Truc » 07 nov. 2007, 17:34

tu devrais regarder CECI avant de poursuivre.

par h0_noMan » 07 nov. 2007, 17:32

$utilisateur = "SELECT niveau FROM utilisateurs WHERE id =".$_SESSION['id'];  
A condition que tu es bien mis id dans la session.

par Poinball » 07 nov. 2007, 17:27

ou que le lintegre :( jsuis toute mélanger la

par Truc » 07 nov. 2007, 17:16

Donc tu dois ajouter l'id du user dans la requête :
 "... WHERE id = ".$_SESSION['id'];
Ne pas oublier mysql_fetch_array() que tu as supprimé dans ta proposition :?

par Poinball » 07 nov. 2007, 17:09

Pour le garder connecter jutilise les $_SESSION['login'] ....

voisi mon nouveau code qui ne fonctionne pas encore correctement ..
<? 
$hc = mysql_connect("localhost","*****","*****") or die ("impossible de connecter le serveur de données"); // Pour se connecter à la base de donnée
$db = mysql_select_db("design_facture") or die ("impossible de connecter la base de données. <br/>".mysql_errno()." : ".mysql_error().""); // Pour dire le nom de la base de donnée


$login = get_magic_quotes_gpc()? stripslashes($_POST['login']) : $_POST['login'];

$utilisateur = "SELECT niveau FROM utilisateurs WHERE login =". mysql_real_escape_string($login); 
$ressource = mysql_query($utilisateur); 
$resultat = mysql_fetch_assoc($ressource);

if($resultat['niveau'] == 'admin')  {
include("menu-admin.php");

}
else {

include("menu-user.php");

}   
mysql_close();
?>
Une erreur saffiche a la place du menu quand je me log ..

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /hdd2/design/public_html/facture/facture.php on line 79

par Truc » 07 nov. 2007, 15:47

Tout a été dit... hormis
en touka je lespere
:afraid:

par h0_noMan » 07 nov. 2007, 15:40

Comment marche ton systeme d'authentification ?

Vers quelle page est pointé l'action de ton formulaire de login ?

Utilises tu les $_SESSION[] (ou les cookies) pour garder ton utilisateur connecté ?

par AB » 07 nov. 2007, 15:35

Développement du message de h0_noMan

Y'a quelque chose que je ne comprend pas. Si tu veux afficher une page en fonction de l'utilisateur il faudrait qu'il s'authentifie, non?

Il te faudrait donc un formulaire qui renvoie au moins une variable post et ta requête devrait ressembler à
$user = get_magic_quotes_gpc()? stripslashes($_POST['user']) : $_POST['user'];

$utilisateur = "SELECT niveau FROM utilisateurs WHERE user =". mysql_real_escape_string($user); 
$ressource = mysql_query($utilisateur); 
$resultat = mysql_fetch_assoc($ressource);

if($resultat['niveau'] == 'admin') 
include("menu-admin.php");

}
else {

include("menu-user.php");

}

par h0_noMan » 07 nov. 2007, 15:25

$utilisateur = "SELECT niveau FROM utilisateurs order by id asc";
Tu n'as pas de conditions, donc tu va te retrouver avec toute la liste des utilisateurs.
Et vu que tu ne choisi que l'utilisateur avec le plus faible ID (donc normalemement celui inscrit en 1er)
qui est la plupart du temps ADMIN.

Je penses que tu devrais mettre les login/password dans ta requete afin de n'avoir qu'une seule ligne en retour.

par Poinball » 07 nov. 2007, 14:36

oki .. alors voici mon nouveau code...

il y a une erreur (le menu affiche pas :( ).. surment que tu vas me la détecter assé rapidement.. en touka je lespere
<? 
$hc = mysql_connect("localhost","*****","*****") or die ("impossible de connecter le serveur de données"); // Pour se connecter à la base de donnée
$db = mysql_select_db("design_facture") or die ("impossible de connecter la base de données. <br/>".mysql_errno()." : ".mysql_error().""); // Pour dire le nom de la base de donnée


$utilisateur = "SELECT niveau FROM utilisateurs order by id asc"; // Ligne pour la sélection dans la bdd (asc) ou (desc) = sens up ou down
$resultat = mysql_query($utilisateur); // résultat

$possibles = array("admin","user");
if(in_array($niveau,$possibles))
   include("menu-".$niveau.".php"); 
   
mysql_close();
?>

par Truc » 07 nov. 2007, 14:30

En effet génant :lol:

1er test simple... afficher le contenu de $niveau

Un peu d'optimisation :

Dans la requête évite le * inutile d'avoir tout le contenu et préfère à la place "niveau" (nom du champ a récupérer)
$possibles = array("admin","user");
if(in_array($niveau,$possibles))
   include("menu-".$niveau.".php"); 

menu differant tout dépendant du niveau de l'user

par Poinball » 07 nov. 2007, 14:23

Bonjour , j'ai codé un petit script pour permettre d'afficher un menu différant tout dépendant quelle niveau est l'utilisateurs de mon site web. Il y a 2 niveau 1-admin 2-user

Le probleme est que quand jouvre une session avec un compte user il a le menu d'admin !!!
<? 
$hc = mysql_connect("localhost","*****","*****") or die ("impossible de connecter le serveur de données"); // Pour se connecter à la base de donnée
$db = mysql_select_db("design_facture") or die ("impossible de connecter la base de données. <br/>".mysql_errno()." : ".mysql_error().""); 


$utilisateur = "SELECT * FROM utilisateurs order by id asc"; 
$resultat = mysql_query($utilisateur); // résultat

if($rows=mysql_fetch_array($resultat)) {
$niveau = $rows['niveau'];

if ( $niveau == "admin" )	{

include("menu-admin.php");

}
else {

include("menu-user.php");

}
}
mysql_close();
?>