我知道这很容易让人感到尴尬,但我现在无法让它工作,不断出现语法错误,我只是添加了一个预先填写表单字段的jquery代码,当你选择表单字段时它会清除默认值。结果是,如果用户在不更改默认值的情况下提交表单,我需要查看它是否存在于我的普通字符串sanitation之外
在PHP下面的这个片段中我需要在$ fname上运行2个条件,但是下面的代码不起作用,有人可以帮忙吗
$fname = 'first name';
if (trim($fname) == '') && ($fname != 'first name') {
$err .= "error";
}else{
$err .= "all good";
}
对于karim79 以下代码来自您的示例,就像这样给了我这个错误
致命错误:无法在第5行的写入上下文中使用函数返回值
<?PHP
$fname = '';
if(empty(trim($fname))) {
echo "First name is empty";
}
?>
答案 0 :(得分:5)
$fname = 'first name';
if (trim($fname) == '' || $fname != 'first name') {
$err .= "error";
} else {
$err .= "all good";
}
我更愿意使用strcmp:
if (trim($fname) == '' || strcmp($fname,'first name') !== 0) {
$err .= "error";
} else {
$err .= "all good";
}
如果名字的大小写不重要,您应该考虑使用strcasecmp
。另请注意,您可以使用empty
来测试空字符串:
$fname = '';
$fname = trim($fname);
if(empty($fname)) {
echo "First name is empty";
} else {
echo "Not empty";
}
使用空时,请注意以下事项(来自manual):
注意:empty()仅将变量检查为 其他任何东西都会导致解析 错误。换句话说,以下 不起作用:空(修剪($ name))。
答案 1 :(得分:2)
$fname = 'first name';
if (trim($fname) == '' || $fname == 'first name') {
$err .= "error";
}else{
$err .= "all good";
}
PS:我认为如果字符串为空或标准值,则要引发错误。如果那是错的,请告诉我。
答案 2 :(得分:0)
我建议不要使用empty()。它有一些棘手的返回模式,包括告诉你0是空的,以及那种性质的东西。不幸的是,这是PHP的缺点。
相反,请尝试此算法(以下假定您的表单POST):
<?php
$err = array();
// this is for sticklers..with E_STRICT on, PHP
// complains about uninitialized indexes
if( isset($_POST['name']) )
{
$name = trim($_POST['name']);
}
else
{
$name = '';
}
if( strlen($name) == 0 )
{
$err[] = "First name is required.";
}
// after validation is complete....
if( count($err) > 0 )
{
echo "There are errors!";
// probably something more elaborate here, like
// outputting an ordered list to display each error
print_r($err);
}
else
{
echo "It's all good!";
}
?>