设置会话后,标头函数在php中不起作用

设置会话后,标头函数在php中不起作用,php,session,Php,Session,所以我推荐了这个php,如果设置了session,那么就这样做,如果没有设置,就转到另一个php,所以我的代码是这样的 <?php ob_start(); session_start(); if(isset($_SESSION['id']) && !empty($_SESSION['id'])) { $id=$_SESSION['id']; if(isset($id)) { $connection=mysqli_connect('local

所以我推荐了这个php,如果设置了session,那么就这样做,如果没有设置,就转到另一个php,所以我的代码是这样的

 <?php
ob_start();
session_start();
if(isset($_SESSION['id']) && !empty($_SESSION['id']))
{
$id=$_SESSION['id'];
    if(isset($id))
    {
        $connection=mysqli_connect('localhost','root','123456789','register');
        $query="select email from register where id='$id'";
        $result=mysqli_query($connection,$query);
        $row=mysqli_fetch_array($result);
        $email=$row['email'];
    }
}

else {header('location: best.php');}
?>


即使我在没有设置会话的情况下直接打开此页面,我仍然可以访问,并且不会被重定向到best.php页面如何处理此问题

为什么选择ob_start()?我认为这是您的问题的一部分,您是否需要缓冲?您可能希望您的php脚本在标题(位置…)之后退出,而不是继续打印“正常”页面内容。您面临的实际问题是什么?我复制了您的代码并粘贴到我的编辑器中,它重定向到best.php,而我还没有设置会话,如果在测试之前设置了会话,请留在测试页面上…在mySIde中工作正常…您可能已经设置了会话,因此当您直接打开此页面时,由于会话可用,您将不会被重定向。要进行检查,请关闭浏览器并重新打开,然后运行此操作,您将成功重定向到ob_start()?我认为这是您的问题的一部分,您是否需要缓冲?您可能希望您的php脚本在标题(位置…)之后退出,而不是继续打印“正常”页面内容。您面临的实际问题是什么?我复制了您的代码并粘贴到我的编辑器中,它重定向到best.php,而我还没有设置会话,如果在测试之前设置了会话,请留在测试页面上…在mySIde中工作正常…您可能已经设置了会话,因此当您直接打开此页面时,由于会话可用,您将不会被重定向。若要进行检查,请关闭浏览器并重新打开,然后运行此操作,您将成功重定向