错误在你的checksession.php文件中:
//代码段
if(!session_is_registered("logoid"))  //判断logoid是否被session标记过
{
session_destroy();
session_register("logoid");  //记录session变量logoid
$logoid=$ip;
$logoyse=1;
} 如果if的条件是成立的,就执行里面的代码段,你在开头已经session_start了,建立了session文件,在这里你session_destroy();,这个函数是会把session的临时文件都删除掉的,就是彻底删除,会导致session_start失效,所以你后面的session_register("logoid");是没有作用的,会有错误。我发现的错误就是这里,不知道是否是楼主提示错误的原因,反正这个是一个很明显的错误。把那个代码段改为:
if(!session_is_registered("logoid"))  //判断logoid是否被session标记过
{
session_unset();//替换掉session_destroy();,这个不会删除session文件
session_register("logoid");  //记录session变量logoid
$logoid=$ip;
$logoyse=1;
}

解决方案 »

  1.   

    有如下的一种说法:session_register("logoid");  改为   $_SESSION["logoid"]; 
    还有如下的一种说法:当register_globals=off时,若使用session_register注册session变量就会出现那个警告信息。
    这是php的一个预警机制。
    因为用session_register注册的变量必须是全局变量,而register_globals=off时又关闭了全局变量的魔术转换。在此情况下极易产生错误,所以才设了此警告。
    这个警告是可以关闭的,当然你需要自行承担由此带来的风险
    bug_compat_42 = off
    session.bug_compat_warn = off