probleme de menu avec les sessions

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 : probleme de menu avec les sessions

probleme de menu avec les sessions

par MEN » 14 août 2005, 11:55

bonjour
désolé pour le retard
ben ca marche trés bien pour mon travaille jai suivi vos conseil et oops
ca fonctionne
la maintenant je sais comment travailler avec les sessions :pouce: (good)
merci beaucoup
@+
salut

par Cyrano » 07 août 2005, 13:44

Bon, pour ton code : essaye de pas éparpiller tout au quatre vents, un peu d'optimisation même dans l'écriture, ça va te faciliter la relecture:
<?php
session_start();
session_name();
session_id();

$fichier="";
$edition="";
$afficher="";
$recherche="";

if (isset($_POST["user"]))
{
    $user = $_POST ["user"];
    if  (isset($_POST ["pass"]))
    {
        $pass = $_POST["pass"];
    }

    $connexion = mysql_connect($GLOBALS["db_host"] , $GLOBALS["db_user"] , $GLOBALS["db_password"]) or die ("<br>connxion impossible au serveur<br>");
    $db = mysql_select_db($GLOBALS["db_name"] , $connexion)  or die ("<br>selection impossible de la base de donnée<br>");


    $req = "SELECT * FROM log WHERE pass ='". $pass ."' AND  user ='". $user ."'";

    $res = mysql_query($req);

    $count = mysql_num_rows ($res);

    if  ($count > 0)
    {
        $row = mysql_fetch_array ($res);

        $niv = $row ["niveau"];
        $_SESSION['user'] = $user;
        $_SESSION['niveau'] = $niv;
        if ( isset($_SESSION['niveau']))
        switch ($_SESSION['niveau'])
        {
            case 1 :
            $fichier="fichier";
            $edition="edition";
            $afficher="affiche";
            echo $_SESSION['niveau'] ;
            $recherche="recherche";
            $decon = "Se déconnecter";
            break;

            case 2 :
            $afficher="affiche";
            $recherche="recherche";
            $fichier="fichier";
            echo $_SESSION['niveau'] ;
            $decon = "Se déconnecter";
            break;

            case 3 :
            $ficher="affiche";
            $recherche="recherche";
            echo $_SESSION['niveau'] ;
            $decon = "Se déconnecter";
            break;

            case 4 :
            $fichier="fichier";
            echo $_SESSION['niveau'] ;
            $decon = "Se déconnecter";
            break;
        }
    }
}
?>
Ensuite, tu pourrais mettre ton switch sans une fonction externe et ensuite dans les autres pages commencer par récupérer le niveau du visiteur en récupérant la variable de session. Tu envoies ce niveau en paramètre à ta fonction qui t'affichera le menu correspondant.

probleme de menu avec les sessions

par MEN » 07 août 2005, 13:24

je ne sais pas que dois je faire mais c'est une erreur et je savais meme que jai fait Multipostage
et en plus les données sont les meme jai rien changer
et jai commencer mon message par désolé je suis debutant en php et meme en francais ca veux dire que jai repondu a liautre message


désolé

par Cyrano » 07 août 2005, 12:58

Modération
MEN, le multipostage est interdit ici, j'ai verrouillé la copie que tu viens d'envoyer. Si tu récidives, je vourouilleraià nouveau la copie + celui-ci.

par Cyrano » 07 août 2005, 11:30

Dans un premier temps MEN, je vais te prier d'éditer ton message et de sélectionner les portions de code que tu as mis puis de cliquer sur le bouton [php] : ça rajoutera une coloration syntaxique et ça conservera l'indentation : si tu veux qu'on t'aide, donne toi une enchance en nous facilitant un minimum la lecture. Ça fait partie des règles du forum (1ière ligne de l'article 3)

Ensuite, si tu codes comme tu écris, ça va être difficile. Tu fais un nombre de fautes d'orthographe hallucinant : fais un effort quand même! Si tu arrives à écrire du PHP sans erreur, tu devrais arriver à le faire avec ta propre langue.

Enfin, as-tu lu le tuto sur les sessions du site ?

probleme de menu avec les sessions

par MEN » 07 août 2005, 11:18

bonjour
je suis entrain de developpez une application web ; et je travaille avec les sessions ca marche bien ;-)
mais mon probleme est ce que jai fait un menu [fichier]; [edition];[afficher]; [recherche]
et 4 utilisateurs niveau1,....,niveau4
seulle niveau1 voit tout le menu
niveau2 voit que [afficher]et [recherche]
.....
a la page index ou ils log ca marche trés bien mais si par exemple le niveau2 click sur [afficher] le menu dans la page afficher apparaitre en compler pourtant jai bien declarer ma session et voila mon programme

la page indexe ici ca marche bien
<?php
session_start();
session_name();
session_id();

$fichier="";
$edition="";
$afficher="";
$recherche="";

if (isset($_POST["user"]))
{
    $user = $_POST ["user"];
if  (isset($_POST ["pass"]))
    {
     $pass = $_POST["pass"];
    }
	 	
 $connexion = mysql_connect($GLOBALS["db_host"] , $GLOBALS["db_user"] , $GLOBALS["db_password"]) or die ("<br>connxion impossible au serveur<br>");
 $db = mysql_select_db($GLOBALS["db_name"] , $connexion)  or die ("<br>selection impossible de la base de donnée<br>");
 
 
    $req = sprintf ("select * from log where pass ='$pass' &&  user ='$user'");
 
    $res = mysql_query($req);
 
    $count = mysql_num_rows ($res);
 
    if  ($count)
	{  
	$row = mysql_fetch_array ($res);
	
				$niv = $row ["niveau"];
				$_SESSION['user'] = $user;
				$_SESSION['niveau'] = $niv;
				if ( isset($_SESSION['niveau']))
				switch ($_SESSION['niveau'])
				{
				case 1 :
				echo $_SESSION['niveau'] ;
				$fichier="fichier";
                                                                $edition="edition";
                                                                $afficher="affiche"; 
                                                                $recherche="recherche";

		   		$decon = "Ce déconecté";
				
				break;
				
				case 2 :
				                                            $afficher="affiche";                  
                                                            $recherche="recherche";
                                                            $fichier="fichier";
				echo $_SESSION['niveau'] ;
				$decon="Ce déconecté";
				break;
				
				case 3 :
				 $ficher="affiche"; 
                                                                $recherche="recherche";
				echo $_SESSION['niveau'] ;
				$decon="Ce déconecté";
				break;
				
				case 4 :
				$fichier="fichier";				                echo $_SESSION['niveau'] ;
				$decon="Ce déconecté";
				break;
			}
 	}
?>

la 2eme page fichier
<?php
session_start();
session_name();
session_id();
et jai essayé tout les solutions que je connais mais ca marche pas ;jai travaillé ici avec switch mai ca na pas marcher

ce que minteresse moi c'est l'affichage du menu chaque utilisateur a ces droit d'accée et dans toute les pages

SVP si quelqu'un a passé par ce cas ou connais comment ca fonctionne me faire sortire de la

merci