PHP 会话中的闪信
Flash messages with sessions in PHP
我在 PHP 从事一个项目,该项目不使用 PHP 的任何类型的框架。我来自 Yii 背景并且我使用过:
Yii::app()->user->setFlash('flash_name', 'Flash value');
并检查了它:
Yii::app()->user->hasFlash('flash_name');
要检查它是否存在,是否存在,并获取它的值,我使用了:
Yii::app()->user->getFlash('flash_name', 'Default Flash value');
目前,我将这些函数写入 set
、check
和 get
flash:
function set_flash($flash_name, $value) {
$_SESSION['flashes'][$flash_name] = $value;
}
function has_flash($flash_name) {
return isset($_SESSION['flashes'][$flash_name]) ? true : false;
}
function get_flash($flash_name, $default_value = null) {
if(has_flash($flash_name)) {
return $_SESSION['flashes'][$flash_name];
}
return $default_value;
}
然而,当我像这样在 post.php
中使用它时:
set_flash('success', true);
然后在我的 index.php
中检查它,如下所示:
<div class="container">
<?php if(has_flash('success') && (get_flash('success') === true)): ?>
<div class="alert alert-success">
<h4>Success!</h4>
<hr />
<p>You have successfully posted new content on your website. Now you can edit or delete this post.</p>
</div>
<?php endif; ?>
</div>
每当我刷新页面时,该消息仍会出现。
如何在使用或调用闪光灯后将其移除?
向 get_flash
添加新行:
function get_flash($flash_name, $default_value = null) {
if(has_flash($flash_name)) {
$retVal = $_SESSION['flashes'][$flash_name];
// don't unset before you get the vaue
unset($_SESSION['flashes'][$flash_name]);
return $retVal;
}
return $default_value;
}
我在 PHP 从事一个项目,该项目不使用 PHP 的任何类型的框架。我来自 Yii 背景并且我使用过:
Yii::app()->user->setFlash('flash_name', 'Flash value');
并检查了它:
Yii::app()->user->hasFlash('flash_name');
要检查它是否存在,是否存在,并获取它的值,我使用了:
Yii::app()->user->getFlash('flash_name', 'Default Flash value');
目前,我将这些函数写入 set
、check
和 get
flash:
function set_flash($flash_name, $value) {
$_SESSION['flashes'][$flash_name] = $value;
}
function has_flash($flash_name) {
return isset($_SESSION['flashes'][$flash_name]) ? true : false;
}
function get_flash($flash_name, $default_value = null) {
if(has_flash($flash_name)) {
return $_SESSION['flashes'][$flash_name];
}
return $default_value;
}
然而,当我像这样在 post.php
中使用它时:
set_flash('success', true);
然后在我的 index.php
中检查它,如下所示:
<div class="container">
<?php if(has_flash('success') && (get_flash('success') === true)): ?>
<div class="alert alert-success">
<h4>Success!</h4>
<hr />
<p>You have successfully posted new content on your website. Now you can edit or delete this post.</p>
</div>
<?php endif; ?>
</div>
每当我刷新页面时,该消息仍会出现。
如何在使用或调用闪光灯后将其移除?
向 get_flash
添加新行:
function get_flash($flash_name, $default_value = null) {
if(has_flash($flash_name)) {
$retVal = $_SESSION['flashes'][$flash_name];
// don't unset before you get the vaue
unset($_SESSION['flashes'][$flash_name]);
return $retVal;
}
return $default_value;
}