小编B R*_*d C的帖子

PHP $ _SESSION变量不会取消设置

对不起重复的问题,我在这个论坛上看过其中一些,但没有一个回复对我有用......

我正在使用php会话构建基本登录,我是新来的......

login.php验证html登录表单并开始一个会话,设置变量:$_SESSION['login']$_SESSION['id],

然后每个需要有效登录的页面使用require 'session.php';它来检查$_SESSION['valid']变量并重定向没有正确登录变量的用户.问题是当我注销时,我设置的会话变量都不会被设置.

现在我的logout.php文件使用大约每个方法来销毁我在网上找到的变量,但实际上没有人会这样做.

因此,每当我退出时,我仍然可以访问"私人"页面.

还要注意:我已经尝试了它session_start();没有会话名称ex:这不起作用所以现在我正在使用session_start("user");

另请注意:我不使用cookies.

这是我提到的文件:


的login.php


$email=$_POST['email-log']; $pass=$_POST['password-log'];

$i=-1;

do
{$i++; $path="users/".$i.".json";
$file=  file_get_contents($path);
$x=json_decode($file,true);
} while($x['email']!=$email);
$id=$i;
$truepass=$x['pass'];

$errors=0;
$hash=hash('sha256',$pass);
if($hash != $truepass){$errors=$errors+1;}

if($errors==0){
        session_start("user");
        $_SESSION['login']="valid";
        $_SESSION['id']=$id;

    header('Location: loginlanding.php');}

else{header('Location: front.php?error=y');}
Run Code Online (Sandbox Code Playgroud)

session.php文件


session_start("user"); if($_SESSION['login'] !== "valid") {header('Location: front.php?needto=login');}
Run Code Online (Sandbox Code Playgroud)

logout.php


unset($_SESSION); unset($_SESSION['login']); unset($_SESSION['id']); session_unset("user"); $_SESSION=array(); session_destroy("user"); header('Location: front.php?logged=out');
Run Code Online (Sandbox Code Playgroud)

欢迎任何和所有的回复,我提前感谢你,也请注意,我是一般新登录的人,所以任何加强安全的建议也是值得欢迎的.我打算让它更安全,但首先我需要启动并运行这个基本功能.

php variables session unset

4
推荐指数
2
解决办法
4万
查看次数

标签 统计

php ×1

session ×1

unset ×1

variables ×1