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

PHP & Base de données Discussion :

$_SESSION pour page admin


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2011
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 77
    Points : 32
    Points
    32
    Par défaut $_SESSION pour page admin
    Bonjour,

    Je développe une site web en php/mysql.
    Je n'arrive pas a garder la session a travers mes pages...

    Pour accéder aux pages d'administration, il faut se connecter.

    vérifiation des infos du formulaire + création de la variable de session
    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
     
    <?php
    session_start(); 
    include ('ouverture_db.php');
     
    // desciption pas obligatoire !
    if (isset($_POST['username']) && isset($_POST['password']))
    {
    	$ConnexionLogin   =   $_POST['username'];
    	$ConnexionMdp     =   $_POST['password'];
     
            $TestConnexion = mysql_query("SELECT * FROM connexion 
                                          WHERE connexion_login = '".$ConnexionLogin."' AND connexion_mdp = '".$ConnexionMdp."'"); 
     
            if (mysql_num_rows($TestConnexion) < 1)	
            { 
               header('Location: ../connexion.php'); 
            } 
     
            if (mysql_num_rows($TestConnexion) > 0)	
            { 
                $_SESSION['valid_user'] = "OK";
     
                header('Location: ../admin_suppr_rubr.php'); 
            }        
    }
    ?>
    vérification de la connexion en vue d'afficher la pages admin
    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
     
    <html>
    <?php
     
        if(isset($_SESSION['valid_user'])) 
        { 
            $valid = $_SESSION['valid_user']; 
            if( $valid == "OK" ) 
            {
    ?> 
                <body>
                    <div id="corps">                 
    		     <!-- Mon contenu admin-->
                    </div>
                    </body>    
            <?php
            }
            else
            {
                header('Location: connexion.php');
            }
    }
            ?>
    </html>
    Bien entendu, le code ne fonctionne pas...
    Pouvez-vous me dire si j'utilise correctement les $_SESSION ?

    Merci d'avance,
    Arsenik

  2. #2
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 022
    Points : 2 273
    Points
    2 273
    Par défaut
    Salut,
    il faut utiliser session_start() sur toutes les pages où tu veux conserver ta session, d'autre part, il ne faut envoyer aucun caractère avant le session_start().
    Vive les roues en pierre

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2011
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 77
    Points : 32
    Points
    32
    Par défaut
    Merci pour ta réponse :-)

    J'ai rajouter la session_start

    voici ma page admin :

    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
     
    <?php
         session_start();
    ?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <?php
        include("header.html");
     
        if(isset($_SESSION['valid_user'])) 
        { 
            $valid = $_SESSION['valid_user']; 
            if( $valid == "OK" ) 
            {
    ?> 
                <body>
                    contenu de ma page	
                </body>
     
            <?php
            } // fin vérification si la session = ok !  
            else
            {
                header('Location: connexion.php');
            }
    } // fin vérification si une session est envoyée
    else
    {
        header('Location: connexion.php');
    }
            ?>
     
     
    </html>
    Lorsque que je me connecte, je suis bien diriger vers la page d'administration.
    La déconnexion me redirige bien vers la page de log.

    Ceci dit, mm si dans l'url, j'entre la page d'administration, celle-ci se charge....
    Une idée :-/

    Cordialement
    Arsenik

  4. #4
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 022
    Points : 2 273
    Points
    2 273
    Par défaut
    Est-ce que tu supprimes bien ta variable $_SESSION['valid_user'] sur la page de déconnexion ?
    Vive les roues en pierre

  5. #5
    Nouveau membre du Club
    Inscrit en
    Février 2011
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 77
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par Djakisback Voir le message
    Est-ce que tu supprimes bien ta variable $_SESSION['valid_user'] sur la page de déconnexion ?
    Oui, mon script de déconnexion :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    session_start();
     
    if (isset($_POST['deconnexion']))
    {
        session_destroy(); 	
    }
     
    header('Location: ../connexion.php');
     
    ?>

  6. #6
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    juste de passage ta un souci de sécurité avec les injections sql.
    http://securite.developpez.com/faq/?page=dev_app

  7. #7
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 022
    Points : 2 273
    Points
    2 273
    Par défaut
    Le code me semble correct, t'es sûr que session_destroy() est appelée ? il y a peut-être une erreur dans le nom du champ post, tu peux tester :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (isset($_POST['deconnexion']))
    {
    echo 'destruction de session';
        session_destroy(); 	
    }
    Vive les roues en pierre

  8. #8
    Nouveau membre du Club
    Inscrit en
    Février 2011
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 77
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par redoran Voir le message
    juste de passage ta un souci de sécurité avec les injections sql.
    http://securite.developpez.com/faq/?page=dev_app
    Merci, je vais jeté un coup d'oeil la dessus

    Citation Envoyé par Djakisback Voir le message
    Le code me semble correct, t'es sûr que session_destroy() est appelée ? il y a peut-être une erreur dans le nom du champ post, tu peux tester :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (isset($_POST['deconnexion']))
    {
    echo 'destruction de session';
        session_destroy(); 	
    }
    (à moins que ce soit le header après le session_destroy() mais il me semble avoir déjà utilisé cette méthode)
    Je pense avoir compris....
    Dans mon projet, le menu est différent s'il on est connecter ou pas.
    Une fois connecter, les onglets 'administration' et 'decnnexion' sont ajoutés

    Le lien du menu 'deconnexion' est lier au script mais je n'y envois rien, (pas de $_POST) dc on n'entre pas dans le 'if'....

    Merci d'avoir pris le temps de m'aider ;-)
    Je v regarder apres l'injonction sql ;-)

Discussions similaires

  1. Cout pour une création d'une page admin
    Par iluvatar75 dans le forum Devis
    Réponses: 0
    Dernier message: 28/05/2014, 10h27
  2. Problème pour accéder à la page Admin
    Par Jiyuu dans le forum Django
    Réponses: 13
    Dernier message: 21/12/2010, 20h19
  3. 10g: à part OEM, quel outil Oracle pour l'admin ?
    Par smartiz dans le forum Entreprise Manager
    Réponses: 11
    Dernier message: 01/09/2005, 12h45
  4. [TOMCAT]probleme ouverture page admin
    Par lthomas dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 24/08/2005, 15h08

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