AngularJS ngRoute et PHP $_SESSION variables

J'ai 3 pages:

  1. index.php
  2. login.php
  3. 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?

Je ne comprends vraiment pas quoi que ce soit 🙁 Pourquoi vous avez 3 fichiers php?
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 variables
Je 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