Maintenir la Session PHP web app sur iPhone
J'ai un jquery mobile web app. Sur mon iPhone quand je suis sur l'application web, j'ai une connexion de session et des variables. Si je quitte l'application pour aller vers un autre emplacement sur le téléphone, puis retour à l'application web, j'ai à nouveau vous connecter. Il semble que la session n'est pas maintenu. Si en plus j'ai un lien externe et il s'ouvre safari pour ce lien, de cette même séance, n'est pas transférée à la fenêtre de safari. Est-il un moyen de maintenir la session?
La accepté de réponse à cette question est mal. Voir ma réponse ci-dessous pour savoir comment maintenir la session, même entre l'appareil redémarre.
OriginalL'auteur Jason | 2012-04-03
Vous devez vous connecter pour publier un commentaire.
J'imagine que vous faites allusion à la Pomme "plein écran" meta tag "web apps". Ils existent dans un bac à sable, donc non, les données de session ne sera pas maintenue.
Pas à partir de l'application web contenant de Safari. Ils existent à part entière dans le téléphone.
J'avais peur que cela serait le cas.
Vous pourriez être en mesure de passer l'ID de session par l'intermédiaire d'un paramètre de l'URL et de la charge de cours de la session de Safari de l'instance.
Vous pouvez également faire le natif de PHP façon: php.net/manual/en/session.idpassing.php
OriginalL'auteur ceejayoz
La accepté de réponse à cette question est mal, c'est facile à faire.
Le truc est de faire ceci:
Que c'est! Pas de cache local manifeste requis et vous pouvez travailler avec les sessions dans votre application web comme vous le feriez avec des pages web dans un bureau ou un navigateur mobile. J'ai testé sur l'iPhone 5 (iOS 6.1) et le Simulateur d'iPhone /iPad 2 (iOS 6.0) et ce qui a fonctionné, même lors de l'arrêt et le redémarrage de l'appareil /simulateur au cours de la session.
Il fonctionne très bien: le cookie de session devient partagée entre plusieurs instances de l'application web, si un utilisateur ajoute votre application web à l'écran d'accueil, plusieurs fois, et à moins de Safari mode de Navigation Privée est activée, le cookie de session sera même disponible lors de la navigation de votre page web directement à partir de Safari au lieu de l'aide de l'application web. Donc, peu importe la façon dont l'utilisateur s'approche de votre application, la session actuelle semble toujours se restaurer lors de l'utilisation de cette stratégie.
De l'essayer vous-même, utilisez le code ci-dessus et de sortie
session_id()
dans votre page web (temporairement, comme c'est un risque pour la sécurité) et de voir si les changements entre l'ouverture et la fermeture de votre application web à partir de l'écran d'accueil (essayez de redémarrer votre appareil au cours de la session). Si la sortie de l'ID de session ne change pas, il fonctionne: il est apparemment en train d'être stockée dans certains (partagé) cache local par Safari.Testée et confirmée à travailler sous iOS 4.2.1, 5.1.1, 6.0 et 6.1.
Avertissement: la documentation d'Apple stipule explicitement la nécessité pour un manifeste de cache afin d'enregistrer les données en local dans une application web, mais cette solution fonctionne sans. C'est à dire, cette solution peut s'appuyer sur les sans-papiers ou de comportement incorrect par le navigateur Safari Mobile. Cependant, puisqu'il fonctionne sur beaucoup plus que les versions d'iOS, j'ai l'impression que c'est un comportement intentionnel (au moins de la part d'Apple), juste mal documenté.
Merci beaucoup pour cette réponse! Il fonctionne parfaitement @WilboBaggins
OriginalL'auteur Wilbo Baggins
Si vous ne voulez pas ouvrir safari en cliquant sur un lien, il suffit d'utiliser cette git.
https://gist.github.com/kylebarrow/1042026
Fondamentalement, il suffit de copier le fichier stay_standalone.js à votre projet et à votre point de vue inclure cette ligne:
OriginalL'auteur Isidro López
Si vous ne pouvez pas utiliser les Cookies, Vous devez créer une session sur votre serveur de côté, mais elle durera jusqu'à l'utilisateur d'utiliser la même adresse ip ou le temps que votre serveur sont configurés pour les sessions, c'est dire si à l'utilisateur de basculer 3g WiFi l'application va détecter qui est différente de l'adresse IP, de sorte que la session sera fermée.
OriginalL'auteur Javier