【发布时间】:2013-10-12 03:27:41
【问题描述】:
我们都知道 Uploadify 存在会话问题。当我浏览帖子时,我找到了解决问题的方法,即我需要通过 ajax 传递会话。
但问题是,每当我转到包含上传内容的页面时,它通常会在刷新后破坏会话。我什么都没上传。 '。
例如,我进入了一个包含uploadify 脚本的页面。而且什么都不做,我去了其他页面,它自动重定向到登录页面*这意味着会话被破坏。
Uploadify 会在我上传文件之前甚至在按下上传按钮之前调用 ajax 吗?
有没有办法解决这个问题?
这是我的 Ajax 代码:
$(function() {
$('#file_upload1').uploadify({
'formData' : {
'PHPSESSID': '<?=session_id()?>',
'timestamp' : '<?php echo $timestamp;?>',
'token' : '<?php echo md5('unique_salt' . $timestamp);?>'
},
'swf' : 'uploadify.swf',
'uploader' : 'uploadify1.php?id=<? echo $id; ?>&state=<? echo strtolower($state); ?>'
});
});
这是我的顶级 PHP 代码:
session_id($_POST['PHPSESSID']);
include "func.php";
sec_session_start();
sec_session_start(); 是一个函数。所以,sec_session_start(); 代码:
function sec_session_start() {
$session_name = 'sec_session_id'; // Set a custom session name
$secure = false; // Set to true if using https.
$httponly = true; // This stops javascript being able to access the session id.
ini_set('session.use_only_cookies', 1); // Forces sessions to only use cookies.
session_set_cookie_params(86400);
$cookieParams = session_get_cookie_params(); // Gets current cookies params.
session_set_cookie_params($cookieParams["lifetime"], $cookieParams["path"], $cookieParams["domain"], $secure, $httponly);
session_name($session_name); // Sets the session name to the one set above.
session_start(); // Start the php session
session_regenerate_id(true); // regenerated the session, delete the old one.
}
【问题讨论】:
-
您能否更清楚地描述问题所在并展示您用于解决问题的代码?
-
你怎么知道是会话在起作用?您确定没有其他导致页面重新加载的 JavaScript 错误吗?
-
是的。我尝试删除 jqeur.uploadify.js 的路径并且 SESSION 没有被破坏。
-
另外,我打印了会话,它返回 0
标签: php jquery ajax session uploadify