PHP:非常基本的验证

时间:2014-11-25 22:11:00

标签: php validation mysqli

所以我试图将$ _POST值与我的数据库进行比较,如果它匹配则回显'已经采取了。输入另一个'。但它似乎没有用。所以我试图将$ _POST值与我的数据库进行比较,如果它匹配则回显'已经采取了。输入另一个'。但它似乎没有工作..     

//if form has been submitted process it
if(isset($_POST['submit'])){


    //collect form data
    extract($_POST);

    //very basic validation

if($idnumber ==''){
        $error[] = 'Please enter the ID Number.';
    }

    if($password ==''){
        $error[] = 'Please enter the password.';
    }

    if($passwordConfirm ==''){
        $error[] = 'Please confirm the password.';
    }

    if($password != $passwordConfirm){
        $error[] = 'Passwords do not match.';
    }

    if($fullname ==''){
        $error[] = 'Please enter the Full Name.';
    }
    if($role ==''){
        $error[] = 'Please select a role type.';
    }

$idmatch=$mysqli->query('SELECT idNUMBER from members where idnumber=$idnumber');
if (mysqli_num_rows($idmatch)==1) {
  echo'Id number already taken';
}?>

2 个答案:

答案 0 :(得分:1)

我相信sql区分大小写! 您正在使用" idNUMBER"然后使用" idnumber"过滤。

答案 1 :(得分:0)

我从不使用提取物,不是真的推荐,特别是POST值。

我建议您直接使用post数组并使用isset()检查它是否有值:

if(!isset($_POST['idnumber']){
    $error[] = 'Please enter the ID Number.';
}

if(!isset($_POST['password']){
    $error[] = 'Please enter the password.';
}

if(!isset($_POST['passwordConfirm']){
    $error[] = 'Please confirm the password.';
}

if($_POST['password']!= $_POST['passwordConfirm']){
    $error[] = 'Passwords do not match.';
}

if(!isset($_POST['fullname']){
    $error[] = 'Please enter the Full Name.';
}
if(!isset($_POST['role']){
    $error[] = 'Please select a role type.';
}

您还应该准备好您的查询,或至少逃避它。