我需要在 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友好的警报消息。
关于php 重定向后显示通知的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27445091/