簡體   English   中英

我在 php 的表單驗證方面需要幫助

[英]I need help in form validations of php its complex

我在表單驗證中遇到問題,我得到的錯誤是這樣的

Fatal error: Uncaught Error: Unsupported operand types in C:\xampp\htdocs\LSR\signup.php:22 Stack trace: #0 {main} thrown in C:\xampp\htdocs\LSR\signup.php on line 22

function check_empty_fields($required_fields_array){

    $form_errors = array();

    foreach($required_fields_array as $name_of_field){
        if (!isset($_POST[$name_of_field]) || $_POST[$name_of_field] == NULL) {
            $form_errors[] = $name_of_field . "Is a REQUIRED FIELD";
        }
    }

        
    return $form_errors;
}


function check_min_length($fields_to_check_length){

$form_errors = array();

foreach($fields_to_check_length as $name_of_field => $minimum_length_required){

    if(strlen(trim($_POST[$name_of_field])) < $minimum_length_required){

        $form_errors[] = $name_of_field . "Is too short must be {$minimum_length_required} characters long";

    
        }
        
    }
    return $form_errors;
}


function check_email($data){

    $form_errors = array();

    $key = "email";

    if(array_key_exists($key, $data)){

        if($_POST[$key] != null){

            $key = filter_var($key, FILTER_SANITIZE_EMAIL);

            if (filter_var($_POST[$key], FILTER_VALIDATE_EMAIL) === false) {
                $form_errors[] = $key . "is not a valid email address";
            }

        }

    } 
    return $form_errors;

}


function show_errors($form_errors_array){

    $errors .= "<p><ul style='color: red;'>";


foreach($form_errors_array as $the_error){

    $errors .="<li>{$the_error}</li>";

    } 
    $errors .= "</ul></p>";
    return $errors;
 
}

試試http://sandbox.onlinephpfunctions.com/code/c36fd6eb9b3a8e555364d99dd90cd9281100c884

<?php

function check_empty_fields($required_fields_array)
{
    if (!is_array($required_fields_array)) {
        return array();
    }

    $form_errors = array();

    foreach ($required_fields_array as $name_of_field) {
        if (empty($_POST[$name_of_field])) {
            $form_errors[] = "'$name_of_field' is a REQUIRED FIELD";
        }
    }

    return $form_errors;
}

function check_min_length($fields_to_check_length)
{
    if (!is_array($fields_to_check_length)) {
        return array();
    }

    $form_errors = array();

    foreach ($fields_to_check_length as $name_of_field => $minimum_length_required) {
        if (isset($_POST[$name_of_field]) && strlen(trim($_POST[$name_of_field])) < $minimum_length_required) {
            $form_errors[] ="'{$name_of_field}' is too short must be '{$minimum_length_required}' characters long";
        }
    }

    return $form_errors;
}

function check_email($fields_to_check_email = array('email'))
{
    if (!is_array($fields_to_check_email)) {
        return array();
    }

    $form_errors = array();

    foreach ($fields_to_check_email as $name_of_field) {
        if (isset($_POST[$name_of_field]) && !filter_var($_POST[$name_of_field], FILTER_VALIDATE_EMAIL)) {
            $form_errors[] = "'{$name_of_field}' is not a valid email address";
        }
    }

    return $form_errors;
}

function show_errors($form_errors_array)
{
    $errors = '';
    $errors .= "<p><ul style='color: red;'>";

    foreach ($form_errors_array as $the_error) {
        $errors .= "<li>{$the_error}</li>";
    }

    $errors .= "</ul></p>";

    return $errors;
}

// Tests...

$_POST = array(
    'name' => 'Test',
    'null_name' => null,
    'empty_name' => '',
    'email' => 'test@mail.com',
    'invalid_email' => 'test@@mail.com',
);

$empty_errors = array();
$empty_errors = check_empty_fields(array('name', 'null_name', 'empty_name', 'undefined_name'));
echo 'Empty errors:', show_errors($empty_errors), "\n";

$min_length_errors = array();
$min_length_errors = check_min_length(array('name' => 4, 'empty_name' => 4));
echo 'Min length errors:', show_errors($min_length_errors), "\n";

$email_errors = array();
$email_errors = check_email(array('email', 'invalid_email'));
echo 'Email errors:', show_errors($email_errors), "\n";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM