Problème avec les sessions PHP

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 : Problème avec les sessions PHP

Re: Problème avec les sessions PHP

par moogli » 18 juin 2014, 08:08

Salut,

Qu'est ce le print_r($_SESSION) y' affiché ?

Je te conseil d'activer les erreurs et leur affichage (error_reporting = E_ALL et display_errors = on) tu devrais en avoir dans ton fichier de connexion.

Le problème viens du fait que tu confond l'égalité (==) et l'affectation (=) du coup $_SESSION['username'] == $username doit te retourner une erreur : undefined index username.
Ce qui est vrai vu quid tu souhaite comparer le contenu de $_SESSION['username'] avec $username.
La bonne syntaxe est $_SESSION['username'] = $username;

Même chose pour les autres

Attention le mot de passe n'est pas utile en session après tout l'utilisateur est déjà connecté ;)
Sinon ton test de vérification de connexion est correct (même si j'estime que la partie "password" ne devrait pas y être ;) )

@+

Re: Problème avec les sessions PHP

par sirakawa » 18 juin 2014, 08:02

Mets donc le session_start comme première instruction;
tu fais suivre de
$_SESSION['username'] = "";

Re: Problème avec les sessions PHP

par Meryem » 18 juin 2014, 02:11

Tout d'abord je vous remercie pour vos réponses :)
voila le code la page traitement d'authentification que j'utilise:
<?php

  include('connect.inc');
  include('fonction.php');

      $username=$_POST['username'];
	  $password = md5($_POST["password"]) ;
	  $sql="select * from cheminot";
	  $row=mysql_query($sql);
	  $nbr=mysql_num_rows($row);
	  while($res=mysql_fetch_array($row)){
		  if($username==$res['username'] && $password==$res['password'] && $res['type']=='administrateur'){
			 session_start();
			 $_SESSION['username']==$username;
			 $_SESSION['password']==$password;
			 
             header('location:espaceadmin.php');
          
			  
			  }
			  if($username==$res['username'] && $password==$res['password'] && $res['type']==''){
			 session_start();
			 $_SESSION['username']==$username;
			 $_SESSION['password']==$password;
			 
             header('location:espaceuti.php');
          
			  
			  }
			  else {
			  alert('Username ou password est incorrect');}
			  
	  }
?>
J'ai testé avec ce que vous m'avez donné mais ça n'a pas marché :/
Merci pour votre aide!

Re: Problème avec les sessions PHP

par Elie » 17 juin 2014, 23:50

Fait un print_r($_SESSION) apres ton session_start() pour voir ce qui est enregistré

Re: Problème avec les sessions PHP

par ZeCreamer » 17 juin 2014, 23:28

Bah, on aurait plutot besoin de voir comment tu crée la variable de session à la connexion du membre. Juste avec ce que tu nous montre, on devine que probablement ta session n'existe tout simplement pas, OU, tu as pas entré de donnée à l'interieur.

Mais un simple test du genre
if( !isset( $_SESSION['user'] ) ){
   header('location:/');

}
fonctionnera à merveille !
Si la session user existe, bah, le membre, il est connecté hein :)
Pas besoin de faire le test sur le mot de passe, de toute manière, à mon sens, le mot de passe ne devrais jamais être dans une variable de session, puisque techniquement, tu ne t'en servira pas pour afficher nul part, ni faire un test quelqu'il soit, sauf, pour la connexion, et, à la connexion, la variable de session n'existe pas !

Problème avec les sessions PHP

par Meryem » 17 juin 2014, 22:25

Bonsoir, Svp j'ai besoin de votre aide :
j'utilise dans chaque fichier.php un code de php de session mais le problème c'est que quand je me connecte il me redirige vers la page d'accueil même si je me suis déjà authentifié voila le code :
<?php
session_start();r
if(empty($_SESSION['username']) && empty($_SESSION['password'])) 
{
  header('Location: index.php');
  exit();
}
?>