2012-06-30 4 views
0

Для начала да, я прочитал все другие вопросы переполнения стека, относящиеся к этой теме, но ни один из них не предоставил мне решение. У одного была многообещающая связь, которая, казалось, была мертвой. По-видимому, весь форум swfupload больше не существует.Переменные сеанса PHP в 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

Таким образом, очевидно, что мне не хватает идентификатора сеанса на странице 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']; 

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

Смежные вопросы