【问题标题】:PHP If Else statement not redirecting correctly?PHP If Else 语句没有正确重定向?
【发布时间】:2013-05-04 10:38:54
【问题描述】:

我正在尝试创建一个 if else 语句来说明如果用户未登录则将他发送到主页,否则,他可以转到 dashboard.php

// Check to see if user is logged in
if ($_SESSION['kt_login_id'] == '') {
    header( 'Location: index.php' );
} else if ($_SESSION['kt_login_id'] != '') {
    header( 'Location: dashboard.php' );
};

在 Firefox 中我收到一个错误,但是说此页面试图以一种不可能的方式重定向?

【问题讨论】:

  • 好的,你把这个放在哪里了?你之前用过session_start();吗?
  • 标头需要一个完整的 URL 才能重定向,请参见此处:stackoverflow.com/questions/3519807/…
  • 您知道,在else 条件中声明if 条件的布尔否定是多余的。如果if 不适用,else 将自动适用。
  • 如果您指定完整的 url,而不仅仅是文件(即http://www.mysite.com/index.php)会发生什么?
  • 例如,如果您的页面是dashboard.php,并且您正在检查它,上面的代码,您将导致无限循环。因为 elseif 语句每次都会尝试重定向到同一个页面

标签: php mysql session if-statement


【解决方案1】:

可能是您已经将内容写入页面

How to make a redirect in PHP? 声明

您可以使用 header() 函数发送新的 HTTP 标头,但这必须在任何 HTML 或文本之前发送到浏览器(例如,在声明之前)。

【讨论】:

    【解决方案2】:

    尝试使用isset

    [code]
    
    
    session_start();
     // Check to see if user is logged in
    if  (isset ($_SESSION['kt_login_id'] )) {  
    header( 'Location: dashboard.php' );
    } else {
    header('Location: index.php);
    }
    
    
    [\code]
    

    【讨论】:

      猜你喜欢
      • 2012-06-08
      • 2019-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多