我在验证方面遇到了一些问题。我这里有这个代码片段,它通过这种方式工作:如果pizza_size
变量未在查询字符串中设置且产品类别的ID为1(对应于比萨饼)或已设置但{{1} } value不等于pizza_size
,small
或medium
这需要返回页面big
,并显示未选择大小的消息。我正在尝试:
products.php
问题是这不起作用。即使if(!isset($_GET['pizza_size']) || $_GET['pizza_size'] != "small" || $_GET['pizza_size'] != "medium" || $_GET['pizza_size'] != "big" && $category_id == 1)
{
redirect_to('products.php?message=no-size-informed');
}
else //Add the product
对应pizza_size
,small
或medium
,我也会收到错误消息。但是,如果我只使用一次比较,这很有效,例如:
big
但我需要验证3种尺寸。如何使用所有三个可能的变量进行此验证?谢谢!
答案 0 :(得分:2)
if(($category_id == 1)
&& !(isset($_GET['pizza_size']) && in_array($_GET['pizza_size'], array('small', 'medium', 'big')))
) {
redirect_to('products.php?mesage=no-size-informed');
}
else {
// Add the product
}
答案 1 :(得分:1)
你必须这样做:
if(($category_id == 1)
&& (isset($_GET['pizza_size'] && !in_array($_GET['pizza_size'], array('small', 'medium', 'big')) || !isset($_GET['pizza_size']
) {
redirect_to('products.php?mesage=no-size-informed');
}