Переменные сессии 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'];

Затем я использую эти переменные в своем запросе, и мы все хороши!

Другие вопросы по тегам