【发布时间】:2014-04-26 09:35:58
【问题描述】:
我在 logout.php 中有这段代码
session_start();
$FileLink = 'tmp/sess_'.session_id();
//echo $FileLink ; shows the tmp/sess_3386911cc664626ffb3664c478c8ad55 file
unlink($FileLink);
session_unset();
session_destroy();
我读过很多帖子都说相同的方法但是我没有删除会话文件。
有什么问题吗?
我什么都试过了。 if is file , iswritable , is readable , is path , 将路径更改为完整路径,没有任何效果,只是会话未设置,文件将为 0 字节但不会被删除。
有什么建议吗?
编辑我的 php.ini
session.save_handler = "files"
session.save_path = "/home/website/public_html/gallery/tmp"
session.use_cookies = 1
session.use_only_cookies = 1
session.name = "PHPSESSID"
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = "/"
session.cookie_domain = ""
session.cookie_httponly = ""
session.serialize_handler = "php"
session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 1440
session.bug_compat_42 = ""
session.bug_compat_warn = ""
session.referer_check = ""
session.entropy_length = 0
session.cache_limiter = "nocache"
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 5
EDIT2 文件夹权限
tmp 文件夹是 755 ,尝试使用 777 仍然相同,即使文件是可读或可写的,我也确实如此。
【问题讨论】:
-
我认为tmp是系统tmp,位于根目录,即:/tmp,不是tmp。
-
我已经更改了完整路径,但它是错误的。
-
尝试先取消设置销毁,再取消链接?
-
在这方面花费了数小时,并阅读了所有相同的 SO 帖子。
-
只是出于好奇,会话文件的标准 PHP 垃圾收集有什么问题?