SWFupload中的PHP会话变量

时间:2012-06-30 00:43:17

标签: php session swfupload

刚开始,是的,我已经阅读了与此主题相关的所有其他Stack Overflow问题,但没有一个为我提供解决方案。一个人有一个有希望的联系,变成了死亡。显然整个swfupload论坛不再存在。

我的问题当然是将会话变量传递给处理上传的实际PHP并将一行插入MySQL数据库。该SQL行中的两个字段是登录用户的会话变量。

基于文档和我从其他线程读取的内容,这是我的代码(或相关部分):

这是我在主要上传页面中的javascript代码。还有更多,但这是相关的。此代码是我在模板函数中使用的$content变量的一部分,因此它的PHP语法。请注意,当我在浏览器中检查此代码时,它会在那里呈现正确的值。

var swfu;

window.onload = function() {
    var settings = {
        flash_url : "js/swfupload/swfupload.swf",
        upload_url: "process_upload.php",
        post_params: {
            "user_id" : "'.$_SESSION['user_id'].'",
            "school_id" : "'.$_SESSION['school_id'].'"
        },
        file_size_limit : "1000 MB",
        file_types : "*.wmv; *.mpg; *.avi; *.vob; *.mov; *.m4v; *.mpeg; *.mkv; *.flv; *.3gp",
        file_types_description : "All Files",
        file_upload_limit : 10,

现在,在我的process_upload.php文件中,如果我这样做:

$user_id = $_POST['user_id'];
$school_id = $_POST['user_id'];

然后在查询中使用这些变量:

mysql_query("INSERT INTO table SET name='".$file_name."', school_id='".$school_id."', user_id='".$user_id."'") or die(mysql_error());

查询成功,我在数据库中得到一个条目,但它没有填写user_idschool_id,我的错误日志显示该行的未定义索引错误。

1 个答案:

答案 0 :(得分:0)

显然,我缺少的是process_upload页面上的会话ID。所以我这样做了,它现在似乎带有我的会话值。

上传页面:

        post_params: {
            "PHPSESSID" : "'.session_id().'",
            "user_id" : "'.$_SESSION['user_id'].'",
            "school_id" : "'.$_SESSION['school_id'].'"
        },

流程页面:

if (isset($_POST["PHPSESSID"])) {
    session_id($_POST["PHPSESSID"]);
} else if (isset($_GET["PHPSESSID"])) {
    session_id($_GET["PHPSESSID"]);
}

session_start();

$user_id = $_POST['user_id'];
$school_id = $_POST['school_id'];

然后我在查询中使用这些变量,我们都很好!