У ColdFusion есть возможность доступа к этим переменным так же, как в PHP:
PHP:
$foo = $_GET['variablename'];
$bar = $_POST['variablename'];
CFScript:
foo = URL['variablename'];
bar = FORM['variablename'];
CFML:
<cfset foo = URL['variablename']>
<cfset bar = FORM['variablename']>
Редактировать: обсуждение нечувствительности к регистру области формы и обходного пути
ColdFusion (полезно?) Преобразует все имена полей формы в верхний регистр в области видимости формы. В случаях, когда имя поля повторяется, несколько значений будут объединены в одно значение, разделенное запятыми. Если у вас нет контроля над самой формой, это может привести к разочарованию.
С учетом формы:
<form name="main" action="handler.cfm" method="post">
<input type="text" name="conFUSion" value="abc" />
<input type="text" name="CONfusion" value="def" />
<input type="submit" name="Submit" />
</form>
Область формы на принимающей странице будет выглядеть следующим образом:
![Regular Form Scope](https://i.stack.imgur.com/AphdH.png)
Но вы можете использовать gethttprequestdata().content
, чтобы напрямую получить доступ к исходным полям и значениям, сохраненным в регистре, как опубликовано:
conFUSion=abc&CONfusion=def&Submit=Submit
Поскольку структуры ColdFusion не чувствительны к регистру, мы не можем просто разобрать эту строку в обычную структуру. Вместо этого мы можем обратиться к java.util.HashMap
, который очень похож на структуру ColdFusion, но сохраняет регистр:
arFormscope = gethttprequestdata().content.split('&');
cs_form = createobject('java','java.util.HashMap').init();
for( i=1; i<=arraylen(arFormscope); i++ ){
arElement = arFormscope[i].split('=');
key = arElement[1];
value = arElement[2];
cs_form[key] = value;
}
Сбрасывая cs_form
hashmap, мы получаем:
![enter image description here](https://i.stack.imgur.com/4T5cu.png)
... и наконец:
cs_form['CONfusion']; // def
cs_form['conFUSion']; // abc
cs_form['CONFUSION']; // Error, undefined in java.util.HashMap