【问题标题】:Redirect function doesn't work well - PHP重定向功能无法正常工作 - PHP
【发布时间】:2013-11-22 16:09:04
【问题描述】:

您好,我有以下 PHP 代码:

 function redirect()
 {
     header("Location: index.php");
 }
 session_start();

 if(isset($_SESSION['userName'] ))
    redirect();


 if($_SERVER['REQUEST_METHOD'] == 'POST')
 {   //more code goes here...
   redirect();
  }

问题是函数redirect只能在以下情况下工作:

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

为什么以及如何解决?

谢谢!

【问题讨论】:

  • 这个函数一团糟
  • @JohnConde oyu 能解释一下为什么请求吗?
  • @NaveTseva - 如果不出意外,缺少缩进使得它很难阅读
  • 将会话作为网页上的第一件事开始,并且非常没有必要仅仅为了重定向而调用整个函数
  • @NaveTseva 现在代码已由 George 缩进,您可能会明白为什么它会在帖子中重定向....如果您设置 $_SESSION['userName'] = true; 它将重定向例如,问题是......你想做什么

标签: php forms session http-headers


【解决方案1】:

你可以试试这个,

    session_start();
    function redirect()
    {
        header("Location: index.php");
    }

    if(isset($_SESSION['userName'])){
        redirect();
    }elseif($_SERVER['REQUEST_METHOD'] == 'POST'){   
     //more code goes here...
     redirect();
    }

【讨论】:

  • 是否应该在header('location: index.php');之后添加die(),以防调用redirect()函数后有更多代码?在我的菜鸟时代,我想知道为什么我的 SQL 在重定向后继续执行大声笑
【解决方案2】:

否则会发生什么? 有什么错误吗? 那里发生了什么?

我们需要更多信息!

这应该会有所帮助:

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
?>

【讨论】:

    【解决方案3】:

    它在那种情况下工作,因为你在那种情况下调用它...... 也许如果你使用一些标签,你会明白为什么

    看看

    //your function
    function redirect(){
        header("Location: index.php");
    }
    //here your function end
    
    //this is not part of the function
    session_start();
    if(isset($_SESSION['userName'] ))
        redirect();
    
    if($_SERVER['REQUEST_METHOD'] == 'POST') {   
        //more code goes here...
       redirect();
    }
    

    【讨论】:

      猜你喜欢
      • 2017-03-16
      • 2011-04-19
      • 1970-01-01
      • 2017-09-23
      • 2013-04-08
      • 2017-09-23
      • 2015-08-09
      • 2014-07-01
      相关资源
      最近更新 更多