试图在PHP中将变量列入白名单

时间:2015-01-27 15:34:34

标签: php ajax

我试图检查我从ajax获得的变量是否是我所期望的,或者是否有人试图注入一些讨厌的东西。

基本上我需要检查两件事...... $ sortvalue是两个可能的选项之一,$ sortorder是两个可能的选项之一。这需要是一个OR / AND语句。像这样:

检查1:如果$ sortvalue是"值" OR" database_percent" 和 检查2:如果$ sortorder是" asc"或" desc"

然后继续其余的代码。

我在PHP中有以下内容,$ sortvalue部分可以工作,但是$ sortorder没有。也就是说,如果我尝试发送" asc"以外的值。或" desc"对于$ sortorder,我得到500错误。我想我不太确定如何将它们嵌套在一起。

if ($sortvalue == "value" || $sortvalue == "database_percent" && $sortorder == "asc" || $sortorder == "desc") {
//do something
}
else {
//do something different
}

1 个答案:

答案 0 :(得分:3)

您需要使用括号来强制运算符优先级:

if (
     ($sortvalue == "value" || $sortvalue == "database_percent") 
     && 
     ($sortorder == "asc" || $sortorder == "desc")
   ) {
//do something
}
else {
//do something different
}