不知道为什么Adobe不让Flash访问Cookie,或是浏览器不让访问?
项目#泡泡站长网#中大量使用 $user->get_user_id()来获取登录用户ID,包括上传文件命名的时候都会把用户ID包含到文件名中,导致使用 #SWFUpload# 和 #Uploadify#上传组件时无法获取用户ID编号。
于是对 $user->get_user_id() 进行改造。
// 判断SESSION用于无法访问COOKIE的情况,保存的SESSION键名在对应。
public function get_user_id()
{
$id = isset($this->user['id']) ? intval($this->user['id']) : 0;
if ($id == 0 && isset($_SESSION))
$id = isset($_SESSION['user_id']) ? $_SESSION['user_id'] : 0;
return $id;
}
在执行$user->get_user_id()之前应该确保session可以正确访问,可以通过提交 session_id来解决
if (isset($_REQUEST['sessionID']))
session_id($_REQUEST['sessionID']);
SWFUpload 如何提交session_id,可以参考另一篇博文:
解决 KindEditor SWFUpload 批量上传检测用户登录状态的问题