Confusion entre $_SESSION['login'] et $login

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 : Confusion entre $_SESSION['login'] et $login

par Truc » 01 mai 2006, 17:46

Pour en être sûr un phpinfo() dans une page.

par Nico128 » 01 mai 2006, 17:23

Salut,

Soit c'est pour une histoire de register_globals qui est à ON soit un problème de script. Par exemple si tu inclus ton fichier de connexion après avoir défini la variable $login avec quelque chose dans ce genre
Voilà ce que j'avais mis:
include ("news/conf.inc.php");
@MYSQL_CONNECT ($host,$login,$pass) or die ("Erreur, connexion à la base de données impossible");
mysql_select_db($base);

if ($envoyer != "")
	{
	
	  if(isset($_SESSION['login']))
  		{
 		$nom = $_SESSION['login'] ;
 		}
		else
  		{
  		$nom = 'Visiteur ['.$_POST['pseudo'].']';
		}
Dans la page qui bugait j'avais jamais mis $login = $SESSION['login'] par contre dans une autres pages qui marche pour se connecté au site j'avais mis ça, mais je pense pas que c'est du a sa.

Ca doit surement etre cette variable globale, je me rapelle d'une fois ou j'avais réussi a récupéré la valeur dans l'URL alors que j'avais pas mis $_GET et je comprenais pas pourquoi ^^

Et ben merci de m'avoir éclaircit!

@++

par Ryle » 01 mai 2006, 15:04

Sans doute la variable register_globals est elle active sur ton serveur php. Elle permet d'appeller les variables passée en GET, POST, SESSION et COOKIE directement : au lieu de $_GET['var'] tu peux directement utiliser $var, et de même $_SESSION['var'] est équivalent dans ce cas à utiliser $var.

Pour des raison de sécurité assez évidente (sinon y a plein de topic qui les développent en détail) cette variable est maintenant désactivée par défaut obligeant ainsi à passer par les variables super globales ($_GET['var'] n'a alors rien à voir avec $var).

Mais comme cela implique beaucoup de modification pour les sites qui n'ont pas été conçu comme ça des le départ (passer tous les $toto en $_POST['toto']), la plupart des hébergeurs la laissent encore active, d'où ton problème à mon avis :)

par Truc » 01 mai 2006, 15:01

Salut,

Soit c'est pour une histoire de register_globals qui est à ON soit un problème de script. Par exemple si tu inclus ton fichier de connexion après avoir défini la variable $login avec quelque chose dans ce genre:
$login = $_SESSION['login'];

include(fichier de connexion); // contenant une variable $login

echo $login; //affichage du login du fichier de connexion et non celui de session qui a été écrasé.

Confusion entre $_SESSION['login'] et $login

par Nico128 » 01 mai 2006, 14:54

Salut tous !

Sur certaine page de mon site je voulais afficher $_SESSION['login'] qui a la valeur du login du membre. Mais parfois ça n'affichait pas son login mais le nom de mon site :shock:

J'ai réussi a voir sur quelles page ça le faisais, et après avoir supprimer tout des ptit bout de script, j'ai vu que le problème venait de $login, qui avait la valeur du login de ma base de donnée.

En résumé, $_SESSIOn['login'] n'avait pas la valeur du login du membre mais la valeur de la variable $login :?

Bon c'est pas si grave j'ai juste changer la variable $login en $user comme ça il n'y a plus de confusion, mais j'aurais voulu savoir pourquoi ça faisait ça ?

Merci d'avance :D