php - php7会话变量在并发访问中刷新页面时发生变化-云托管
问题描述
假设有两个用户(A 和 B)登录 PHP 应用程序。
在访问应用程序中的同一页面时,A 会话变量都显示给 B,反之亦然。
如果 A 刷新页面,他的原始会话值将再次显示。
如何避免这个问题?请帮我。
登录页面:
session_start();
错误报告(0);ob_start();
if( (isset($_POST['submit'])) && ($_POST['submit'] == 'login') ) {
$username=addslashes(trim($_POST['stud_id']));
$password=addslashes(trim($_POST['password']));
}
$mysqli->set_charset('utf8'); $query=sprintf("select * from register_fst where Application_id='%s'",$username);
$result = $mysqli->query($query) or die($mysqli->error);
$rowcount = mysqli_num_rows($result);
if($rowcount > 0)
{
$row = mysqli_fetch_array($result);
$adm_pass= addslashes($row['Password']);
$adm_user= addslashes($row['Application_id']);
if(($username == $adm_user) && ($password == $adm_pass) )
{
$_SESSION['username']=$row['Application_id'];
//$_SESSION['password']=$row['Password'];
$_SESSION['mob'] = $row['Mobile_No'];
$_SESSION['dob'] = $row['DOB'];
$_SESSION['aadhar_no'] = $row['Adhar_no'];
$_SESSION['zone'] = $row['Zonal_id'];
$_SESSION['fullname'] = $row['FullName'];
$_SESSION['loggedin_time'] = time();
$db_sessionid=$row['Session_id'];
$old_sessionid = session_id();
$new_sessionid = session_regenerate_id(true);
$_SESSION['newregid']=$new_sessionid;
$_SESSION['odlregid']=$old_sessionid;
if(!empty($old_sessionid))
{
$query_time=$mysqli->query("UPDATE registation_fst SET Session_id='".$old_sessionid."'WHERE Application_id='".$_SESSION['username']."'");
header("Location:Login-home.php");exit;
} else if($db_sessionid!=$_SESSION['odlregid'])
{
$query_time=$mysqli->query("UPDATE registation_fst SET Session_id ='".$new_sessionid."'WHERE Application_id='".$_SESSION['username']."'");
header("Location:Login-home.php");exit;
}
} else{
$_SESSION['logstu']= "wrong";
header("Location:Login.php");
exit;
}
} else{
$_SESSION['logstu']= "notavail";
header("Location:Login.php");
exit;
}
主页:
<?php
session_start();
ob_start();
print_R($_SESSION);
?>
会话值自动更改并在刷新时再次恢复
解决方案
欢迎来到社区。尝试对您的 ob_start() 进行一些更改。
也许在 session_start 之前写它或删除它只是为了知道它是否有问题。
推荐阅读
- amazon-web-services - 如何调试cloudformation模板?策略中的语法错误。YAML 文件
- excel - 在 Excel 中使用文本和值对代码进行排序
- python - Beautiful Soup 找不到我想要的 HTML 部分
- testing - VSTS - 如何获得代码覆盖率结果
- java - Java 安全访问控制异常?
- java - Mockito:验证参数而无需强制转换
- c++ - 未找到模板重载
- output - 输出 vhdl 信号分配
- adfs - 带有 ADFS 的 Project Server 2016 PSI
- mysql - mysql查询以获取每个给定键的记录