我正在创建一个包含用户帐户的非常简单的网站。 在我的'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;
};
答案 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();
}