Переменные сессии PHP в SWFupload
Просто для начала, да, я прочитал все остальные вопросы переполнения стека, относящиеся к этой теме, но ни один из них не дал мне решения. У одного была многообещающая ссылка, которая оказалась мертвой. По всей видимости, весь форум 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
и мой журнал ошибок показывает ошибку неопределенного индекса в этой строке.
1 ответ
Очевидно, что мне не хватает идентификатора сеанса на странице process_upload. Итак, я сделал это, и, похоже, теперь он переносит мои сессионные значения.
Страница загрузки:
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'];
Затем я использую эти переменные в своем запросе, и мы все хороши!