IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Cookies] espace membre en php


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 25
    Points : 16
    Points
    16
    Par défaut [Cookies] espace membre en php
    Bonjour , voilà jutilise mysql pour mon site internet en php ! ma table membre ce compose du num_categorie qui est liée a la table catégorie ( admin , modo , membre ) et à partir de sa je voudrais faire que lorsque quelqu'un ce connect si il est admin il vois un menu admin , s'il est modo le menu modo et pareille pour membre sauf que je n'y arrive pas si vous pouviez m'aider sa serai sympa ! merci d'avance

  2. #2
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Hello

    Pourrais tu mettre ton code et dire ce qui ne fonctionne pas ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    <?php
    if ($_SESSION['num_membre']!="")
    		{
    			$sql = "SELECT num_cat FROM membres WHERE num_membre=".$_SESSION['num_membre'].";";
    			$curseur= mysql_query($sql);
    			$result = mysql_fetch_array($curseur);
    			if ($result[3] == 1)
    			{
    				if (isset($_GET["page"])) $page = $_GET["page"];
    				else $page = 0;
     
     
    				switch ($page) {
    					case 2 : include("menu2.php"); break;		
    					case 4 : include("menu2.php"); break;
    					case 5 : include("menu2.php");break;
    					case 6 : include("menu2.php");break;
    					case 7 : include("menu2.php");break;
     
     
    					default : include("menu1.php"); break;
    				}
     
     
    			}
    			else
    			if ($result[3] == 2)
    			{
    				if (isset($_GET["page"])) $page = $_GET["page"];
    				else $page = 0;
     
     
    				switch ($page) {
    					case 2 : include("menu2.php"); break;		
    					case 4 : include("menu2.php"); break;
    					case 5 : include("menu2.php");break;
    					case 6 : include("menu2.php");break;
    					case 7 : include("menu2.php");break;
     
     
    					default : include("menu1.php"); break;
    				}
    			}
    			else
    			if ($result[5] == 3)
    			{
    				if (isset($_GET["page"])) $page = $_GET["page"];
    				else $page = 0;
     
     
    				switch ($page) {
    					case 2 : include("menu1.php"); break;		
    					case 4 : include("menu1.php"); break;
    					case 5 : include("menu1.php");break;
    					case 6 : include("menu1.php");break;
    					case 7 : include("menu1.php");break;
     
     
    					default : include("menu1.php"); break;
    				}
    			}	
     
    		}
    ?>
    voilà un exemple .
    sa me renvoie un bug ligne 2 .
    Notice: Undefined variable: _SESSION in C:\Program Files\EasyPHP 2.0b1\www\soiree\menu.inc.php on line 2

  4. #4
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Citation Envoyé par Carnage76 Voir le message
    sa me renvoie un bug ligne 2 .
    Notice: Undefined variable: _SESSION in C:\Program Files\EasyPHP 2.0b1\www\soiree\menu.inc.php on line 2
    Simple erreur d'initialisation de ta variable $_SESSION['num_membre']. C'est à dire qu'à ce moment là $_SESSION['num_membre'] n'existe pas.

    Fais voir un echo $_SESSION['num_membre']; et regarde ce qu'il te donne.

  5. #5
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 70
    Points : 66
    Points
    66
    Par défaut
    Salut,
    Tu essaies de tester une variable de session alors que tu ne sais même pas si une session est créée. (Je ne me sers pas d'easyphp mais tu peux vérifier dans un phpinfo si c'est bien le cas).
    En ajoutant au début de ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ini_set( 'session.auto_start'  , '1').
    tu es sûr que les sessions sont démarrées. Par défaut PHP n'active pas le démarrage de session automatique, il faut mettre un session_start(); au début de ton code.

    De même, je pense qu'un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    isset($_SESSION['num_membre'])
    est mieux que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['num_membre']!=""
    Sinon pour finir,
    ne jamais faire ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT num_cat FROM membres WHERE num_membre=".$_SESSION['num_membre'].";";
    Toute variable entrée dans une requête sql doit être contrôlée.
    Soit un intval(); si c'est un entier, sinon faut aller voir du coté de mysql_escape_string(); pour les chaines de caractères

  6. #6
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 20
    Points : 19
    Points
    19
    Par défaut
    Hum bah je voit pas trop en quoi ça dérange la variable, puisque de toute façon elle a été contrôlée avant mis en $_SESSION (enfin normalement on le fait :p) pour éviter qu'il y ai du sql injection.

    Sinon pour le reste oui +1, notament le != ""
    Par contre y a une différence entre la requête entre " ", et la même qu'on mettrai entre ' ' ? Car y a pas de caractère spéciaux dans des requêtes...

  7. #7
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 70
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par arcanum Voir le message
    Hum bah je voit pas trop en quoi ça dérange la variable, puisque de toute façon elle a été contrôlée avant mis en $_SESSION (enfin normalement on le fait :p) pour éviter qu'il y ai du sql injection.
    Alors la j'en mettrais pas ma main a couper xD. Il paraitrait que des variables de session sont stockées dans des cookies.

    Sinon entre ' le texte n'est pas interprété pour y trouver des variables alors qu'avec " oui donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT num_cat FROM membres WHERE num_membre=${_SESSION['num_membre']};";
    équivaut à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'SELECT num_cat FROM membres WHERE num_membre='.$_SESSION['num_membre'].';';

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    voilà j'ai essayé de faire un peu comme vous m'aviez dit et voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    <?php
    if (isset($_SESSION['num_membre']))
    		{
    			$sql = "SELECT num_cat FROM membre WHERE num_membre=".$_SESSION['num_membre'].";";
    			$curseur= mysql_query($sql);
    			$result = mysql_fetch_array($curseur);
    			if ($result[6] == 1)
    			{
    				if (isset($_GET["page"])) $page = $_GET["page"];
    				else $page = 0;
     
     
    				switch ($page) {
    					case 2 : include("menu2.php"); break;		
    					case 4 : include("menu2.php"); break;
    					case 5 : include("menu2.php");break;
    					case 6 : include("menu2.php");break;
    					case 7 : include("menu2.php");break;
     
     
    					default : include("menu1.php"); break;
    				}
     
     
    			}
    			else
    			if ($result[6] == 2)
    			{
    				if (isset($_GET["page"])) $page = $_GET["page"];
    				else $page = 0;
     
     
    				switch ($page) {
    					case 2 : include("menu2.php"); break;		
    					case 4 : include("menu2.php"); break;
    					case 5 : include("menu2.php");break;
    					case 6 : include("menu2.php");break;
    					case 7 : include("menu2.php");break;
     
     
    					default : include("menu1.php"); break;
    				}
    			}
    			else
    			if ($result[6] == 3)
    			{
    				if (isset($_GET["page"])) $page = $_GET["page"];
    				else $page = 0;
     
     
    				switch ($page) {
    					case 2 : include("menu1.php"); break;		
    					case 4 : include("menu1.php"); break;
    					case 5 : include("menu1.php");break;
    					case 6 : include("menu1.php");break;
    					case 7 : include("menu1.php");break;
     
     
    					default : include("menu1.php"); break;
    				}
    			}	
     
    		}
    ?>
    cela ne donne aucune erreur mais rien ne s'affiche :s je comprend pas trop d'où viens le problème !

  9. #9
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Fais voir un print_r de $result pour voir ce qu'il contient. Et puis je placerais des echo dans tes différents if et elseif pour voir dans lequel il rentre ou ne rentre pas...

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 25
    Points : 16
    Points
    16
    Par défaut
    Quand je fais comme tu dit il ne renvoie rien c'est comme si la requête était fausse alors que quand je la test sous mysql en remplaçant num_membre=".$_SESSION['num_membre']. par un num_membre qui existe sa m'affiche bien ce qu'il faut ! A vrai dire je n'y comprend plus grand chose :s

  11. #11
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Essaye ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $num_mbre = $_SESSION['num_membre'];
     
    if (isset($num_mbre))
    		{
    	$sql = "SELECT num_cat FROM membre WHERE num_membre='$num_mbre'";
    	$curseur= mysql_query($sql);
    ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Espace membre en php
    Par mitsukk1992 dans le forum Langage
    Réponses: 21
    Dernier message: 03/01/2015, 00h08
  2. Espace membre en PHP qui ne fonctionne pas
    Par make57 dans le forum Langage
    Réponses: 13
    Dernier message: 25/07/2014, 17h27
  3. [Article] Authentification d'un espace membre avec PHP
    Par Neckara dans le forum Sécurité
    Réponses: 0
    Dernier message: 17/08/2013, 15h38
  4. Cookie espace membre - redirection
    Par nicolas17550 dans le forum Langage
    Réponses: 1
    Dernier message: 20/05/2011, 15h09
  5. Réponses: 8
    Dernier message: 26/03/2006, 15h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo