session_decode()不从CodeIgniter 3中检索正确的$ _SESSION信息

时间:2017-04-07 08:09:46

标签: php codeigniter session

我有一个使用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(真),但这不是我想要的。

0 个答案:

没有答案