PHP会话似乎与CSS规则冲突

时间:2013-05-15 18:34:24

标签: php css3 session

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

<?php 

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

function isLogged()
{return $_SESSION;}

?>

该页面始终有效,但昨天我已将此css规则添加到同一个php文件中:

#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;} ?>

2 个答案:

答案 0 :(得分:1)

标头函数必须在任何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>

答案 1 :(得分:1)

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