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 :

authentification un peu trop présente


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut authentification un peu trop présente
    Bonjour,

    J'ai réalisé une page d'administration à laquelle l'accès n'est autorisé qu'après authentification. J'ai inséré dans cette page un code qui permet de vérifier si l'utilisateur est bien connecté, et s'il ne l'est pas il est redirigé automatiquement vers le formulaire de connexion. Jusque là tout va très bien.

    Le problème est qu'une fois connecté, lorsque l'utilisateur veut naviguer d'une page à l'autre, il est toujours renvoyé sur le formulaire de connexion.
    Moi j'aimerais qu'on ne puisse pas acccéder à la page admin et les autres qu'en étant connecté, mais une fois que cela est fait que la navigation se passe naturellement.

    Voilà le code qui vérifie si la personne est bien connectée:
    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
    <?
    session_start();
    include("connexion.php");
    /* 
    si la variable de session login n'existe pas cela siginifie que le visiteur 
    n'a pas de session ouverte, il n'est donc pas logué ni autorisé à
    acceder à l'espace membres
    */
    if(!isset($_SESSION['login'])) {
      echo '<font color="#FF33FF">Vous n\'êtes pas autorisé à accéder à cette zone; veuillez d\'abord vous identifier.</font>';
      include('login.html');
      exit;
    }
     
    ?>
    Pour le reste de la page, elle affiche un tableau avec des données provenant de la base. Comme ces données sont nombreuses, je les ai réparties sur plusieurs pages, et je n'affiche que 30 résultats par page. Le problème se présente lorsqu'on veut naviguer d'une page à l'autre.

    Si vous avez besoin de plus de renseignements, je vous les fournirai sans problème!

    Merci d'avance pour votre aide...

  2. #2
    Nouveau membre du Club
    Inscrit en
    Octobre 2002
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 9
    Par défaut
    Salut à toi,

    A tout hasard, as tu bien placé un session_start() en haut de tes pages ? Hormis la page de connection ?

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Par défaut
    A tout hasard aussi, tu as quoi dans connexion.php ?

  4. #4
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    $_SESSION['login'] n'est pas isset ce qui signifie qu'il n'a ni été déclaré ni valorisé.

    Le problème se situe dans la page d'action du formulaire de login.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Voici le code de la page login:


    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
    <?
    // connexion à la BDD
    include("connexion.php");
     $select = mysql_select_db($base);
     //Vérification des variables
    if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['password'])) {
      extract($_POST);
      // on recupère le password de la table qui correspond au login du visiteur
      $sql = "select password from admin where login='".$login."'";
      $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
     
      $data = mysql_fetch_assoc($req);
      if($data['password'] != md5($password)) {
        echo '<font color="#FF33FF">Mauvais login / password. Merci de recommencer</font>';
        include('login.html'); // On inclut le formulaire d'identification
        exit;
      }
      else {
        session_start();
     
     $_SESSION['login'] = $login;
     
         include('admin.php');   
         exit;
        // ici vous pouvez afficher un lien pour renvoyer
        // vers la page d'accueil de votre espace membres  
      }    
    }
    else {
      echo '<font color="#FF33FF">Vous avez oublié de remplir un champ.</font>';
       include('login.html'); // On inclut le formulaire d'identification
       exit;
    }
     
     
    ?>
    Il doit bien y avoir un problème quelque part, mais j'ai beau relire mon code je ne le trouve pas...

  6. #6
    Nouveau membre du Club
    Inscrit en
    Octobre 2002
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 9
    Par défaut
    Hum, qu'on me lynche si je me trompe, mais le session_start() ne devrait il pas être en haut de page, avant tout autre caractères, plutôt qu'imbriqué dans le if ?

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

Discussions similaires

  1. Communication Série un peu trop lente?
    Par SimonBrodeur dans le forum VB 6 et antérieur
    Réponses: 22
    Dernier message: 16/01/2006, 15h41
  2. Erreur de lien un peu trop long...
    Par babemagus dans le forum MFC
    Réponses: 2
    Dernier message: 14/06/2005, 11h30
  3. Requête un peu trop compliqué pour moi
    Par Kokito dans le forum Langage SQL
    Réponses: 5
    Dernier message: 18/04/2005, 16h17

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