Php Can';两个月后,我不能提交我的表格<;选项>;有相同的价值
编辑:我错误地分析了问题,所有值等于0是有问题的。您是对的,问题似乎来自功能,您知道如何改进该功能吗? 我的网站有问题 为了上下文化,我创建了一个允许管理员向数据库添加新成员的网页。我们可以自定义字段(姓名、姓氏、年龄等) 但是我的选择选项字段有问题 …使用函数not_empty()检查字段是否已填充Php Can';两个月后,我不能提交我的表格<;选项>;有相同的价值,php,html,Php,Html,编辑:我错误地分析了问题,所有值等于0是有问题的。您是对的,问题似乎来自功能,您知道如何改进该功能吗? 我的网站有问题 为了上下文化,我创建了一个允许管理员向数据库添加新成员的网页。我们可以自定义字段(姓名、姓氏、年龄等) 但是我的选择选项字段有问题 …使用函数not_empty()检查字段是否已填充 if(!function_exists('not_empty')){ function not_empty($fields = []){ if(count($field
if(!function_exists('not_empty')){
function not_empty($fields = []){
if(count($fields) != 0){
foreach($fields as $field){
if(empty($_POST[$field]) || trim($_POST[$field]) == ""){
return false;
}
}
return true;
}
}
}
我是否被迫使用不同的值为了我的整个表格
function not_empty($fields = []) {
foreach($fields AS $key) {
// Check is set
if(!isset($_REQUEST[$key]))
return false;
$input = $_REQUEST[$key];
// Check not null value
if(is_null($input))
return false;
// If is array of list items check at least one is selected
if(is_array($input) && count($input) === 0)
return false;
// Must be string or number, trim white sapce
$input = trim($input);
// If is valid number continue iteration
if(is_numeric($input))
continue;
// Must be a string, check length is more than zero
if(strlen($input) === 0)
return false;
}
return true;
}
为什么和他们自己可以与你作对
函数empty将在以下值情况下返回true:
- 未声明变量、数组键、对象键
- isnull
- 为空/长度为零的字符串(“”)
- is为假
- 是0(零)
- 如果null
- 如果字符串为空/长度为零('')
- 如果false,则为true
- 如果0(零),则为真
if
语句越少,它的性能就越好,请始终进行实验
即使是空数组,也最好将值作为预期类型传递,而不是将值设为NULL
空检查对代码不好,空设置并不总是正确的
必要的
为什么和他们自己可以与你作对
函数empty将在以下值情况下返回true:
- 未声明变量、数组键、对象键
- isnull
- 为空/长度为零的字符串(“”)
- is为假
- 是0(零)
- 如果null
- 如果字符串为空/长度为零('')
- 如果false,则为true
- 如果0(零),则为真
if
语句越少,它的性能就越好,请始终进行实验
即使是空数组,也最好将值作为预期类型传递,而不是将值设为NULL
空检查对代码不好,空设置并不总是正确的
必要的
empty
的主要优点是,它在检查变量/键的值是否等于false
(其中包括“0”;请参阅)的同时检查变量/键是否已设置,而不会引起未定义的通知。使用这里的操作,您应该能够使用isset
。这将检查变量是否已设置,这将防止下一部分在未设置时抛出通知,并且下一部分将确保它有一个值(包括零)
empty
的主要优点是,它在检查变量/键的值是否等于false
(其中包括“0”;请参阅)的同时检查变量/键是否已设置,而不会引起未定义的通知。使用这里的操作,您应该能够使用isset
。这将检查变量是否已设置,这将防止下一部分在未设置时抛出通知,并且下一部分将确保它有一个值(包括零)
考虑到你的价值观,你的非空逻辑似乎有缺陷
empty($\u POST[$field])
将为0
返回true,导致not\u empty返回false。为了强化@Devon的TheoryNo,您不必使用不同的值。只要每个控件都有一个独特的名称
,它们就不会相互干扰。因此,除了已经说过的关于您使用empty
的内容之外,似乎问题出在此处未显示的某些代码中(尽管empty
问题可能与此相关)。真的,我很惊讶地听到它与$\u POST['ban'一起工作==0
.Empty将选择选项值中的0视为空,因此每次选择0作为值时,它总是给您“return false”。考虑到您的值,非空逻辑似乎有缺陷empty($\u POST[$field])
将为0
返回true,导致not\u empty重新生成
if(!function_exists('not_empty')){
function not_empty($fields = []){
if(count($fields) != 0){
foreach($fields as $field){
if(empty($_POST[$field]) || trim($_POST[$field]) == ""){
return false;
}
}
return true;
}
}
}
function not_empty($fields = []) {
foreach($fields AS $key) {
// Check is set
if(!isset($_REQUEST[$key]))
return false;
$input = $_REQUEST[$key];
// Check not null value
if(is_null($input))
return false;
// If is array of list items check at least one is selected
if(is_array($input) && count($input) === 0)
return false;
// Must be string or number, trim white sapce
$input = trim($input);
// If is valid number continue iteration
if(is_numeric($input))
continue;
// Must be a string, check length is more than zero
if(strlen($input) === 0)
return false;
}
return true;
}
if (!isset($_POST[$field]) || trim($_POST[$field]) == "") {