#php #javascript #swfupload
#php #javascript #swfupload
Вопрос:
Я пытаюсь использовать переменную в качестве значения «ключа» в массиве параметров объекта javascript swfupload. Страница получения запроса ajax проверяет имя / идентификатор сеанса перед продолжением обработки, поэтому эти значения обязательны.
Однако, поскольку имя сеанса является переменным, я не могу просто установить его статически. Я пытаюсь что-то вроде этого:
var myid = ".$php_pageid.";
var sessionid = '".$php_sessionid."';
var sessionname = '".$php_sessionname."';
var swfu = new SWFUpload({
// Backend Settings
upload_url: "index.php",
post_params:
{
"task" : "ajaxUpload",
"id" : myid,
sessionname : sessionid
},
Однако, когда я console.dir
использую объект swfu, он показывает
sessionname: "234630019cc86c366e1fa390ac737648"
вместо
d9fb7fb097782697802a63e5f65b765e: "234630019cc86c366e1fa390ac737648"
как требуется.
Я знаю, что мог бы просто сделать
var swfu = new SWFUpload({
// Backend Settings
upload_url: "index.php",
post_params:
{
"task" : "ajaxUpload",
"id" : myid,
"'.$php_sessionname.'" : "'.$php_sessionid.'"
},
Но я абстрагирую js в его собственный файл и устанавливаю все переменные в файле PHP.
Есть ли правильный способ установить переменную в качестве ключа пары опций?
Ответ №1:
Делайте это динамически, а не декларативно:
var params = {
"task" : "ajaxUpload",
"id" : myid
};
params[sessionname] = sessionid;
var swfu = new SWFUpload({
// Backend Settings
upload_url: "index.php",
post_params: params,
Комментарии:
1. Однако это может рассматриваться как угроза безопасности. Зачем предоставлять имя сеанса JavaScript? Почему бы не использовать постоянную строку?
2. Привет, Мэтт — не могли бы вы подробнее рассказать об «использовании постоянной строки»? Спасибо
3. Используйте постоянный ключ вместо имени сеанса, например.
{...sessionname: sessionid...}
Мне любопытно узнать, почему вы вообще это передаете. Похоже на довольно зияющую дыру в безопасности или, по крайней мере, запах кода.