【问题标题】:why my echo doesn't work before a header function header(location:home.php);为什么我的回声在标头函数 header(location:home.php) 之前不起作用;
【发布时间】:2013-08-22 04:58:18
【问题描述】:

为什么我的 echo 在这段代码中不起作用?它直接转到函数 header()。

if($result){
    echo("<script> alert('User Successfull Added')</script>");
    header('location:home.php');
}

【问题讨论】:

  • 因为您在标头上方有 echo,所以这被视为输出。您需要将您的回声放在标题下,以便它(可能)工作。 '这是“土地法”;-)
  • 它确实有效,只是浏览器在返回 home.php 之前从未收到指令
  • @jeff 我不敢苟同。这将产生“标头已发送”错误消息。
  • 您期望这里的结果是什么? while 重定向时做些什么?不,不能两者都做。
  • 因为你立即重定向他..

标签: php header echo


【解决方案1】:

为了使您的代码示例正常工作,您需要将其放入 if/else 条件中,如果您希望它正常工作,但由于我只看到您作为代码发布的内容,因此将其作为示例:

<?php

if($result){
    echo("<script>alert('User Successfully Added')</script>");

    echo("<script>window.location = 'home.php';</script>");

}

else {

    header('Location: elsewhere.php');

}

【讨论】:

    【解决方案2】:

    实际上你的回声正在工作。但我们看不到消息,因为同时页面重定向到 home.php 页面。

    如果您想提醒以显示提醒消息,请使用 jquery post。或 php 会话变量

    【讨论】:

    • 那我该怎么办..??
    • 可能的方法是为此。 jquery post,确认框 php session 等
    【解决方案3】:

    假设你想同时显示警报和重定向到 home.php,你为什么不尝试设置一个 SESSION(或其他全局变量)然后检查它是否在重定向页面的开头设置?

    如:

    <?php
        session_start();
        $_SESSION['usercreated']="Y";
        header('Location: elsewhere.php');
    ?>
    

    然后在您的 php 代码开头的 home.php 上:

    <?php
        session_start();
        if(isset($_SESSION['usercreated'])){
            echo("<script> alert('User Successfully Added')</script>");
        }
        //....
    ?>
    

    【讨论】:

      【解决方案4】:

      抱歉,我无法在此处添加评论。但我认为你想做的事情需要 Java 并用 confirm() 替换 alert()

      var r=confirm("User Successfull Added")
        if (r==true) // if user click OK
          {
            window.location.assign("home.php")
          }
            else // user click Cancel
          {
      
          }
      

      【讨论】:

      • JavaScript 不是 Java
      • 我认为这里不需要确认对话框。
      • 那么可能是 以便延迟页面并有足够的时间显示 alert() 对话框.
      猜你喜欢
      • 2020-05-17
      • 1970-01-01
      • 2016-01-12
      • 1970-01-01
      • 1970-01-01
      • 2021-06-08
      • 2011-12-21
      • 2017-09-23
      • 1970-01-01
      相关资源
      最近更新 更多