php - PHP 会话变量在同一页面上丢失
问题描述
我有要分配员工的团队。经理登录他/她分配团队编号的帐户。然后,他们单击一个链接(将团队 ID 作为变量传递)转到他们进行员工查找的分配页面;找到员工并单击链接以将此员工分配给他们的团队。
当他们第一次进入此分配页面时,团队编号已存在。然而,在他们进行搜索之后,团队编号被清除了。这一切都在同一页上。我不知道为什么搜索功能会清除会话变量值。谢谢你。
<?php
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<?php
$_SESSION["teamid"] = $_REQUEST["tid"];
?>
<?php
$con = new mysqli($localhost, $username, $password, $dbname);
if( $con->connect_error){
die('Error: ' . $con->connect_error);
}
if( isset($_GET['search']) ){
$team = $_SESSION["teamid"];
$memberid = mysqli_real_escape_string($con, htmlspecialchars($_GET['search']));
$sql = "SELECT * FROM employees WHERE empid ='$memberid'";
}
$result = $con->query($sql);
?>
<label>Enter Employee You Wish To Add To Your Team (<?php echo $_SESSION["teamid"]; ?>)</label>
<form action="" method="GET">
<input type="text" placeholder="Enter Employee ID here" name="search">
<input type="submit" value="Search" name="btn" class="btn btn-sm btn-primary">
</form>
<br />
<table class="table table-striped table-responsive">
<tr>
<th>Employee ID</th>
<th>Name</th>
<th>Action</th>
</tr>
<?php
while($row = $result->fetch_assoc()){
?>
<tr>
<td><?php echo $row['empid']; ?></td>
<td><?php echo $row['firstname']; ?> <?php echo $row['lastname']; ?></td>
<td><a href="assignemployee.php?mid=<?php echo $row['empid']; ?>&tid=<?php echo $team; ?>">Assign Employee</a></td>
</tr>
<?php
}
?>
</table>
</div>
</body>
</html>
解决方案
这是因为在您的代码的顶部,您有这部分:
<?php
$_SESSION["teamid"] = $_REQUEST["tid"];
?>
因此,每次重新加载页面时,它都会将 teamid 设置为请求中的任何内容。您第二次访问该页面时,它很可能是空的,这导致会话也为空。
解决此问题的一种简单方法是检查是否$_REQUEST["tid"]
已设置:
<?php
if (isset($_REQUEST["tid"])) {
$_SESSION["teamid"] = $_REQUEST["tid"];
}
?>
推荐阅读
- solr - 应用架构文件谜题后缺少 2 个字段
- java - 应用程序窗口错误“插件“org.eclipse.wb.core.ui”无法实例化类”
- javascript - 我如何在 LokiJS DB 中创建索引?
- android-studio - Android Studio - 视频奖励有效,但没有更多回调 - 可能出现故障?
- microsoft-graph-api - Graph API - 我如何确定链接的联系人?
- docusignapi - 退回的文件缺少签名
- firebase - 以编程方式添加 Videoview
- wordpress - Wordpress - 自定义分类法不适用于永久链接 - 404
- linux - 从 bash shell 脚本中的整个字符串中提取路径
- woocommerce - 将 Biller billing_first_name 添加到 woocommerce 中的页脚消息