在uploadify中传递$ _SESSION

问题描述

| 我正在使用uploadify允许图像以表格形式上传。 我遇到的问题如下: 要提交表单,必须先登录用户。 理想情况下,图像将上传到路径/ uploads / 问题是,uploadify的swf连接到的PHP脚本无法使当前会话处于活动状态。那意味着我做不到
<?PHP
// this would be the backend script that handles the upload

session_start();
$username = $_SESSION[\'username\'];
$upload_path = \"/uploads/$username/\";

?>
现在,uploadify允许您以JSON格式将$ _POST信息传递到PHP脚本。 所以我可以做 scriptData:{用户名
\'<?PHP echo $_SESSION[\'username\'] ?>\'
} 在javascript部分和PHP中会收到该变量。但这并不安全。...某人可以修改信息并创建{username:what-he-wants}。 我该如何解决这个问题? tl; dr-使用uploadify时,如何在后端脚本中使用现有的$ _SESSION变量?     

解决方法

        不安全的是: 发送带有请求的会话ID,并让服务器使用该会话ID(如果已发送)。 当我使用swf上传器时,就是这样做的。像这样:
if ( !empty($_POST[\'sess\']) ) {
    session_id($_POST[\'sess\']);
}
session_start();
在发出请求的页面上,您将获得带有以下内容的会话ID:
<?php echo session_id(); ?>
应该可以,但是也不是很安全。我的建议:不要使用swf上传器=)HTML5引入了
accept=\"mimetypes\"
multiple
作为文件输入属性。参见规格。如果客户端不支持这样的HTML5:太糟糕了     ,        不传递用户名-传递整个会话。这个问题说明了如何:会话和上载ify 简而言之,这应该在会话中传递:
\'script\'    : \'/upload.php?<?= session_name(); ?>=<?= session_id(); ?>\',