Page 1 sur 1
probleme de session
Posté : 08 mars 2005, 14:23
par Invité
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.
Posté : 08 mars 2005, 14:29
par flitox
Dis-leur de passer sous Firefox
En plus ils ont tout à y gagner !!! (même si je suppose que intranet > entreprise > restrictions...)
Posté : 08 mars 2005, 14:33
par robined
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.
Posté : 08 mars 2005, 14:40
par Jerem'
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

Posté : 08 mars 2005, 14:45
par robined
merci pour l'info...
Est-ce quelqu'un a une solution car ca me serait super pratique d'avoir plusieures sessions.
Posté : 08 mars 2005, 14:46
par flitox
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'];
Posté : 08 mars 2005, 14:52
par robined
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?
Posté : 08 mars 2005, 14:54
par flitox
Sur deux sessions? Pourquoi?
Tu travailles sur une session je comprends pas pourquoi 2?
Posté : 08 mars 2005, 15:00
par robined
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...
Posté : 08 mars 2005, 15:05
par flitox
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 !
Posté : 08 mars 2005, 15:10
par robined
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.
Posté : 08 mars 2005, 15:17
par flitox
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.
Posté : 08 mars 2005, 15:22
par robined
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.