2017-06-27 3 views
0

vor allem, ich fand mehrere andere Fragen, aber nichts half mir bisher. Schnelle Frage: Ich verliere meine Session-Variablen nach einer Weiterleitung. Sehen Sie sich diese:Sitzung verloren nach Umleitung PHP

login.php

if(preg_match("/[a-zA-Z]{2}\d{2}/im", $_POST["foo"])) { 
    if($_POST["email"]) { 
     $aPieces = explode("@", $_POST["email"]); 
     if(in_array($aPieces[1], $aAllowedMails)) { 
      session_start(); 
      $_SESSION["isAllowed"] = true; 
      header("Location: start.php"); 
      exit; 
     } 
    } 
} 

start.php

<?php 
    // session_start() 
    if($_SESSION["isAllowed"] == true) : 
?> 
some content 

<?php else : ?> 

<h1>Acces Denied</h1> 

<?php endif ?> 

meine Session ist immer NULL auf der zweiten Seite (start.php), die mit den Leitungen "Zugriff verweigert" -Text. Versuchte die zweiten session_start auch auf start.php hinzuzufügen, aber das endet mit der Fehlermeldung auf:

session_start(): Cannot send session cache limiter - headers already sent > (output started at [path]/start.php:1) in Any ideas?

Antwort

1

Haben Sie die Sitzung auf der nächsten Seite beginnen? Wenn Sie dies nicht tun, können Sie dies tun, indem Sie diese an Ihren Code:

<?php session_start(); ?> 
<?php 
    if($_SESSION["isAllowed"] == true) : 
?> 
some content 

<?php else : ?> 

<h1>Acces Denied</h1> 

<?php endif ?> 
+0

versucht, aber das führt zu dem Fehler: session_start(): Kann Sitzungscache senden nicht - headers already (Ausgabe gesendet gestartet in /var/www/web629/html/personal/sgbdd/start.php:1) in – DasSaffe

+0

@DasSaffe Sie müssen sicher sein, dass Sie Ihre Sitzung starten, bevor Sie etwas anderes tun, also vorzugsweise an der Spitze Ihres Codes. –

+0

es beginnt im Grunde mit session_start - überprüfen Sie die aktualisierte Frage bitte – DasSaffe

Verwandte Themen