【问题标题】:My Header location not working on live but on localhost working Perfect我的标题位置不在现场工作,但在本地主机上工作完美
【发布时间】:2015-04-07 08:07:44
【问题描述】:

我的 Header 位置无法在现场运行,我有 Godaddy 托管,我的其他项目运行良好,但在 localhost 上运行完美。

<?php

    $dataerr    =   "";
    $valueX     =   rand(1, 6);
    $valueY     =   rand(6, 9);
    $bodmas     =   array('+', '-', '*');
    shuffle($bodmas);
    eval("\$ans=".$valueY.$bodmas[0].$valueX.";");
    $security = md5($ans);



    if(isset($_POST['vname']))  {$visname   =   $_POST['vname'];}
    if(isset($_POST['vemail'])) {$visemail  =   $_POST['vemail'];}
    if(isset($_POST['ccode']))  {$ccode     =   $_POST['ccode'];}
    if(isset($_POST['hcode']))  {$hcode     =   $_POST['hcode'];}

    if($_SERVER['REQUEST_METHOD'] == 'POST') {  

    $passing    =   md5($ccode);


    if((!filter_var($visemail, FILTER_VALIDATE_EMAIL)) or (!preg_match("/^[a-zA-Z ]*$/",$visname)) or
        (!is_numeric($ccode)) or ($passing !== $hcode)) {

            $displayblock = "showERROR";

            if(!preg_match("/^[a-zA-Z ]*$/",$visname)) {
                $dataerr .= '<span class=""><li>Please enter valid name !</li></span>'; 
            }

            if(!filter_var($visemail, FILTER_VALIDATE_EMAIL)) {
                $dataerr .= '<span class=""><li>Please enter valid email address !</li></span>';
            }

            if(!is_numeric($ccode)){
                $dataerr .= '<span class=""><li>Solve the sum, no kidding !</li></span>';
            } else {if($passing !== $hcode){
                    $dataerr .= '<span class=""><li>Your answer was Incorrent !</li></span>';
                }
            }

        } else {
            session_start();
            $_SESSION['DSTAR'] = "DSTARINFOTECH";
            header('Location: http://www.example.com/');
        }
    } 

    ?>

【问题讨论】:

  • 请在脚本顶部写上error_reporting(E_ALL|E_STRICT);,让我知道你得到了什么。
  • 没有任何错误发生,即使错误日志和错误报告是开启的

标签: php header location


【解决方案1】:

尝试在header(...);之后使用die();

header('Location: http://www.example.com/');
die();

看看这个:How to make a redirect in PHP?

【讨论】:

    【解决方案2】:

    尝试在header()之后添加exit()可能是因为服务器之间的输出缓冲设置不同

    header('Location: http://www.example.com/');
    exit();
    

    【讨论】:

      【解决方案3】:

      在您的页面顶部添加以下函数,其中 header() 比 try 和 header() 将为您工作。

      ob_start();
      

      【讨论】:

        【解决方案4】:

        试试

         echo "<script>window.location.href='http://www.example.com/';</script>";
        

        【讨论】:

        • 但这不是解决我问题的正确方法,我想知道我的脚本哪里有问题
        【解决方案5】:

        打开错误报告。

        很有可能您已经在发送标头,因此收到了Header already sent...

        可能的原因是:

        • 文件中有一个 PHP 结束标记。
        • Byte order mark - 这在很大程度上取决于您的编辑器。
        • session_start() 会修改标头。
        • 来自 PHP 的先前错误/警告/等。
        • 在标题前发送无意的空格。

        再一次。打开错误报告并仔细检查您的代码。

        查看this 问题以获取更多和更深入的信息。

        【讨论】:

        • 警告:session_start():无法发送会话缓存限制器 - 标头已发送
        • 好了。将 session_start() 放在文件的最开头,我的意思是放在文件的最开头。在
        【解决方案6】:

        不确定,但试试这个。添加您需要去的页面。

        header('Location: index.php');
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-06-13
          • 2018-04-29
          • 2018-10-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多