Safari et sessions php ne fonctionne pas dans facebook iframe
Je vais avoir un problème pour faire mon facebook app de travail sur Safari.
Le problème est lié à PHP, les variables de session.
Je suis conscient que Safari a un problème face à la croix de domaine séances (à l'intérieur d'une iframe) et j'ai trouvé autour de 2 types de solutions:
- Réglage de l'en-tête p3p: j'ai essayé beaucoup d'en-tête p3p trouvé autour de lui, mais pas un d'entre eux a travaillé [par exemple:
header('P3P: CP="NOI ADM DEV COM NAV OUR STP"');
]. - L'envoi d'un courrier à l'iframe, à l'aide de javascript. Cela crée de l'interaction et des séances de travail. Mais le fait est que je ne contrôle pas les iframe contenant, comme c'est facebook.
Quelqu'un sait-il une solution alternative?
Merci!
J'ai eu le même problème et créé une solution qui me convient. Espérons que cette aide.
OriginalL'auteur user1310165 | 2012-04-03
Vous devez vous connecter pour publier un commentaire.
EDIT: Confirmé, cette solution de contournement ne fonctionne plus sur Safari 5.1 Mac. Discuté ici: Safari 3rd party cookies iframe astuce ne fonctionne plus?
Je ne sais pas ce qui est votre cas d'utilisation, mais dans notre application, nous avons un écran de bienvenue avec un "Autoriser l'Accès" bouton qui ouvre la boîte de dialogue autorisations. Lorsque l'utilisateur clique sur "Autoriser l'Accès" - je l'utiliser pour ouvrir une nouvelle fenêtre qui définit la session et se ferme immédiatement (ce qui a été proposé dans la question ci-dessus). Après que l'utilisateur a autorisé l'accès, vous pouvez simplement recharger la page? Dans notre cas, ce n'est pas nécessaire, car de toute communication avec le serveur avec l'ajax.
Je suis en utilisant la deuxième solution et n'ont aucun problème avec elle, voici mon code (à l'aide de jQuery):
Dans startsession.php je viens juste de commencer la session:
ne fonctionne pas sur safari sur snowleopard
Il ne fonctionne pas. Garde sur la présentation.
OriginalL'auteur pm_
Je suis en retard de cela, mais il se pourrait bien aider quelqu'un d'autre à la recherche de ce problème.
La seule méthode que j'ai pu faire du travail a été de détecter safari de l'intérieur de mon iframe et rediriger vers une autre page momentanément où je pourrais mettre mon cookie de session - redirigera.
Puis, à partir de setcookie.php
son un peu boiteux, mais ne fonctionne et n'interfère pas avec les autres navigateurs. L'autre méthode consiste à utiliser une fenêtre pop-up, bien que mon safari avait bloqué par défaut.
OriginalL'auteur Jeff
de loin pas la plus belle solution, mais vous n'avez pas besoin de Pages supplémentaires
mettre la Solution sur la première position sur votre page si vous ne voyez du blanc Scintillement.
envoyer votre url de renvoi à la page où vous avez réellement faire de votre stuff.
rien de plus nécessaire.
puis reffer retour à la page que vous avez été en premier lieu.
OriginalL'auteur Arthur Kielbasa