2017-06-21 4 views
0

function.phpファイルには以下の関数があります。session_start()は継承しますが、isLogged関数ではまだリダイレクトされます

function isLoggedIn(){ 
    session_start(); 
    if (!$_SESSION['Username']){ 
     header("Location: login"); 
     echo '<meta http-equiv="refresh" content="0; url=login" />'; 
     exit; 
    } 
} 

セッションは次の機能で適用されます。

function checkLogin($mysqli,$Username,$Pass){ 
     $Password = sha1($Pass); 
     $Prep1 = "SELECT * FROM infWebAccounts WHERE Username='$Username' AND Password='$Password'"; 
     $Prep2 = "SELECT * FROM infWebAccounts WHERE Username='$Username'"; 
     $DataArray = $mysqli->query($Prep1); 
     $UserArray = $mysqli->query($Prep2); 
     $Maintenance = getWebSettings($mysqli,'Maintenance'); 
     if (mysqli_num_rows($DataArray) > 0){ 
      $DataTable = mysqli_fetch_array($DataArray); 
      if ($Maintenance == 'Y' && $DataTable['Tier'] != 9 || $DataTable['Tier'] != 10){ 
       return '5'; 
      } 
      if ($DataTable['Tier'] == 0) { 
       return '4'; 
      } 
      session_start(); 
      $_SESSION['Usernamee'] = $DataTable['Username']; 
      $_SESSION['Tier']  = $DataTable['Tier']; 
      return '3'; 
     } elseif (mysqli_num_rows($UserArray) > 0) { 
      return '1'; 
     } else{ 
      return '2'; 
     } 
    } 

すべてのページに、このファイルをインクルードしてisLoggedIn()を実行します。

ログインしても、ログインページにリダイレクトされます。私はセッションのユーザ名をecho'dし、自分のユーザー名が、しかし私はまだリダイレクトされますと、それは戻ってきた....

答えて

0

あなたはので、このチェックは

if (!$_SESSION['Username']){ 
0

それが定義されているが設定されていない場合はたぶん、あなたは、現在のコードのチェックなど

function isLoggedIn(){ 
session_start(); 
if (!isset($_SESSION['Username'])){ 
    header("Location: login"); 
    echo '<meta http-equiv="refresh" content="0; url=login" />'; 
    exit; 
} 
} 

をしたいです。

+0

これを試みましたが、まだログインページにリダイレクトされています.../ –

0

あなたは、ユーザーがログインしている場合、それはにsession_start()を含む。また

if (!$_SESSION['Username']){ 

、すべきではないリダイレクトされます。関数を呼び出す前に、関数内でおそらく警告が表示されます。

+0

私はそれを持っています!$ _セッションそれは私のOPの簡単な間違いでした。 –

0

は、私が「Usernamee」としてセッションを設定し、「ユーザー名」をチェックしていた問題を発見:)チェックアウトしたことがないタイプミス

$_SESSION['Usernamee'] = $DataTable['Username']; 

でそれを設定します

関連する問題