我正在尝试使用if语句检查用户是否已使用正确的数据从正确的位置定向到此页面。
我们会在php中使用
if ($_REQUEST)
{
......
}
但我怎么能在coldfusion中做到这一点?
答案 0 :(得分:5)
根据this,$ _REQUEST是:
一个关联数组,默认包含$ _GET的内容, $ _POST和$ _COOKIE。
在这种情况下,Coldfusion中没有等效物。 $ _GET将等同于CF的URL范围。 $ _POST将等同于CF的FORM范围。 $ _COOKIE与CF的COOKIE范围相当。您需要根据您要查找的内容来检查相应的范围。
然而,Coldfusion的框架,如Coldbox,为您管理“请求集合”。
答案 1 :(得分:4)
有了更多信息,这个答案可能会更完整。
您可以使用CGI.HTTP_REFERER查看用户来自哪里。例如:
if (CGI.http_referer contains 'www.good-domain.com') { ... do something here ... }
您需要检查URL或FORM范围以检查数据,看它是否是“正确的数据”。您可以使用这样的简单检查这些值(检查表单范围 - 在请求正文中发布数据时使用):
requestIsGood = true;
requiredKeys = ['keyA','keyB','keyC'];
for (key in requiredKeys) {
if (!structKeyExists(FORM,key) {
requestIsGood = false;
break;
}
}
if (requestIsGood) { ... do something here ...}
最后,ColdFusion(CFML)中的URL和FORM范围之间的区别在于url的查询字符串中的值将填充到URL范围。表单发布的值将存在于FORM范围中。
对于Adobe ColdFusion 9+ http://adobe.com/go/coldfusion和开源CFML引擎Railo http://getrailo.org,代码示例应该是准确的。它可能适用于另一个开源CFML引擎OpenBD http://www.openbluedragon.org/,但我不确定。
希望这些信息对您有所帮助。