2017-06-27 29 views
0

まず最初にいくつかの質問がありましたが、これまでのところ何も助けてくれませんでした。 簡単な質問:リダイレクト後にセッション変数が失われます。このチェック:リダイレクト後にセッションが失われた

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 ?> 

を私のセッションはいつもにつながる2ページ目(start.php)、上のNULLであります"access denied" -text。 start.php上にも第二session_startを追加しようとしましたが、それはエラー・メッセージで終わり:

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

答えて

1

あなたは、次のページでセッションを開始しますか?そうしないと に、あなたはあなたのコードにこれを追加することによってこれを行うことができます。

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

<?php else : ?> 

<h1>Acces Denied</h1> 

<?php endif ?> 
+0

はそれを試してみましたが、それはエラーにつながる: にsession_start():セッションのキャッシュリミッタを送信できません - ヘッダがすでに送信(出力を/var/www/web629/html/personal/sgbdd/start.php:1)の – DasSaffe

+0

@DasSaffeでセッションを開始する前に、何か他の操作を行う必要があります。コードの先頭にあることを確認する必要があります。 –

+0

それは基本的にsession_startで始まります - 更新された質問を確認してください – DasSaffe

関連する問題