2017-08-31 116 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