我正在尝试创建一个函数,它为用户输入提供两个参数,另一个为错误消息。我最初有一个带有两个输入字段和相应错误的关联数组。 当没有任何条目提交函数时,我得到两个类似的输出;我以为我会得到'test1'和'test2'。我每次都传递不同的论点,但我得到了相同的结果。代码在
之下$valid = TRUE;
//$errors='';
$errors=array('desc_error'=>'please enter valid description',
'title_error'=>'provide valid title','no_error'=>'',);
function sanitizeText($input,$error){
//$input;
if($input!='')
{
$input= filter_var($input, FILTER_SANITIZE_STRING);
if($input==''){
global $errors;
$errors[$error];
$valid=FALSE;
return $errors[$error];
}
else{
$input;
echo 'test 1';
return $input;
}
}
else if($input=='')
{
if($input==$_POST['desc'])
{
echo 'the description field is required<br/>';
$valid=FALSE;
}
else{
//
}
}
}
if(isset($_POST['submit']))
{
$title=sanitizeText($_POST['title'],'title_error');
$desc=sanitizeText($_POST['desc'],'desc_error');
}
?>
<form method="post" action="">
<p>Book Title:<input type="text" name="title" maxlength="100" value=""/></p>
<p>Desc:<input type="text" name="desc" maxlength="100" value=""/></p>
<p><input type="submit" name="submit" value="Submit"/></p>
</form>
答案 0 :(得分:0)
我认为您正在尝试使用php验证表单,您也可以使用javascript进行验证,但是使用php进行验证请参考以下链接。
http://myphpform.com/required-optional-fields.php
http://coredogs.com/lesson/form-and-php-validation-one-page
http://www.phpf1.com/tutorial/php-form.html?page=3
和
http://www.montanaprogrammer.com/php-web-programming/php-form-validation/
答案 1 :(得分:0)
你的代码在逻辑上没有意义。首先,检查$input
是否为空字符串,或者不是,然后在第一次检查中...您再次进行相同的检查。由于if
按顺序计算,输入不会是空字符串,因此第一个if
将始终执行。
然后,你的第一个'其他';只有当$input
变量是一个空字符串时它才会执行。我可以看到你正在尝试做什么,但它现在不能正常工作。为了使它工作,它必须看起来像下面这样:
function sanitizeText($input,$error) {
global $errors;
global $valid;
$input_val = filter_var($_POST[$input], FILTER_SANITIZE_STRING);
if ($input_val != '') {
$valid = TRUE;
return $input;
}
else if ($input_val == '') {
$valid = FALSE;
echo $errors[$error].'<br />';
}
}
if(isset($_POST['submit']))
{
$title=sanitizeText('title','title_error');
$desc=sanitizeText('desc','desc_error');
}
如果输入值不是空字符串,则返回输入值。如果是,它将不会返回任何内容,而是会回显相应的错误。