Bonsoir à tous,
avec PHP&ajax, je constate des soucis avec IE, et aucune avec Firefox.
Il y a-t-il une astuce reconnue pour résoudre le côté avec IE ?
Merci d'avance.
Version imprimable
Bonsoir à tous,
avec PHP&ajax, je constate des soucis avec IE, et aucune avec Firefox.
Il y a-t-il une astuce reconnue pour résoudre le côté avec IE ?
Merci d'avance.
Bonjour,
Tu as un exemple concret sous la main ?
Bonjour ikkiphenix,
j'explique le principe.
J'ai une page, sur laquelle je reste.
J'ai des options accessible en mode public.
Pour passer en mode avancée, et du coup bénéficier de plus de fonctionnalités, je dois m'authentifier si je ne l'ai pas fait récemment, ou sinon je suis reconnu grâce à un cookie.
Cette vérif se fait en ajax, donc voici le code :
La contrainte qui me fait utiliser les cookies, c'est qu'il ne faut pas que l'utilisateur soit obligé de s'authentifier à chaque fois qu'il ouvre le navigateur, sinon j'aurai utilisé les sessions.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 <?php header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"'); require_once("../../include/fonctions-inscription.php"); $SYSTEME_statut = TRUE; $SYSTEME_msgErreur = ""; if(!isset($_COOKIE["moncookie"])) $SYSTEME_statut = FALSE; else setcookie("moncookie",$_COOKIE["moncookie"],time()+60*60*24,'/'); echo json_encode(array( 'SYSTEME_statut' => $SYSTEME_statut, 'SYSTEME_messageErreur' => $SYSTEME_msgErreur )); ?>
En espérant que l'exemple te soit assez parlant, je te remercie d'avance.
Je complémente mon précédent message.
Donc sur firefox, cela fonctionne.
Sur IE, cela ne fonctionne pas vraiment.
C'est à dire qu'il va créer le cookie, mais quand je teste ce passage en mode avancée, en vérifiant si le cookie existe, il ne le trouve pas.
Je réactualise la page, et là, il détecte le cookie et donc dit que je suis connecté.
J'espère que je suis clair dans mon explication, sinon dîtes le moi, j'essaierai d'expliquer plus en détail.
Sur la page qui montre le niveau d'identification, as-tu essayé en ajoutant ces deux headers ?Code:
1
2 header("Cache-Control: no-cache"); header("Pragma: no-cache");
Bonsoir,
merci ikkiphenix.
En fait, j'ai procédé de manière différente, je m'explique.
Au démarrage de la page, je lance une requête ajax, pour tester l'existence d'un cookie, à partir de là, je passe le relai à une session PHP, tout en ayant laissé les setcookie pour prolonger la durée de validité du cookie.
J'ai moins de souci durant le temps de surf sur la page.
Par contre, si je ferme le navigateur, sous IE, que je retourne sur la page, il ne trouve aucun cookie.
Je suis sous IE9, je n'ai pas fait mis l'option "suppression à la fermeture du navigateur" (Outils > Options internet > onglet général)
En plus sous IE, je vois difficilement les cookies existants (le seul moyen c'est via Outils de développement, Menu Cache) ou alors via l'explorateur.
Quelque chose que j'ai vu va dans le même sens que ta réponse
Je ne l'ai pas encore appliqué.Code:Header("Cache-control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0, private");
Pourrais-tu m'expliquer le sens de cette instruction et pourquoi IE en a besoin ?
J'aimerai bien comprendre les choses.
Merci en tous les cas pour l'aiguillage.
Salut,
Toutes ces instructions ont pour objectif d'empêcher le navigateur de mettre en cache la page et de le forcer à aller chercher la dernière version.
La multiplicité des balises est là pour essayer de se faire comprendre du plus de navigateurs possibles...
Salut,
bien noté pour tes explications.
En fait, j'ai résolu les choses en modifiant la config du serveur, le paramètre session.lifetime, qui était mis à 0 et cela effacer les cookies à la fermeture du navigateur.
Merci ikkiphenix :) et à bientôt.