-2

我真的很困惑!我有这个 php 文件,我在其中放置了这个脚本,用于将用户重定向到主页,以防他没有登录

<?php 

session_start();
if(!isLogged())
{
     header("location: mainarea.php");
     exit;  
}

function isLogged()
{return $_SESSION;}

?>

该页面一直有效,但昨天我在同一个 php 文件中添加了这个 css 规则:

#deleteThumb
{
    position:absolute; top:10px; right:10px; width:20px; height:40px; left:320px;
}

并且重定向将不再起作用!!!!php会话控件渲染之前放置的所有内容,之后,什么都没有,为什么?这似乎是php的一个错误,我没有其他解释

更新:将会话放在脚本的第一行,全部恢复工作!

无论如何,这是一个真正的谜!例如,这总是有效的:

<style>
    #wrapper{width:1000px; margin-right:auto; margin-left:auto; padding-top:70px;}
</style>

    </head>
    <body>
    <?php session_start();
    if(!isLogged())
    {
         header("location: mainarea.php");
         exit;  
    }

    function isLogged()
    {return $_SESSION;} ?>

这不起作用

<style>
    #wrapper{width:1000px; margin-right:auto; margin-left:auto; padding-top:70px;}
    #deleteThumb{position:absolute; top:10px; right:10px; width:20px; height:40px; left:320px;}
  </style>

    </head>
    <body>
    <?php session_start();
    if(!isLogged())
    {
         header("location: areanegozianti.php");
         exit;  
    }

    function isLogged()
    {return $_SESSION;} ?>
4

2 回答 2

1

header 函数必须在任何 html 或 css 代码之前发送。下面的例子:

<?php
session_start();
if(!isLogged())
{
     header("location: mainarea.php");
     exit;  
}

function isLogged()
{return $_SESSION;}
?>

//css has to go below here

<html>
<head>
    //styles should go here
</head>
<body>
</body>
</html>
于 2013-05-15T18:38:35.770 回答
1

您是否使用基于 cookie 的会话?要使用基于 cookie 的会话,必须在向浏览器输出任何内容之前调用 session_start()。

于 2013-05-15T18:40:15.207 回答