第1页
<?php
session_start();
$_SESSION['username']='alex';
?>
第2页
<?php
session_start();
if (isset($_SESSION ['username'])) {
echo 'Welcome, ' .$_SESSION['username'];
} else {
echo 'please log in';
}
?>
当我加载“Welcome,Alex”页面时,无论会话是否存在,都会一直显示。
答案 0 :(得分:1)
在您希望关闭会话的地方使用session_destroy
<?php
session_start();
$_SESSION['username']='alex';
?>
SAYFA 2
<?php
session_start();
if (isset($_SESSION ['username'])) {
echo 'Welcome, ' .$_SESSION['username'];
session_destroy();
} else {
echo 'please log in';
}
?>
答案 1 :(得分:0)
请在使用后取消设置变量
请参阅,
<?php
session_start();
$_SESSION['username']='alex';
?>
<?php
session_start();
if (isset($_SESSION ['username'])) {
echo 'Welcome, ' .$_SESSION['username'];
unset($_SESSION['username']);
} else {
echo 'please log in';
}
?>
答案 2 :(得分:0)
你自己设置$ _SESSION,它永远存在,因为你永远不会UNSETTING
它:
$_SESSION['username']='alex';
对于正常情况,在对服务器发出POST请求后,总是设置$_SESSION
,在完成一些验证之后:
<?php
session_start();
if (!isset($_SESSION ['username'])) {
$_SESSION ['username'] = $_POST['username'];
}
?>
答案 3 :(得分:0)
设置会话后,它会一直与用户保持一致,直到session.gc_maxlifetime
给出的最短时间,之后,每次刷新时可能会清除1%的默认值(默认值:{ {1}}和session.gc_divisor = 100
)。
您需要自己结束会话或在X时间之后使其过期(使用时间戳比较或类似。
您可以使用以下内容:
登录时:
session.gc_probability = 1
在每个后续页面
<?php
session_start();
$_SESSION['username']='alex';
$_SESSION['timestamp']=date("Y-m-d H:i:s");
?>