在PHP中使用标题函数时页面不会更改,但可以使用Javascript

时间:2017-08-23 08:37:11

标签: javascript php jquery html sql

我正在创建一个包含用户帐户的非常简单的网站。 在我的'login.php'中,登录详细信息通过表单发送到页面'home.php',其中用数据库检查用户名/密码,然后:

如果它们是正确的,则显示我的页面home.php中的HTML。 如果它们不正确,则不显示HTML,我使用'header'函数返回login.php页面。

这是我的代码:

<?php
    if ($identification==1) { // IF THE IDENTIFICATION IS CORRECT
?>
// Here all the HTML of my page is displayed
<?php   
    }else{ 
        header ('location : login.php'); 
    }
?>

当我这样做时,没有进行重定向,我只有一个空白页面,但当我将其更改为:

<?php
    if ($identification==1) { 
?>
<!-- Here all the HTML of my page is displayed -->
<?php   
    }else{ 
?>
echo "<script type='text/javascript'>document.location.replace('login.php');</script>";
<?php
    }
?>

完美无缺!你知道它为什么不使用标题吗?

此外,是否可以直接在主页中检查用户名/密码,或者我应该在'test.php'页面中进行检查,如果凭据是,则会重定向到'home.php'页面对吗?

编辑,就像这样工作

  if ($identification!=1) { header ('Location: home.php'); exit;
  };

2 个答案:

答案 0 :(得分:1)

我查了一下,试图找出问题所在!结果是您添加重定向错误的方式:

请改用它!冒号:应附加到位置!

<?php
    if ($identification==1) { // IF THE IDENTIFICATION IS CORRECT
?>
// Here all the HTML of my page is displayed
<?php   
    }else{ 
        header('Location: login.php'); 
    }
?>

我希望这有帮助!

答案 1 :(得分:0)

您不必在主页上检查用户名密码,而应该在login.php中检查它,或者可以是login.php的操作文件。如果用户名和密码正确,您可以设置会话值,并可以根据会话值将用户重定向到home.php,否则您可以将用户重定向到login.php

现在使用标题,您只需使用

即可
if( // check your condition here...) {
    header("location:home.php");
    exit();
}else{
    header("location:login.php");
    exit();
}