2017-08-31 148 views
0

我添加了登錄到我的網站,一切工作除了一件事情:如果一個用戶誰沒有登錄沒有重定向到login.php,我嘗試了幾件事請幫助我,謝謝。PHP - 未登錄重定向

process.php(登錄過程):

if ($row['username'] == $username && $row['password'] == $password && ("" !== $username || "" !== $password)){ 
    $_SESSION["users"] = $row['username']; 
    $_SESSION['login'] = true; 
    header("Location: https://ferapps.altervista.org/tia/inde.php"); 
} else { 
    header("Location: error.php"); 
} 

logout.php:

session_start(); 
$_SESSION['users'] = NULL; 
$_SESSION['login'] = false; 
header("location: https://ferapps.altervista.org/tia/content/login/login.php"); 
exit(); 

在網站我添加的所有網頁:

include("content/login_verif.php"); 

login_verif.php:

session_start(); 
if $_SESSION['login'] != true; 
{ 
    header('Location: https://ferapps.altervista.org/tia/content/login/login.php'); 
    exit(); 
} 

回答

0

只需在您的主頁上添加安全措施。檢查是否設置了$_SESSION['users']$_SESSION['login']。如果其中任何一個沒有設置,則將用戶重定向到登錄頁面。

login_verif.php

session_start(); 
if(!isset($_SESSION['users']) || !isset($_SESSION['login'])){ 
    // redirect the user to login page 
    header('Location: https://ferapps.altervista.org/tia/content/login/login.php'); 
    exit(); 
} 

,包括這個login_verif.php頁面以下列方式,

require_once("content/login_verif.php"); 

而且這不是你應該如何註銷用戶。您需要正確清除cookies和銷燬會話,因此你logout.php頁面應該是這樣的:

logout.php

<?php 
    session_start(); 
    if(!isset($_SESSION['users']) || !isset($_SESSION['login'])){ 
     // redirect the user to login page 
     header('Location: https://ferapps.altervista.org/tia/content/login/login.php'); 
     exit(); 
    } 

    $_SESSION = array(); 
    if(isset($_COOKIE[session_name()])){ 
     setcookie(session_name(),'',time()-42000,'/'); 
    } 
    session_destroy(); 

    // redirect the user to login page 
    header('Location: https://ferapps.altervista.org/tia/content/login/login.php'); 
    exit(); 
?> 
+0

現在謝謝你的使用 – SkateIV

+0

@SkateIV不客氣!很高興我能幫上忙。 :-) –

0
file_get_contents() 

用於輸出內容作爲一個字符串的文件。

你想

include("content/login_verif.php"); 

代替。而

if $_SESSION['login'] != true; 

應該

if ($_SESSION['login'] != true) 
+0

我把「include」我寫錯了 – SkateIV

+0

編輯答案,再檢查一次。 – deg

0

這裏的問題是不正確的使用 「的file_get_contents」 的。

http://php.net/manual/en/function.file-get-contents.php所述,file_get_contents是一種獲取另一個文件的內容並以字符串格式返回的方法。

如果您想用另一個文件代碼擴展文件,您應該查看require和/或include。

對於當前的代碼,換出

file_get_contents("content/login_verif.php"); 

對於

require("content/login_verif.php"); 

有關的信息包括:http://php.net/manual/en/function.include.php

有關資料要求:http://php.net/manual/en/function.require.php

+0

我知道,我寫錯了問題 – SkateIV