php 重定向后显示通知的最佳方式

标签 php session

我需要在 header 重定向页面后显示通知消息。我使用此功能重定向页面:

function Redirect($url) {
if(!headers_sent()) {
    //If headers not sent yet... then do php redirect
    header('Location: '.$url);
    exit;
} else {
    //If headers are sent... do javascript redirect... if javascript disabled, do html redirect.
    echo '<script type="text/javascript">';
    echo 'window.location.href="'.$url.'";';
    echo '</script>';
    echo '<noscript>';
    echo '<meta http-equiv="refresh" content="0;url='.$url.'" />';
    echo '</noscript>';
    exit;
}
   }

我像这样在 php SESSION 中插入错误:

session_start();
$_SESSION['errors'] = array();

...

array_push($_SESSION['errors'], "<span style = 'color:green;'>Success!</span>");
Redirect("somepage.php"); // OR header("Location: somepage.php");

对于显示通知:

if(isset($_SESSION['errors']) && count($_SESSION['errors']) > 0) {
    foreach($_SESSION['errors'] as $k => $v)
        echo($v . "<br/>");
    unset($_SESSION['errors']);
}

将通知放在 SESSION 中是安全又好的方法吗?如果不是,在 header 重定向后显示通知的最佳方式是什么?!

最佳答案

我专门为这类项目编写了一个库 https://github.com/tamtamchik/simple-flash .

安装完成后,您可以执行以下操作:

// put message not session
flash('Some error message', 'error');

// print it after redirect
echo flash()->display(); 

它将生成 Bootstrap友好的警报消息。

Example

关于php 重定向后显示通知的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27445091/

相关文章:

php - Laravel 分页不适用于::where(...)

php - 如何将SESSION变量传递给父目录中的页面?

powershell - 如何关闭每个交互式 PowerShell session ?

java - Spring security - session 上的 expireNow() 不执行任何操作

php - 从数据库验证中选择列表

php - Codeigniter 2 和 Twitter 集成

php - 如何用 PHP 编写文件上传测试?

php - 如何显示 Woocommerce 类别图像?

java - SessionMap 与 Map 哪个更适合 Session?

java - 如何配置 Tomcat 在调用 HttpServletResponse.encodeURL() 时不将 session ID 编码到 URL 中