【问题标题】:Php Header redirects, but doesnt echo after thatPhp Header 重定向,但之后不回显
【发布时间】:2016-07-02 17:54:45
【问题描述】:

它将它们重定向回主页,但我希望它也显示一个框。

if($m->send()){
header('Location:http://blankwebsite.com/');
echo '<script>
alert("Your Quote Request has been submitted!");
</script>';

}
else{
echo $m->ErrorInfo;
}`

【问题讨论】:

  • 您尝试做的事情没有意义。标头向客户端返回重定向响应,其中不包含正文。 (或者即使是这样,浏览器也会忽略正文。)重定向显示内容,而不是两者。
  • 试图消除混乱是我的错。我的脚本的这一部分,这个脚本由填写表格并提交的人激活,我希望它将他们重定向回他们填写表格的页面,然后通知他们它已成功发送。如果我没有重定向,它会将它们保留在 script.php(空白页)上,并弹出一个说它已成功发送的消息。很抱歉让您感到困惑,希望对您有所帮助。
  • 当我翻转 2 时,它会成功显示通知,但随后将我带到 script.php 并显示错误“警告:无法修改标头信息 - 标头已发送”
  • @CodyCayetano 为了清楚起见,请考虑编辑您的问题而不是评论。还可以尝试添加尽可能多的细节以获得更详细和准确的答案!

标签: php


【解决方案1】:

您可以将 html 保存在会话变量中,在重定向后显示它,并在脚本启动时清空会话变量,就像一个 Flash 消息。

if($m->send()){

    $_SESSION['redirectMessage'] = base64_encode(utf8_encode('<script>alert("Your Quote Request has been submitted!");</script>'));

    header('Location:http://blankwebsite.com/');
}
else{
     echo $m->ErrorInfo;
}

在新页面请求或重定向时:

 if isset($_SESSION['redirectMessage']) {
     echo htmlentities(base64_decode($_SESSION['redirectMessage']), ENT_QUOTES, 'utf-8');
      $_SESSION['redirectMessage'] = null;
  }

此解决方案使用会话,因此请确保在脚本顶部调用 session_start()。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-17
    • 2012-03-27
    • 1970-01-01
    • 2015-09-07
    • 1970-01-01
    相关资源
    最近更新 更多