Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Shop Recherche
2369 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Problème session

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème session

n°1870225
willy54
Posté le 06-04-2009 à 18:01:20  profilanswer
 

Bonjour,
 
J'ai un petit problème avec les variables enregistrées dans une session, que ce soit chez sfr ou sur xampp. Je m'explique:  
 

Code permettant la connexion:

 
<?
$db = mysql_connect('localhost', '****, '******');
mysql_select_db('test',$db);  
 
if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) {
  extract($_POST);
 
  $sql = "select pwd from tbl_user where login='".$login."'";
  $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
 
  $data = mysql_fetch_assoc($req);
 
  if($data['pwd'] != $pass) {
    echo '<p>Mauvais login / password. Merci de recommencer</p>';
    include('login.htm');  
    exit;
  }
  else {
    session_start();
    $_SESSION['login'] = $login;
     
    echo 'Vous etes bien logué';
 echo "$login";
  }    
}
else {
  echo '<p>Vous avez oublié de remplir un champ.</p>';
   include('login.htm');
   exit;
}
 
 
?>

 

 
Code de la page réservée aux connectés:

 
<?
session_start();
if(!isset($_SESSION['login'])) {
  echo 'Merci de vous connecter.';
  include('login.htm');
}
else
{
echo "Bonjour $login !";    <  ----------------------- le problème se situe là
}
?>

 
Voilà. Donc sur la page réservée aux connectés, lorsque quelqu'un est connecté son pseudo ne s'affiche pas (lorsque j'étais chez un autre hébergeur ça fonctionnait). J'aimerai savoir comment résoudre ce problème, sans avoir à mettre echo "$_SESSION[login]";

mood
Publicité
Posté le 06-04-2009 à 18:01:20  profilanswer
 

n°1870231
Profil sup​primé
Posté le 06-04-2009 à 18:07:43  answer
 

Bon.
Ton code est une catastrophe en terme de sécurité et de performances.
D'abord, pour répondre à ta question. Le problème que tu rencontres vient de register_globals qui est désactivé. Lis ceci et tu sauras quoi faire :
http://fr.php.net/manual/fr/security.globals.php
 
Ensuite, si tu as pris la peine de lire le lien précédent, tu comprendras qu'il ne faut pas utiliser extract pour des données GET, POST, COOKIE ou SESSION parce que cela simule le comportement de register_global.
 
Autre chose : tu ne sécurises pas tes variables avant de les utiliser dans une requête, ton site est vulnérable aux injections SQL (faire une recherche google pour en savoir plus).
Utiliser mysql_real_escape_string pour échapper tes données (voir la doc de php, php.net).
 
Enfin, un problème de quotes :

Code :
  1. echo "$login"; // est inutile
  2. echo $login; // est mieux
  3.  
  4. echo "bla bla " . $var . " bla bla"; // est inutile
  5. echo "bla bla $var bla bla"; // est mieux

n°1870403
willy54
Posté le 07-04-2009 à 09:44:45  profilanswer
 


 
Ok merci :) Donc apparement il est déconseillé d'activer register_globals?


Message édité par willy54 le 07-04-2009 à 09:46:06
n°1870414
stealth35
Posté le 07-04-2009 à 10:05:17  profilanswer
 


 
je suis pas forcement d'accord, car ca devient tres vite illisible (apres ca depend des cas)

n°1870415
Profil sup​primé
Posté le 07-04-2009 à 10:08:08  answer
 

oui très, pour des raisons de sécurité et pour d'autres raisons encore (voir cette page http://forum.hardware.fr/hfr/Progr [...] m#t1849860 )
 
Autre chose : tu n'as qu'un user dans ta table tbl_user ? (je te demande car tu ne vérifies que le premier utilisateur sorti par le SELECT)

n°1870444
willy54
Posté le 07-04-2009 à 10:35:42  profilanswer
 


 
Non plusieurs.

n°1870449
Profil sup​primé
Posté le 07-04-2009 à 10:38:53  answer
 

ah oui ok pardon.
Mais tu peux faire çà directement :

Code :
  1. SELECT * FROM tbl_users WHERE login = '$login' AND pass = '$pass'


Et ensuite tu regardes avec mysql_num_rows si tout est ok ;)

n°1870469
willy54
Posté le 07-04-2009 à 10:52:06  profilanswer
 


 
Merci bien :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Problème session

 

Sujets relatifs
Gros problème de sessionIE7 et problème de session php HELP8
probléme $_SESSION dans IE7Problème de session: deconnexion.
Problème de sessionproblème avec "ALTER SESSION SET NSL_TERRITORY" [résolu]
[PHP] Probleme mise en place de sessionproblème avec une variable de session
[Java, JSP, Servlet] Problème de session[Résolu] Problème avec les variables de session
Plus de sujets relatifs à : Problème session


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR