我访问   1.php   可以打印xxxx 
因为是执行的是
else 

$_COOKIE[www]=$str; 
//setcookie("www",$str,60*60*24*1); 
} 而我访问   1.php?page=1时,却不能打印   xxxx? 
因为是执行的是
if   ($_GET[page] <> "") 

$str=$_COOKIE["www"]; 

此时$str可能已经被赋为空了

解决方案 »

  1.   

    是的$str是被空的cookie值给替换了,
    但问题就是 我在访问1.php时cookie值已经生成了,即不为空,为什么我访问1.php?page=1时cookie值却为空了? 
    如果说是cookie 失效的话,我使用setcookie("www",$str,60*60*24*1);   赋cookie值,还是没有用, 请问在1.php?page=1是cookie值是如何丢失的?
      

  2.   

    $_COOKIE["www"] 设置了吗?参见手册setcookie部分    不会在设置它的本页生效,要测试一个 cookie 是否被成功的设定,可以在其到期之前通过另外一个页面来访问其值。过期时间是通过参数 expire 来设置的。可以简单地使用 print_r($_COOKIE); 来调试现有的 cookies。 
      

  3.   

    回复 PHPer不错,我也知道 本页无效的规定不过,我使用$str="xxxx"; if   ($_GET[page] <> "") 

    $str=$_COOKIE["www"]; 

    else 

    $_COOKIE[www]=$str; 
    //setcookie("www",$str,60*60*24*1); 
    } echo  $_COOKIE[www]在第一次访问 1.PHP时就 打印出XXXX了
      

  4.   

    回复   PHPer 不错,我也知道   本页无效的规定 不过,我使用 $str="xxxx";   if       ($_GET[page]   <>   "")   
    {   
    $str=$_COOKIE["www"];   
    }   
    else   
    {   
    $_COOKIE[www]=$str;   
    //setcookie("www",$str,60*60*24*1);   
    }   echo     $_COOKIE[www] 在第一次访问   1.PHP时就   打印出XXXX了
    你打印是它....
      

  5.   

    回复   PHPer 不错,我也知道   本页无效的规定 不过,我使用 $str="xxxx";   if       ($_GET[page]   <>   "")   
    {   
    $str=$_COOKIE["www"];   
    }   
    else   
    {   
    $_COOKIE[www]=$str;   
    //setcookie("www",$str,60*60*24*1);   
    }   echo     $_COOKIE[www] 在第一次访问   1.PHP时就   打印出XXXX了
    你打印是它....
      

  6.   

    我就奇怪了,明明你上面 echo $str了!