AngularJS ngRoute und PHP $ _SESSION-Variablen

8

Ich habe 3 Seiten:

  1. index.php
  2. login.php
  3. display.php

index.php

Richtet AngularJS mit dem ngRoute-Modul ein, um auf meinen Seiten zu navigieren.

login.php

Wird standardmäßig geladen und setzt PHP $ _SESSION-Variablen.

display.php

Echos der Inhalt von $ _SESSION.

Ich navigiere von login.php zu display.php, indem ich ein Link-Setup mit ngRoute verwende.

Problem

display.php zeigt $ _SESSION Variablen nicht an, egal wie oft ich zu und von ihm navigiere. Sie werden nur angezeigt, wenn ich manuell zur Seite navigiere, z. B. die Seite aktualisieren oder die Adresse im Browser eingeben.

Ich weiß, dass der PHP-Code ausgeführt wird, weil ich andere Dinge auf dem Bildschirm wiedergeben kann, da er einfach nicht auf die $ _SESSION-Variablen zugreift.

Warum ist das?

    
Craig 28.02.2014, 02:34
quelle

4 Antworten

7

Ich denke, ich könnte sehen, wo dein Problem ist. Sie versuchen, PHP-Sitzung in Ihrer einzelnen Seite AngularJS HTML-Vorlagen zugreifen, bin ich richtig? wie:

%Vor%

So funktioniert das nicht. Ihre $ _SESSION wird niemals in Ihren Vorlagen verfügbar sein. Was Sie tun können, ist eine Ajax-Anfrage für Ihre Login-Authentifizierung und diese Anfrage erhalten Sie eine Session-ID. Verwenden Sie dann diese Session-ID beim Starten Ihrer Sitzung in weiteren Ajax-Anfragen (wie bereits erwähnt).

Wenn Sie dann etwas in der PHP-Sitzung speichern möchten, greifen Sie über die Ajax-Anfrage und den PHP-Dienst auf die Daten zu.

a SEHR, SEHR, SEHR, einfach Beispiel: in getFromSession.php

%Vor%

in storeToSession.php

%Vor%

in Ihrer login.php

%Vor%

überall in Ihrem Winkel, wo Sie auf Sitzungsdaten zugreifen müssen:

%Vor%     
Andresch Serj 12.03.2014, 14:25
quelle
1
  

Im Allgemeinen gibt es keinen Grund, warum AngularJS-Apps welche anfordern   PHP-basiertes serverseitiges Zeug kann $ _SESSION nicht lesen.

Bitte geben Sie zumindest die Kernkonzepte Ihres AngularJS-Codes an, damit wir Ihnen weitere Einzelheiten mitteilen können.

Fügen Sie zusätzlich nur das in display.php :

ein %Vor%

Führe jetzt deine AngularJS App aus und erzähle, was rauskommt.

    
SteAp 06.03.2014 22:27
quelle
1

Stellen Sie sicher, dass Sie die Sitzung vor dem Lesen der SESSION-Variablen starten.

%Vor%     
Pacuraru Daniel 10.03.2014 23:56
quelle
0

Ich glaube nicht, dass Sie nach angularJS suchen. Ich denke, du suchst etwas mehr so.

index.php:

%Vor%

login.php

%Vor%

show.php

%Vor%     
Dr. Collage 10.03.2014 12:59
quelle