PHP IE ne retient pas variable SESSION

Fermé
Gaël - Modifié par Gaël le 12/10/2011 à 15:56
 Gaël - 12 oct. 2011 à 17:29
Bonjour, j'ai créé mon site récemment en (x)Html/CSS et PHP.
Ce site est réservé à certaines personnes uniquement mais je ne souhaitais pas faire une page entière où l'identifiant et le mot de passe sont demandés.
Enfin de ne pas trop encombrer le site, j'ai seulement ajouté sur la page d'accueil une genre de boîte qui s'ouvre au milieu de la fenêtre (le reste de la page s'assombrit en même temps) quand le visiteur arrive. Dans cette boîte, j'ai mis un formulaire pour que les visiteurs rentrent l'identifiant que je leur ai donné. Une fois qu'ils ont cliqué sur le bouton "Valider", la boîte s'enlève et la page redevient normale.
Mon site fonctionne avec des php include, c'est à dire que j'ai une seule page dans laquelle j'inclus le contenu suivant l'url : index.php?page=annexe.php => la page est toujours index.php mais elle contient un contenu différent.
Donc le problème est là : sur Opera et Mozilla Firefox, tout fonctionne, une fois que j'ai rentré l'identifiant, une variable SESSION se crée et donc le visiteur n'a plus besoin de rerentrer l'identifiant tant que le navigateur n'est pas fermé. Mais sur Internet Explorer (comme par hasard !) à chaque fois que je vais sur une nouvelle page, l'identifiant est demandé ce qui est très embêtant.
Si quelqu'un à la solution à ce problème, merci de m'aider !

Le code :
<?php 
session_start(); 
if (isset($_POST['connect']) AND $_POST['connect'] == "code") // Si l'identification est correct 
 { 
 $_SESSION['connect'] = $_POST['connect']; 
 } 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > 
 <head> 
  <title>PPE | Robotique</title> 
  <meta http-equiv="content-Type" content="text/html; charset=iso-8859-1" /> 

  <link rel="stylesheet" media="screen" type="text/css" title="design" href="styles/style.css" /> 

   </head> 
<body> 
<?php 
 if (isset($_SESSION['connect']) AND $_SESSION['connect'] == "code") 
 { 
 } 
 else 
 { 
?> 
<div class="connexion"> 
<h4>Veuillez entrer votre identifiant<br/>afin d'accéder au site :</h4> 
  <form action="index.php?page=index.php" method="post"> 
   <p>Identifiant :  
   <input type="text" name="connect" class="texte"/></p> 
   <p><input type="submit" value="Valider" class="valider"/></p> 
   </p> 
  </form> 
</div><div class="cache"></div> 
<?php ; 
 } 
?> 
</body> 
</html>




1 réponse

avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
12 oct. 2011 à 16:06
Salut,

Vérifie que les cookies soient activés.
0
Je viens d'autoriser tous les cookies et effectivement, cela fonctionne. Serait-il possible de contourner ce problème ? Sinon, toutes les personnes qui ont IE en mode de confidentialité par défaut auront ce problème très gênant.
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
12 oct. 2011 à 16:32
Les personnes ayant activé ce mode doivent avoir l'habitude de ne pas pouvoir se connecter sur n'importe quel site : les sessions ont besoin d'un cookie pour stocker l'identifiant unique de la session (phpsessid).

Tu peux activé l'option session.use_trans_sid pour un site restreint, mais à éviter sur un site public car il est possible de se faire voler sa session en partageant une URL.
0
Sachant que beaucoup de personnes utilisent encore Internet Explorer, je ne vais pas demander de désactiver les cookies (sachant que ceratins ne sauront pas faire). Comment retenir l'identifiant sur chaque page ? Beaucoup de sites utilisent des mots de passe et malgré que les cookies ne soient pas autorisés, tout fonctionne, alors comment faire dans mon cas ?
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
12 oct. 2011 à 16:34
Justement il ne faut pas désactiver les cookies !
Normalement ils sont activés par défaut, tu avais sans doute modifié l'option.
0
Euh pardon, je voulais dire activer. Mon navigateur est au niveau Moyen (Par défaut), je ne l'ai jamais modifié et pourtant, cela ne fonctionne pas. Serait-il possible de corriger ce problème ? En utilisant un autre moyen que les $_SESSION par exemple...
0