Session

Résolu
Ibilolz Messages postés 130 Date d'inscription   Statut Membre Dernière intervention   -  
Nhay Messages postés 838 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je m'apelle Thomas, je suis actuellement en 2ème année d'IUT Réseaux et Télécoms et j'effectue un stage d'informatique pour la validation de celui-ci. Je ne suis pas un "pro" de la prog, mais j'aime ce que je fais même si à la base je suis plus compétant en réseaux. Je suis entrain de développer une petite platforme de demande de maintenance et de visualisation de l'inventaire informatique du lycée (=+400 postes) .J'écris pour demander une petite aide dans l'établissement de ma session. J'ai codé une interface administrateur et une interface user. J'ai ensuite une page hml/css de connection avec login,mdp et un bouton valider. Ce que j'ai envie c'est que l'utilisateur soit redirigé vers son interface en fonction des identifiants qu'il rentre. J'arrive à me connecter et à me rediriger, j'ai même la petite fenêtre de demande de mdp en cache qui s'ouvre pour me demander de le garder. Seulement une fois sur l'interface j'ai l'impression de ne pas être connecté, j'ai rajouté un bout de code pour voir si la variable session user était présente et il me dit non. En gros j'ai l'impression que mes variables de sessions ne se propagent pas dans mon site et que rien est retenu. J'ai étudié les sessions, compris leur fonctionnement. Je ne veux pas d'inscription sur mon site, juste une connexion et une deco. Si tu pouvais m'aider ce serai vraiment sympa, je dois rendre ce projet demain et je bloque sur ma session ..

Voici la page html de connexion :

<head>
  <meta charset="utf-8" />
  <link rel="stylesheet" href="style.css">
  <title>Connexion</title>
</head>
<div>
  <p align="center"><img src="logo.png" alt="logo" id="StEx"/></p>  
</div>
<body>
  <h2></h2>
  <div class="ribbon"></div>
  <div class="login">
  <h1>Inventory Project</h1>
  <p>Accédez à l'inventaire du matériel et la demande de maintenance</p>
  <form action="login.php" method="post">
    <div class="input">
      <div class="blockinput">
      <input type="text" placeholder="Login"  name="username" id="username">
      </div>
      <div class="blockinput">
      <input type="password" placeholder="Password" name="password" id="password">
      </div>
    </div>
<button>Connexion</button>
  </form>
  </div>
</body>


J'ai mes 2 champs username et password. J'ai ma BD fonctionnelle avec une table users qui contient ces données.

Voici ma page login.php (je sais que les mdp ne sont pas hachés, que la prog peut faire débutant, je compte le faire mais je voudrais d'abord régler cette page pour le principe)

<?php
include 'fonctions.connect.php';

  if(isset($_POST['username'], $_POST['password']))
        {
                //On echappe les variables pour pouvoir les mettre dans des requetes SQL
                if(get_magic_quotes_gpc())
                {
                        
                        $username = mysql_real_escape_string(stripslashes($_POST['username']));
                        $password = stripslashes($_POST['password']);
                }
                else
                {
                        $username = mysql_real_escape_string($_POST['username']);
                        $password = $_POST['password'];
                }
                //On recupere le mot de passe de lutilisateur
                
                $req = mysql_query('select password,id from users where username="'.$username.'"');
                $dn = mysql_fetch_array($req);
                //On le compare a celui quil a entre et on verifie si le membre existe
                if($dn['password']==$password and mysql_num_rows($req)>0)
                {
                        //Si le mot de passe es bon, on ne vas pas afficher le formulaire
                        $form = false;
                        //On enregistre son pseudo dans la session username et son identifiant dans la session userid
                        $_SESSION['username'] = $_POST['username'];
                        $_SESSION['userid'] = $dn['id'];  
                        session_start();
                          if($_POST['username']=='root1' && $_POST['password']=='saintex01')
      { 
            header("location: /admin/index.php" ); 
        
             }
              else
     {
     
          header("location: /User/index.php" );
                 
        }
                        
                        
                        
}  
  else
  {}

}
?>     


Au début de ma page après redirection j'ai placé le code suivant :

<?php
session_start();


if(!isset($_SESSION['username'])) {
  echo 'Vous n\'êtes pas autoris' à acceder à cette zone';
  header("location: /Acceuil/index.php" );
  exit;
}
?>


Et si je mets

<?php

if (isset($_SESSION['username']) && $_SESSION['username'] != '')
{
    echo 'user connecté';
}
else
{
    echo 'user non connecté';
}

?>


il me dit que je ne suis pas connecté. Merci d'avance de lire et de prendre le temps de me répondre.

Thomas.

1 réponse

Nhay Messages postés 838 Date d'inscription   Statut Membre Dernière intervention   126
 
Bonjour,
Tu a un soucis à ce niveau déjà :
$_SESSION['username'] = $_POST['username'];
$_SESSION['userid'] = $dn['id'];  
session_start();


Ton session_start doit être utilisé AVANT toutes utilisations d'une variables de session.
0