Php session_decode()不';t从CodeIgniter 3检索正确的$\会话信息
我有一个用CodeIgniter 3构建的电子商务和一个用php构建的仪表板站点。 我希望用户登录到电子商务,也已经登录到个人仪表板。 在电子商务中,有一个按钮可以传递到仪表板。此按钮调用名为/APS/index.php的仪表板(APS)文件。 在这个文件中,我提出:Php session_decode()不';t从CodeIgniter 3检索正确的$\会话信息,php,codeigniter,session,Php,Codeigniter,Session,我有一个用CodeIgniter 3构建的电子商务和一个用php构建的仪表板站点。 我希望用户登录到电子商务,也已经登录到个人仪表板。 在电子商务中,有一个按钮可以传递到仪表板。此按钮调用名为/APS/index.php的仪表板(APS)文件。 在这个文件中,我提出: <?php session_start(); require_once("config.php"); if(!isset($_SESSION['client']) || empty($_SESSION['client'])
<?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; }
尝试将基于Codeigniter(CI)的网站与使用过程化PHP编写的网站集成可能不是一个好主意,您的问题在于CI处理会话的方式。关联的会话cookie将使用CI中的配置设置。此外,CI使用自定义实现(驱动程序)处理PHP会话。因此,我找不到解决方案(它们从同一个数据库读取。因此,我认为如果我能够检索会话cookie,我也能够以正确的方式检索相关用户。我在查询响应中看到客户id。cookie是加密的。因此,您必须使用CI会话函数解密并移到普通cookie。如何切实做到这一点?