各位,
今天写系统登陆页面时候遇到一个怪问题,如下:
用SetCookie设定后,即刻获取该cookie,无法获取,刷新后就可以获取该cookie,
搞的我设定cookie后还要自刷新一下页面才能搞定,
if($_COOKIE["Refer"]){
  echo "<BR>==1==".$_COOKIE["Refer"];
}
else{
  setcookie("Refer",,,);//该处应该无误,因为刷新后即可得到,说明应该写进去了。
  echo "<BR>==2==".$_COOKIE["Refer"];
}echo "<BR>==3==".$_COOKIE["Refer"];setcookie方法是否有什么其他的问题,时间或许其他什么的,今天第一次写PHP代码,望各位请教,小弟不胜感激!

解决方案 »

  1.   

    你的方法应该没有问题。只是setcookie后没有必要即刻获取啊。如:
    <?php
    setcookie("myTstCky", "ChocChip");    //设置了cookie的值
    echo $_COOKIE["myTstCky"];     //第一次运行肯定不会输出结果,没有必要得到$_COOKIE["myTstCky"]啊,因为你知道$_COOKIE["myTstCky"]的值会是:ChocChip
    ?>
      

  2.   

    从cookie的机制来讲是不可能的.
      

  3.   

    cookie设置完成以后,在下个页面才生效的.
    页面刷新也包括在内.
    这是cookie的机制.
      

  4.   

    没有必要。当前页面已经取得变量,为什么非要从cookie里取?
      

  5.   

    if($_COOKIE["Refer"]){ 
      echo " <BR>==1==".$_COOKIE["Refer"]; 

    ...........你这以前有setcookie吗?
      

  6.   

    SetCookie后面如果只有一个参数的时候,页面一运行cookie就会销毁了,
    如果有多个参数时,才可以获取的
      

  7.   


    setcookie("username");
    echo $_COOKIE["username"];
    得不到cookie
    setcookie("username","zhang");
    echo $_COOKIE["username"];
    可以得到cookie为zhang 
      

  8.   

    你的概念错了
    $_COOKIE 得到的是浏览器传递过来的用户端的cookie
      

  9.   

    谢谢你的回复,我只是想做登陆页面,首先要Check一下某个cookie是否存在或者是否等于某个值,否则的话我就判定他为未登陆状态,强制转向登陆页面;
    在登陆页面,填写相关信息后重新提交过来,首先要判断密码正确与否,正确的话就Setcookie,而后以后经过最下面一段check该cookie的代码,因为
    该时得不到,于是又被强制迁移至登陆页面,第二次登陆才显示成功,因为相当于刷新了第一次登陆的.
    我的上述判断登陆机制是否有问题,大家都是如何来处理登陆认证的.?请大家赐教.
      

  10.   

    该段代码之前refer的cookie未定的.
    因为我用该段代码来判断该cookie是否设定。具体需求请参照9楼回复,谢谢你的回复.
      

  11.   

    登陆认证一般做法是:
    1、一个全局文件,判断cookie,不存在则跳转到登陆页。程序中都包含这个全局文件。
    2、登陆认证页面。负责校验登陆是否成功及setcookie
      

  12.   

    setcookie后
    当前页是不能访问的