AngularJS ngRoute et PHP $_SESSION variables
J'ai 3 pages:
- index.php
- login.php
- display.php
index.php
Met en place AngularJS à l'aide de la ngRoute module pour naviguer dans mes pages.
login.php
Chargé par défaut et jeux PHP $_SESSION variables.
display.php
Echos le contenu de $_SESSION.
Je navigue à display.php à partir de login.php à l'aide d'un lien de configuration avec ngRoute.
Problème
display.php ne pas afficher les $_SESSION variables peu importe combien de fois j'ai naviguer vers et à partir d'elle. Il affichera uniquement si je le manuellement accédez à la page comme l'actualisation de la page ou de la saisie de l'adresse dans le navigateur.
Je sais que le code php est exécuté parce que je peux l'écho d'autres choses à l'écran, il n'a tout simplement pas accès à l' $_SESSION variables.
Pourquoi est-ce?
AngularJS routage est unique liaison de page, ce qui signifie qu'il n'y a pas de serveur d'interaction en plus des appels ajax. Vous auriez besoin de faire un appel ajax pour demander
$_SESSION
variablesJe suppose ngRoute permet de faire des appels ajax, car tout le reste que je écho dans display.php fonctionne très bien. Donc ça doit être un serveur d'interaction.
L'essentiel dans tout AngularJS single page application je ne peux pas obtenir PHP $_SESSION variables de travailler comme ils semblent l'exiger de vous de charger la page à l'aide d'une actualisation afin d'obtenir la mise à jour des valeurs de variables. L'exécution de la pages à l'aide de $http, dans AngularJS semble faire quelque chose de différent alors l'exécution de la page dans le navigateur. phpFiddle est inaccessible pour le moment. J'ajoute un phpFiddle quand le site est de retour.
Si vous assurez-vous que l'appel ajax est le cas, je vous conseille d'ajouter cette url dans votre demande:
'path/to/display.php?'+Date.now();
. Peut-être vous ne pouvez pas le voir, car le cache du navigateur.
OriginalL'auteur Craig | 2014-02-28
Vous devez vous connecter pour publier un commentaire.
Je pense que je pourrais voir où est ton problème. Vous essayez d'accéder à une session php dans ta page unique angularJS modèles HTML, ai-je le droit? comme:
Qui n'est pas la façon dont il fonctionne. Votre $_SESSION ne sera jamais disponible dans vos templates.
Ce que vous pouvez faire, est d'utiliser une requête ajax pour votre authentification d'ouverture de session et ont qui demande de vous donner un id de session.
Puis utiliser cet id de session lors du démarrage de votre session, en plus des requêtes ajax (comme déjà mentionné).
Ensuite, lorsque vous souhaitez stocker quelque chose à la session php, accéder aux données via une requête ajax et php de service.
un TRÈS, TRÈS, TRÈS, simple Exemple:
à l'intérieur de getFromSession.php
à l'intérieur storeToSession.php
à l'intérieur de votre login.php
à l'intérieur de n'importe où dans votre angulaire où vous avez besoin d'accéder aux données de session:
Modèles d'exécuter les différentes parce qu'ils sont rendus dans votre premier appel. L'utilisateur n'est pas connecté, la session a été créé (si) et donc il n'est pas de l'information. Après l'appel de la login.php via ajax, vos modèles de ne pas se rendait en php de nouveau parce que vous n'avez pas à recharger la page. Vous obtenez maintenant?
OriginalL'auteur Andresch Serj
Cela dit, veuillez fournir au moins les concepts de base de votre code AngularJS, de sorte que nous pouvons fournir plus de détails.
En outre, mis juste ce dans
display.php
:Maintenant exécuter votre application AngularJS et de dire ce qui vient de sortir.
OriginalL'auteur SteAp
Assurez-vous de commencer la session avant de lire les variables de SESSION.
OriginalL'auteur Pacuraru Daniel
Je ne pense pas que vous êtes à la recherche pour angularJS.
Je pense que vous êtes à la recherche de quelque chose de plus comme cela.
index.php:
login.php
show.php
OriginalL'auteur Dr. Collage