刚开始,是的,我已经阅读了与此主题相关的所有其他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_id
和school_id
,我的错误日志显示该行的未定义索引错误。
答案 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'];
然后我在查询中使用这些变量,我们都很好!