如何检查字段是否为空,以及PHP函数中是否包含允许的字符?

如何检查字段是否为空,以及PHP函数中是否包含允许的字符?,php,Php,我想在不筑巢的问题上做得更好,如果我这么做的话,我想从我哥哥那里得到一些关于如何思考的帮助。因此,这里的想法是创建一个函数来验证表单中的所有字段是否都已填写并使用了允许的字符 但是我是嵌套if:s的专家,我需要一些帮助来学习更好的方法。我的问题是如何在函数中执行相同的检查?我能用什么好的练习?我可以用数组吗 我的嵌套if语句在这里(我应该稍后对更大的表单执行此操作): 这是我想尝试做的基础: function validate(){ // Code here } // If the s

我想在不筑巢的问题上做得更好,如果我这么做的话,我想从我哥哥那里得到一些关于如何思考的帮助。因此,这里的想法是创建一个函数来验证表单中的所有字段是否都已填写并使用了允许的字符

但是我是嵌套if:s的专家,我需要一些帮助来学习更好的方法。我的问题是如何在函数中执行相同的检查?我能用什么好的练习?我可以用数组吗

我的嵌套if语句在这里(我应该稍后对更大的表单执行此操作):

这是我想尝试做的基础:

function validate(){
    // Code here
}

// If the submit button has been clicked
if(isset($_POST["save"])){  

    if(validate(/*vaibles for each of the fields in the form*/)){

    }else{

    }
}

当您要求提供示例时,请检查以下内容:-

<?php
if(isset($_POST["login"])){

   $error = validate($_POST);

    if(empty($error) {

    .....//your further processing code
    }else{
     // code to show your error at appropriate place.
    }
}
function validate($dataArray){
    $validateArray  = $dataArray; // either asign to a new variable or you can use directly $dataArray
    $errors = array();
    if(empty($_POST['user']) or !preg_match("/^[a-zA-Z0-9 ]*$/", $_POST['user'])){
        $errors['user'] = "You can't leave a field empty and you can only use letters, numbers and space.";
    }
    if(empty($_POST['pass']) or !preg_match("/^[a-zA-Z0-9 ]*$/", $_POST['pass'])){
            $errors['pass'] = "You can't leave a field empty and you can only use letters, numbers and space.";
     }
     //......so on

    return $errors;
}
?>

将if-else条件放在函数中,并将$\u POST数组作为参数传递给该函数。对不起,您能再解释一下吗?什么是$_OST变量/数组?也许给我举个例子会更好。你不需要嵌套所有单独的验证,你可以把它们都放在同一个级别上,然后构建一个包含错误消息的数组。请注意,并非所有字段都使用相同的规则,因此一个函数对所有字段都可能不起作用!我将用错误消息构建一个数组,但这是我需要更多帮助的部分。我知道我不能对所有字段执行验证功能,但大多数字段都是相似的,因此我可以对它们执行验证功能。但当你的意思是在同一水平上,你认为我应该以某种方式在ech之后做所有的if陈述吗?因为我不知道如何检查它们是否都是空的。这看起来很好,得到了代码:)。我唯一不确定的部分是:$validateArray=$dataArray;无论如何,您似乎不使用$validateArray,那么为什么要将$dataArray放入该变量中呢?我知道你为什么这么做:)请检查我编辑的答案,如果它对你有用,你可以把它标记为答案,如果可能的话,再投票。这会帮助其他人。谢谢。我还是不明白你在哪里偶然使用$dataArray?它是否在新的变量中?我将尝试一下,稍后当我知道它对我有效时,我会标记答案:)
$dataArray
是告诉函数将接受一个参数。当您调用函数
validate($\u POST)
时,它将直接保存您的
$\u POST值,在函数的代码中包含更多内容。但我想我只是觉得有点疯狂。我现在有点重温了,你真的不需要以任何其他方式使用它。忘了我的问题吧。我现在要刹车吃午饭,但我很快就会试试这个,并记下它是否有效的问题(我认为它会,看起来是这样的)!
<?php
if(isset($_POST["login"])){

   $error = validate($_POST);

    if(empty($error) {

    .....//your further processing code
    }else{
     // code to show your error at appropriate place.
    }
}
function validate($dataArray){
    $validateArray  = $dataArray; // either asign to a new variable or you can use directly $dataArray
    $errors = array();
    if(empty($_POST['user']) or !preg_match("/^[a-zA-Z0-9 ]*$/", $_POST['user'])){
        $errors['user'] = "You can't leave a field empty and you can only use letters, numbers and space.";
    }
    if(empty($_POST['pass']) or !preg_match("/^[a-zA-Z0-9 ]*$/", $_POST['pass'])){
            $errors['pass'] = "You can't leave a field empty and you can only use letters, numbers and space.";
     }
     //......so on

    return $errors;
}
?>