Slim 框架中的原生 session 用法

Native session usage in Slim framework

我是 slim 框架的新手。我必须 session 在 slim 框架中。我在 slim 框架中使用 Native PHP session。

我在实例化 slim 之前在 index.php 中添加了这一行:

<?php 
session_cache_limiter(false); 
session_start(); 

我定义了一条路由,我将在其中插入数据并重定向到 url,如下所示:

 $app->post('/users', function()use($app) {
    $useradd = new \app\User();
    $session = new \app\Session();

    $data = $useradd->addUsers();

    if($session->getId('useraddsuc')) {
        $app->response->redirect('../templates/user?success');
    } else {
       $app->response->redirect('../templates/user?fail');
    }
});

并且 session 在 addUsers 方法中设置如下:

    function addUsers() {
        try {
            $db = new \app\Config();

            $name = $db->escape($_POST['name']);
            $email = $db->escape($_POST['email']);
            $date_created = date("Y-m-d H:i:s");
            $tmp_id = $db->random_id(8);


$sql = "INSERT INTO app_user (user_name, user_email, user_role, user_date_create, user_tmp_id, user_date_modified) VALUES ('$name','$email','store_admin','$date_created','$tmp_id','$date_created')";

            $query = $db->insertQuery($sql);
            $session = new \app\Session();
            $session->setId('useraddsuc', 'user account added successfully');
        }
        catch(Exception $e) {
            echo $e;
        }
    }

当设置 session 时,它会重定向到所提到的正确路径。 但重定向后无法访问 url 路径中的 session 变量。 即在 templates/user/index.php 中无法访问在 addUsers 方法中设置的 session 变量。下面的代码用于检查 templates/user/index.php 中的 session 但这不起作用。请帮忙!!

templates/user/index.php

中检查 session 的代码
   <?php if(isset($_SESSION['useraddsuc'])) {    ?>
    echo "User added successfully!!"
    <?php  } ?>

得到答案。添加以下行将检测会话。

<?php @ob_start();

if(session_status()!=PHP_SESSION_ACTIVE) {
session_start();
}

if(isset($_SESSION['useraddsuc'])) {    
echo $_SESSION['useraddsuc'];
} 

?>