Variables de session

Eléphant du PHP | 50 Messages

12 oct. 2005, 17:13

Bonjour,
J'essaye de faire passer des sessions d'une page à une autre et elles ne passent pas mais je ne vois pas pourquoi

page 1:
 //tests sur le login et mdp
// si c bon :
 session_start();
$_SESSION['login'] = $login;	
$_SESSION['mdp'] = $mdp;	
//à ce moment là $_SESSION['login'] et $_SESSION['mdp'] s'affichent
header("Location:admin2.php");

page admin2:
session_start();
echo $_SESSION['login'];
//pas d'affichage
Si quelqu'un voit d'ou ça peut venir ça me rendrait un grand service..
merci d'avance

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

12 oct. 2005, 17:26

D'où viennent $login et $mdp ?

S'ils ne sont pas instanciés avant, tu n'attribueras rien à tes variables de session
//tests sur le login et mdp
// si c bon :
session_start();
$_SESSION['login'] = "login";    
$_SESSION['mdp'] = "mdp";    
//à ce moment là $_SESSION['login'] et $_SESSION['mdp'] s'affichent
header("Location:admin2.php");
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 50 Messages

12 oct. 2005, 17:30

En fait je l'ai pas écris ici mais ces deux variables viennent du formulaire d'authentification

Code : Tout sélectionner

<FORM ACTION="admin_verif_connect.php" METHOD="POST"> Veuillez saisir vos identifiants< Login ::<INPUT TYPE="text" NAME="login"> Password ::<INPUT TYPE="password" NAME="mdp"> <INPUT TYPE="submit" VALUE="OK"> </FORM>
la page1 du post ci dessus c'est admin_verif_connect.php de celui ci
admin_verif_connect
<?
	include("connexion.php");
		connexion('base1');
	if(empty($_POST['login']) || $_POST['login']=="")
	{
		header("Location: admin.php?erreur=login");
		exit();	
	}
	if(empty($_POST['mdp']) || $_POST['mdp']=="")
	{
	header("Location: admin.php?erreur=mdp");
	exit();	
	}
	$login=$_POST['login'];
	$mdp=md5($_POST['mdp']);

$sql="SELECT * FROM logs WHERE login='$login' AND mdp='$mdp'" ;
$result=mysql_query($sql) or die ('erreur $sql : '.mysql_error()) ;
$rows=mysql_num_rows($result);	
	if($rows == 1)
	{
		session_start();
		$_SESSION['login'] = $login;	
		$_SESSION['mdp'] = $mdp;	
		header("Location:admin2.php");	
	}
	else
	{
		header("Location:admin.php?erreur=id");
	}
?>

Mammouth du PHP | 568 Messages

12 oct. 2005, 17:36

Peut-être est-ce du au fait que tu ne place pas session_start() en début de script...

La logique veux que ce soit le cas, tout du monde que tu le place avant tout affichage HTML... Un peu comme pour un header...

A priori, il pourrais y en avoir avec l'include("connexion.php")...

Enfin dans le doute, fait toujours :
<?
session_start();
...
...
Heddi s'est remis à développer pour lui même !
Martina Hingis - Étoile du Tennis
Heddi v. 2007

Eléphant du PHP | 50 Messages

12 oct. 2005, 17:39

ça marche pas mieux si je le met en debut de fichier :(

Mammouth du PHP | 568 Messages

12 oct. 2005, 17:45

Et tu es bien redirigé vers admin2.php (Tu passes bien dans le IF($rows==1) :?: )

Si oui, affiche entièrement admin2.php...
Heddi s'est remis à développer pour lui même !
Martina Hingis - Étoile du Tennis
Heddi v. 2007

Eléphant du PHP | 50 Messages

12 oct. 2005, 17:54

ouaip ça passe bien pas admin2

voici la page :
<?
session_start();

echo $_SESSION['login'];
	include("admin_SECU.php");
	include('connexion.php');
		connexion('base1'); 
?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>

<body vlink="#990000" alink="#990000" link="#000000">
blablabla
</body>
</html>
et admin_SECU tant que j'y suis :
	session_start();	
	if(!isset($_SESSION['login']))
	{
		echo 'pb de login';
	}
	elseif(!isset($_SESSION['mdp']))
	{
		echo 'pb de mdp';
	}		
	else
	{
	}

Eléphant du PHP | 50 Messages

12 oct. 2005, 17:58

info de dernière minute : ça marche sous FF...

Mammouth du PHP | 568 Messages

12 oct. 2005, 18:10

Alors là, je sèche...

Ton :
echo $_SESSION['login'];
affiche qqc sous FF et pas sous IE...

Regarde dans la source de la page dans IE voir si le login n'apparait pas tout de même...
Heddi s'est remis à développer pour lui même !
Martina Hingis - Étoile du Tennis
Heddi v. 2007

Eléphant du PHP | 50 Messages

12 oct. 2005, 18:14

non ça s'affiche meme pas dans la source...
je sèche aussi.. c la première fois que ça m'arrive...

Invité
Invité n'ayant pas de compte PHPfrance

12 oct. 2005, 19:59

SAlut, problème de cookie peut etre :-k
est ce que tu les accepte ?

Eléphant du PHP | 50 Messages

17 oct. 2005, 16:03

je pense qu'ils sont acceptés car sur d'autre site je n'ai jamais eu de problème de log...

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

18 oct. 2005, 10:27

Tu as bien vidé ton cache sous IE ? ton historique ? etc... ?
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Invité
Invité n'ayant pas de compte PHPfrance

18 oct. 2005, 22:48

:idea: euh juste comme ça c'est quelle version de php ?