页面重定向PHP

页面重定向PHP,php,html,Php,Html,拥有一个只有授权人员才能看到的文件。并尝试在加载页面之前重定向其他用户。下面的方法允许加载我不想要的页面 <?php session_start(); // Check if person is logged in if($_SESSION['login'] != 'true'){ //if login in session is not set echo "<script> window.location = 'index.php'; </script>";

拥有一个只有授权人员才能看到的文件。并尝试在加载页面之前重定向其他用户。下面的方法允许加载我不想要的页面

<?php 
session_start();
// Check if person is logged in
if($_SESSION['login'] != 'true'){ //if login in session is not set

 echo "<script>
window.location = 'index.php';
</script>";
}

?>

请尝试以下方法:

<?php 
session_start();
// Check if person is logged in
if($_SESSION['login'] != 'true'){ //if login in session is not set
header("Location: index.php");
die();
}

由于您使用的是PHP,您可能需要查看文档。更具体地说,在标题上设置
位置
,将触发302重定向到您希望它转到的页面。例如:

<?php
    if($_SESSION['login'] != 'true') {
        header('Location: index.php');
        exit;
    }
?>

这将告诉页面将页面的位置设置为
index.php
。但是,需要注意的是,只有在将任何标记(例如
标记或任何其他相关内容)发送到DOM之前才能执行此操作,否则重定向将失败

您还需要添加
exit,以确保PHP文件中的任何其他逻辑都不会执行。

这对我很有用

session_start();

    // Check if person is logged in
if (!$_SESSION['login'])
{
    // Redirect to Login Page
    header( 'location: login.php' );
    exit;
}

通过PHP发送位置头。



编程一个万无一失的登录系统是很难实现的。我建议你使用一个经过良好测试的库,而不是重新发明轮子。但是,这超出了这个问题的范围。

1。这是错误的。您忘了添加
exit
我可以建议使用
header(“Location:index.php”)
来重定向,而不是使用客户端重定向吗?只需使用
header(“Location:index.php”)而不是回应一些Javascript即可使用php进行重定向,没有必要将html发送到浏览器,这会有点混乱。现在已修复。在web安全中,没有什么是万无一失的,当实现第三方库时,重新设计一个99%的有效解决方案并花费您20分钟来编写,这也没什么错。这将使您的系统变得更为沉重。在这里,您只需检查一个松散的布尔真值,它可能是布尔真值,
1
“yes”
“no”
“false”
等。由于OP实际上是在写“true”或“false”,因此您需要检查确切的发生情况。
session_start();

    // Check if person is logged in
if (!$_SESSION['login'])
{
    // Redirect to Login Page
    header( 'location: login.php' );
    exit;
}
<?php
header("Location: http://www.example.com/"); /* Browser umleiten */

/* Stellen Sie sicher, dass der nachfolgende Code nicht ausgefuehrt wird, wenn
   eine Umleitung stattfindet. */
exit;
?>