douchui4815
2014-04-11 04:22
浏览 23
已采纳

无法在PHP中销毁会话和cookie

Currently I am using the following code to log users out.

session_start();    
setcookie("u", "", time() - 999999);
setcookie("i", "", time() - 999999);
setcookie(session_name(),"",time()-999999);
session_destroy();

$_COOKIE['u'] and $_COOKIE['i'] are used to automatically log in users.

My problem is when I put this logout file directly under the web directory (i.e. www/), it works very well. However, when I put it in the secondary directory (i.e. www/includes/) or combined these codes with other PHP pages (i.e. change password and then log user out) in includes folder, user is not able to log out successfully.

图片转代码服务由CSDN问答提供 功能建议

目前我使用以下代码将用户注销。

 < 代码>在session_start();  
setcookie(“u”,“”,time() -  999999); 
setcookie(“i”,“”,time() -  999999); 
setcookie(session_name(),“”,time() -  999999)  ; 
session_destroy(); 
   
 
 

$ _ COOKIE ['u'] $ _ COOKIE ['i'] 用于自动登录用户。

我的问题是当我将此注销文件直接放在web目录下(即 www / )时,它可以工作 很好。 但是,当我把它放在辅助目录(即 www / includes / )中,或者将这些代码与其他PHP页面组合在一起(即更改密码,然后登录用户), includes 文件夹,用户无法成功注销。

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

1条回答 默认 最新

  • doumeinuoye81969 2014-04-11 04:29
    最佳回答

    It seems like your cookies are being set on different paths. The 4th parameter is the domain path and the 5th is the domain.

    bool setcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] )
    

    See http://www.php.net/manual/en/function.setcookie.php

    It's a good idea to explicitly set these when working with cookies.

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题