Php 通过flash/uploadify时无法识别会话

Php 通过flash/uploadify时无法识别会话,php,jquery,flash,session,uploadify,Php,Jquery,Flash,Session,Uploadify,我正在编写一个应用程序,它使用基于cookie的会话进行身份验证。在我尝试将UploadifyjQuery插件集成到我的站点之前,一切都很顺利。我需要uploadify将文件发送到我的upload.php文件。当我检查upload.php脚本中是否存在任何预先知道的会话变量时,我什么也得不到。我尝试了print\r($\u SESSION),得到了一个空数组 我不确定这是否是我的php会话代码或jquery上传代码的问题。这两方面我都是新手 /** INSIDE JQUERY **/ $('.

我正在编写一个应用程序,它使用基于cookie的会话进行身份验证。在我尝试将UploadifyjQuery插件集成到我的站点之前,一切都很顺利。我需要uploadify将文件发送到我的
upload.php
文件。当我检查
upload.php
脚本中是否存在任何预先知道的会话变量时,我什么也得不到。我尝试了
print\r($\u SESSION)
,得到了一个空数组

我不确定这是否是我的php会话代码或jquery上传代码的问题。这两方面我都是新手

/**  INSIDE JQUERY **/
$('.fileUploadify').uploadify({
    'scriptData': {'filesUploaded':'1','PHPSESSID' : <?php echo json_encode(session_id()); ?>},
    ...


/**  UPLOAD.PHP **/
if(isset($_REQUEST['PHPSESSID'])) 
    session_id($_REQUEST['PHPSESSID']);

if(!isset($_GET['logout']) && isset($_SESSION['user']) && $_SESSION['ipadd'] == $_SERVER['REMOTE_ADDR']) {
    define('USERHASH',$_SESSION['user']);
    require_once('lib/ez_sql_core.php');
    require_once('lib/ez_sql_sqlite.php');
    require_once('lib/functions.php');
    $db = new ezSQL_sqlite('./'.USERHASH.'/','fileInformationBase.sqlite');
    $mdb = new ezSQL_sqlite('./','fileServMain.sqlite');

    $stats = $mdb->get_row("SELECT ID,bandwidthUsage,lastLogin,...
} else die('No no no');
然后在upload.php脚本中放入一个
echo$\u请求['PHPSESSID']
,打印出来

'sjojolnjtcutbomceh50os3kg4'

如果您告诉插件通过常规GET/POST参数发送会话id,则必须在服务器上启用它。您应该首先通过查看从浏览器发出的网络请求(Firefox+FireBug插件是一个很好的选择)来调试此功能,以查看会话id是否到达服务器

如果是,请考虑.HTAccess:

php_flag        session.use_trans_sid           on       
php_flag        session.use_only_cookies        off  

不知何故,flash看到的会话是旧的价值观。我不知道它们是否被缓存了。无论如何,我必须通过删除所有会话cookie并重新开始来“刷新”系统。然后它选择了正确的值。希望这能为将来节省一些时间。

如果我发送一个简单的字符串,为什么要“在服务器上启用它”?服务器不知道它是会话id。PHP不会初始化会话数组,除非它知道它的id。客户端有两种发送方式:通过cookie和通过get/post参数。如果您的客户端不发送cookie,它将发送一个参数(在firebug中可检测),在这种情况下,必须将php配置为使用非基于cookie的会话id。session_id()手册中有更多内容:“如果指定了id,它将替换当前会话id。在会话_start()之前需要调用session_id()为此目的。根据会话处理程序的不同,会话id中不允许所有字符。例如,文件会话处理程序只允许范围为a-z a-z 0-9(逗号)和-(减号)!”
php_flag        session.use_trans_sid           on       
php_flag        session.use_only_cookies        off