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'];
}
?>
我是 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
<?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'];
}
?>