Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php电子邮件和电话号码验证_Php_Validation_Email_Numbers - Fatal编程技术网

php电子邮件和电话号码验证

php电子邮件和电话号码验证,php,validation,email,numbers,Php,Validation,Email,Numbers,我目前有以下工作代码,但我需要在此基础上进行一些电子邮件和电话号码验证,以确保它是一个实际的电子邮件和电话号码,而不是其他数据。我找到了可以使用的代码 function valid_email($email) { return !!filter_var($email, FILTER_VALIDATE_EMAIL); } 但我不确定如何将其合并到我当前的代码中。我想得到一些帮助 这是我当前的php代码 //load form validate $firstName= $_POST['fi

我目前有以下工作代码,但我需要在此基础上进行一些电子邮件和电话号码验证,以确保它是一个实际的电子邮件和电话号码,而不是其他数据。我找到了可以使用的代码

function valid_email($email) {
    return !!filter_var($email, FILTER_VALIDATE_EMAIL);
}
但我不确定如何将其合并到我当前的代码中。我想得到一些帮助

这是我当前的php代码

//load form validate
$firstName= $_POST['firstName'];
$lastName= $_POST['lastName']; 
$address = $_POST['address'];
$phoneNumber = $_POST['phoneNumber'];
$email= $_POST['email'];
$username= $_POST['username'];
$password = sha1 ($_POST['password']);
$role = 1;


//prepare input data in an array
$userdata = array($firstName, $lastName, $address, $phoneNumber, $email, $username, $password,$role);


//prepare error list
$errors = array ();

//Validation tests and store list
if ($firstName == "" || $lastName == "" || 
    $address == "" || $phoneNumber == "" || 
    $email == "" || $username == "" || 
    $password == "" || $role == "" ) {
    array_push($errors, "All form fields must be filled out before submitting.");
}

//if errors redirect back to form page and save attempted data.
if (count($errors) > 0) {
    $_SESSION['userdata'] = $userdata;
    $_SESSION['errors'] = $errors;
    header("Location: ../register.php");
}else{
    unset($_SESSION['userdata']);
    unset($_SESSION['errors']);
    $query = "INSERT INTO customers (firstName, lastName, address, phoneNumber, email, username, password) VALUES ('$firstName','$lastName', '$address', '$phoneNumber', '$email', '$username', '$password')";

    //die (print_r($query));
    if (mysqli_query($mysqli, $query)) {
        $last_id = $mysqli->insert_id;
        $query2 = "INSERT INTO users_in_roles (userID, roleID) VALUES ('$last_id', 1);";

        if ($mysqli->query($query2)) {
            header("Location: ../Login.php");
        }else {
            die(print_r($mysqli->error));
        }
    }
}
这是一个例子。
我制作了一个带有数组的foreach,只是为了向您显示这两个输出

$email = ["abc@gmail.com","abc@gmailcom"];
foreach ($email as $e){
    if (filter_var($e, FILTER_VALIDATE_EMAIL)) {
        echo "valid";
    } else {
        echo "not valid";
    }
}

在您的情况下,您可能应该在检查任何字段是否为空后使用它:

if ($firstName == "" || $lastName == "" || 
        $address == "" || $phoneNumber == "" || 
        $email == "" || $username == "" || 
        $password == "" || $role == "" ) {
    array_push($errors, "All form fields must be filled out before submitting.");
}

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    array_push($errors, "Email is not valid.");
}

$phone = "11-331-11111";
$phone = preg_replace("/[^\d]/", "", $phone);
if (strlen($phone) <= 10) { 
    array_push($errors, "Phone not valid.");
}
if($firstName==“”| |$lastName==“”| |
$address==“”| |$phoneNumber==“”| |
$email==“”| |$username==“”| |
$password==“”| |$role==“”){
array_push($errors,“提交前必须填写所有表单字段”);
}
如果(!filter_var($email,filter_VALIDATE_email)){
数组_push($errors,“电子邮件无效”);
}
$phone=“11-331-11111”;
$phone=preg_replace(“/[^\d]/”,“”,$phone);

如果(strlen($phone)嘿,伙计,你可以对email变量使用sanitize和validate。然后你应该学会在将值插入数据库之前对其进行转义。记住要使用准备好的语句| | | | |@Thomas为什么要在PHP中内置函数的情况下使用regex?创建一个regex来捕获电子邮件的所有变体会变得非常混乱。啊anks。我把它放在我代码的错误部分,因此它不起作用。你用什么使电话号码有效?@Nicola让我问你。你怎么知道一个电话号码是否有效?如果我给你一个电话号码,你凭什么说这是正确的或不正确的?让它在表单字段中只有号码,最多有10个号码rs?如果这是一个对你有效的号码,那么请查看我的更新。除非你真的需要,否则我永远不会验证电话号码。如果我需要这些号码,我会发送短信进行验证。但那就是我……电子邮件验证非常有效,但我无法让电话验证正常工作