我正在使用用户帐户创建一个非常简单的网站。 在我的“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
}
?>
效果非常好!您知道为什么它不能与 header 一起使用吗?
此外,直接在主页中检查用户名/密码是否安全,或者我应该在“test.php”页面中进行检查,如果凭据是,该页面将重定向到“home.php”页面正确吗?
编辑,像这样工作
if ($identification!=1) { header ('Location: home.php'); exit;
};
最佳答案
我检查并试图找出问题所在!结果是你添加重定向的方式是错误的:
改用这个!冒号:应该附加到位置!
<?php
if ($identification==1) { // IF THE IDENTIFICATION IS CORRECT
?>
// Here all the HTML of my page is displayed
<?php
}else{
header('Location: login.php');
}
?>
我希望这有帮助!
关于javascript - 在 PHP 中使用 header 函数时页面不会更改,但可以使用 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45834696/