这可能同客户端的安全设置有关,如果IE浏览器的cookie被禁止了,你当然就得不到cookie得值了。

解决方案 »

  1.   

    呵呵,这个很难说的,看IE的安全设置,如太高的话,就不让你写cookie了
      

  2.   

    $con=@Mssql_connect($Host,$User,$Password);     
    $DbName="Tab";     
    if ($con){
       $db=mssql_select_db($DbName);
         $query="Select stu_name from StudentView where Stu_Number='$xxname' and passwd='$xxpassword'";        
         $Sqlresult=mssql_query($query);
          $row=mssql_fetch_row($Sqlresult);
          if ($row[1]!='') {
                 setcookie("UserID",$xxname,time()+7200);
     }
    问题出在
    if ($row[1]!='') {
    ==>
    if ($row[0]!='') {
    数组的元素是从下标0开始排的。
      

  3.   

    <?   
       $SelStuCode=$HTTP_COOKIE_VARS["UserID"];
       if ($SelStuCode=='') {
           $SelStuCode=$_COOKIE['UserID'];
           die("请重新登陆系统.");      
       }
    ?>
    ==>
    <?   
       $SelStuCode=$_COOKIE['UserID'];
       if ($SelStuCode=='') {
       die("请重新登陆系统.");      
       }
    ?>
      

  4.   

    如果IE的cookie关闭了,就读不出来了,
    有的客户机上你有读出cookie值,证明你的写的程序没错。
    你可以用session,IE的cookie关闭了也可以传值,session保密性很强,
    因为它是在服务端执行的。
    $user="用户名";
    session_start();//初始化一个新的 Session,若该客户已在 Session 之  中,则连上原 Session。
    session_register($user);//注册
    if(session_is_registered($user)){//检查目前的 Session 之中是否已有指定的变数注册。参数 name 即为欲检查的变数名。成功则传回 true 值
    echo "用户已登陆"}
    else{
    echo "你还没登陆";
    }
    这样就不用考虑IE的是否把cookie关闭了。