probleme de session

Invité
Invité n'ayant pas de compte PHPfrance

08 mars 2005, 14:23

Bonjour a tous,

J'ai une page de test qui affiche la saison en cours d'utilisation et identifiée par deux variables de session.

voila le code:

<html>
<head>
</head>
<body text="#000060" link="#b05020" vlink="#b05020" alink="b05020">
Session ouverte sur l'Intranet<br>
Base de données en cours d'utilisation:<br>
<?
if($HTTP_SESSION_VARS['session_annee1'])
print "<b>SAISON $HTTP_SESSION_VARS[session_annee1]-$HTTP_SESSION_VARS[session_annee2]</b>";
?>
<br><br>
<a href="#" onClick="self.close();">Fermer la Fenetre</a>
</body>
</html>

A priori tout simpla mais il ne m'affiche pas la page sous IE et me fait revenir directement à l'index du site.
Note: sous Firefox, ca marche correctement mais mes utilisateurs se servent de IE alors...

Merci de bien vouloir m'aider.

Mammouth du PHP | 859 Messages

08 mars 2005, 14:29

Dis-leur de passer sous Firefox :lol:

En plus ils ont tout à y gagner !!! (même si je suppose que intranet > entreprise > restrictions...)

Eléphant du PHP | 92 Messages

08 mars 2005, 14:33

c'est bien ca, intranet, restrictions, ...

mais sur firefox, j'ai également un pb avec les sessions.

En fait je voudrais avoir la possibilité de travailler sur 2 saisons en même temps sur deux fenetres differentes biensur mais je me retrouve toujours avec une seule session.

Peut-etre faudrait-il creer un nom de session par page mais je trouve ca un peu lourd.

Ou alors ca vient du php.ini mais je ne trouve pas la ligne a modifier.

Eléphant du PHP | 334 Messages

08 mars 2005, 14:40

Les sessions fonctionnent par navigateur, et non pas par fenêtre.

Tu peux avoir 10 fenêtes Firefox ou IE, la session sera toujours la même :)

Eléphant du PHP | 92 Messages

08 mars 2005, 14:45

merci pour l'info...

Est-ce quelqu'un a une solution car ca me serait super pratique d'avoir plusieures sessions.

Mammouth du PHP | 859 Messages

08 mars 2005, 14:46

Ta session est créée comme suit suite au remplissage du formulaire pour se logguer :
session_start();
$_SESSION['pseudo'] = $pseudo;
$_SESSION['password'] = $password;
Une fois ta session en cours, tu places un code dans ce genre en haut de chaque page. Il contrôle que la session est toujours en cours et éjecte l'utilisateur si celui-ci est déloggué.
<?
session_start();
$pseudo = $_SESSION['pseudo'];
$password = $_SESSION['password'];

@mysql_connect(host,user,pass) or die("Impossible de se connecter à la base de données");
@mysql_select_db(bdd) or die("Impossible de se connecter à la base de données");
				
$query = "SELECT login,pwd FROM admin WHERE login='$pseudo' AND pwd='$password'";
$result = mysql_query($query);

if(mysql_num_rows($result) == 0)
	{
		header ("Location: formulaire.php");
		exit;
	}
mysql_close();
?>
Ce code fait passer ta session de page en page :

Code : Tout sélectionner

session_start(); $pseudo = $_SESSION['pseudo']; $password = $_SESSION['password'];

Eléphant du PHP | 92 Messages

08 mars 2005, 14:52

es-tu sur qu'avec ça un utilisateur qui s'authentifie correctement puise travailler sur deux sessions differentes?

Et pour le probleme d'IE, quelqu'un a une soluce?

Mammouth du PHP | 859 Messages

08 mars 2005, 14:54

Sur deux sessions? Pourquoi?

Tu travailles sur une session je comprends pas pourquoi 2?

Eléphant du PHP | 92 Messages

08 mars 2005, 15:00

En fait ca marche comme ca,


J'ai une base de données par saison, c'est a dire qu'on peut avoir 2003-2004 et 2004-2005,
et j'ai des connection dessus dans tout mon intranet.

Ce que j'ai déja fait c'est que l'utilisateur saisit sa saison et que les connexions travaillent sur la base correspondante.

Le probleme est que si l'utilisateur ouvre une autre page et veut se connecter à la saison 2003-2004 alors qu'il a déja une page sur 2004-2005, avec une session, les deux fenetres passent en 2004-2005.
Mon objectif est donc d'avoir 2 sessions actives pour une meme personne.

Je sais pas si c'est très clair...

Mammouth du PHP | 859 Messages

08 mars 2005, 15:05

Si je comprend mais si ils peuvent accéder à 2003-2004 et 2004-2005, pourquoi faire 2 sessions?

Pourquoi ne pas passer une autre valeur dans la session qui indique la saison sur laquelle est l'utilisateur? Ca t'éviterait bien des tracas...

Chaque fois que ton utilisateur passe d'une saison à l'autre, la valeur faisant référence à la saison dans la session est modifiée et comme ça il conserve une session unique.

C'est bien plus simple !

Eléphant du PHP | 92 Messages

08 mars 2005, 15:10

j'ai deja une variable qui indique la saison dans ma session, c'est justement la qu'est le porbleme.

En fait il me faut une session par fenetre mais pour le serveur local, il faut que je puisse avoi deux sessions differentes qui pointent sur deux saisons differentes et deux fenetres differentes.

Mammouth du PHP | 859 Messages

08 mars 2005, 15:17

Mais la session marche fenêtres séparées ou pas, Jerem' te l'as déjà dit :
Les sessions fonctionnent par navigateur, et non pas par fenêtre.

Tu peux avoir 10 fenêtes Firefox ou IE, la session sera toujours la même Smile
Donc je reste sur mon idée que 2 sessions sont inutiles et qu'une seule peut gérer les 2 saisons.

Eléphant du PHP | 92 Messages

08 mars 2005, 15:22

bon OK, j'avais bien compris jerem' mais en fait c'est pas exactement comme je voulais faire.

C'est pas grave, je vais essayer de faire comme tu dis et voir si ca fonctionne

Merci pour vos réponses.