我有一个使用CodeIgniter 3构建的电子商务和一个用PHP构建的仪表板网站。 我希望用户登录电子商务,也已经记录在个人仪表板中。 在电子商务中,有一个按钮可以传递到仪表板。此按钮调用名为/APS/index.php的仪表板(APS)文件。 在这个文件中,我把:
<?php session_start();
require_once("config.php");
if(!isset($_SESSION['client']) || empty($_SESSION['client'])) {
if (isset($_COOKIE['ci_session']) && !empty($_COOKIE['ci_session'])) {
// Check connection
$sql = "SELECT `data` FROM `ci_sessions` WHERE id=" . "'" . $_COOKIE['ci_session'] . "'";
$result = $conn->query($sql);
$first_arr = '';
if ($result->num_rows > 0) {
// output data of each row
while ($row = $result->fetch_assoc()) {
$first_arr = explode(';', $row['data']);
}
$res = '';
foreach ($first_arr as $v) {
if (strpos($v, 'customer_id') !== false) {
$res = explode('|', $v);
}
}
$conn->close();
$_SESSION['client'] = unserialize($res[1]);
} else {
$_SESSION['client'] = '';
}
}
}
if(isset($_SESSION['client']) && !empty($_SESSION['client'])){ header('location:account.php'); $x=$client->get($_SESSION['client']); $_SESSION['client']=$x[0]; exit; }
问题是在$ _SESSION ['client']中没有用户信息。用户表中有所有用户,然后它将此列表的第一个元素传递给下一页/APS/account.php,始终显示用户表的第一个用户的仪表板。
我该怎么办?
PS。我打印了一些变量。 $ sql语句是正确的,并且在$ res中有记录用户的正确customer_id。 unserialize()函数 - 我已经尝试过session_decode()函数,但结果相同 - 返回1(真),但这不是我想要的。