Передача $ _SESSION в uploadify - PullRequest
4 голосов
/ 07 июня 2011

Я использую uploadify, чтобы разрешить загрузку изображений в форме.

У меня проблема в следующем:

Чтобы отправить форму, пользователь должен войти в систему. Изображения, в идеале, будут загружены в путь / uploads /

проблема в том, что php-скрипт, к которому подключается SWIF-файл uploadify, не получает сеансы, активные в данный момент. это означает, что я не могу сделать

<?php
// this would be the backend script that handles the upload

session_start();
$username = $_SESSION['username'];
$upload_path = "/uploads/$username/";

?>

Теперь uploadify позволяет передавать информацию $ _POST в скрипт php в формате JSON.

Чтобы я мог сделать

scriptData: {имя пользователя: '<?php echo $_SESSION['username'] ?>'}

в части javascript и php получит переменную. Но это небезопасно ... кто-то может просто умерить информацию и сделать {имя пользователя: все, что он хочет}.

Как мне обойти эту проблему?

tl; dr - при использовании uploadify, как я могу использовать существующие переменные $ _SESSION в скрипте бэкэнда?

Ответы [ 2 ]

4 голосов
/ 07 июня 2011

Небезопасно это:

Отправьте идентификатор сеанса вместе с запросом и попросите сервер использовать этот идентификатор сеанса (если он был отправлен).

Когда я использовал загрузчик SWF, я делал это. Как то так:

if ( !empty($_POST['sess']) ) {
    session_id($_POST['sess']);
}
session_start();

И на странице, где вы делаете запрос, вы получаете идентификатор сеанса с:

<?php echo session_id(); ?>

Должно работать, но тоже не очень безопасно. Мой совет: не используйте загрузчик SWF =) HTML5 вводит accept="mimetypes" и multiple в качестве атрибутов ввода файла. См. Спецификации. Если клиент не поддерживает HTML5, как это: очень плохо

2 голосов
/ 07 июня 2011

Не передавайте имя пользователя - пропустите весь сеанс.Этот вопрос показывает, как: Сеансы и загрузки

В двух словах, это должно пройти сессию:

'script'    : '/upload.php?<?= session_name(); ?>=<?= session_id(); ?>',
...