이메일 주소가 데이터베이스에 이미 존재하는지 확인

18069 단어 ajaxphpjavascriptmysql
원래 게시된 @https://codeanddeploy.com 방문하여 샘플 코드 다운로드: https://codeanddeploy.com/blog/php/check-if-email-address-is-already-exists-in-the-database

이 튜토리얼에서는 Ajax와 함께 PHP 및 MySQL을 사용하여 이메일이 데이터베이스에 이미 존재하는지 확인하는 방법을 배웁니다. 이 작업은 모든 프로그래밍 언어로 애플리케이션을 구축하는 경우에 필요합니다. 레코드 중복을 방지하기 위해 이메일 입력이 데이터베이스에 아직 존재하지 않는지 확인해야 합니다. 하지만 지금은 이 튜토리얼을 위해 PHP와 MySQL을 사용할 것입니다.



따라서 먼저 다른 테이블로 이메일을 확인해야 하는 경우 재사용할 수 있도록 함수를 생성합니다. 다음은 내 functions.php 파일에서 코딩한 함수입니다.

function isEmailExists($db, $tableName, $email)
{
        // SQL Statement
        $sql = "SELECT * FROM ".$tableName." WHERE email='".$email."'";

        // Process the query
        $results = $db->query($sql);

        // Fetch Associative array
        $row = $results->fetch_assoc();

        // Check if there is a result and response to  1 if email is existing
        return (is_array($row) && count($row)>0);
}


매개변수:

$db - mysqli 개체를 사용하는 SQL 연결에 필요합니다.

$tableName - 이메일 확인이 가능한 모든 테이블을 확인할 수 있도록 table_name을 입력하기 위해 $tableName 변수를 추가합니다.

$email - 양식에서 제출한 이메일 문자열

그런 다음 위에서 만든 함수를 호출합니다. 다음은 이해를 돕기 위한 코드입니다.

if(!isEmailValid($email)):
    $result['has_error'] = 1;
    $result['response'] = "Email address is invalid.";
elseif(isEmailExists($db, "employees", $email)):
    $result['has_error'] = 1;
    $result['response'] = "Email address is already exists.";
endif;


따라서 위의 if 문에서 먼저 이메일이 유효하지 않은지 확인하고 다음은 이메일이 존재하는지에 대한 것입니다.

따라서 더 깊이 이해할 수 있도록 save.php에 대한 전체 소스 코드가 있습니다.

<?php
    // include config file
    require_once 'config.php';

    //a PHP Super Global variable which used to collect data after submitting it from the form
    $request = $_REQUEST;
    //get email address value
    $email = $request['email']; 
    //get first name value
    $first_name = $request['first_name'];
    //get last name value 
    $last_name = $request['last_name'];
    //get address value
    $address = $request['address'];

    // Defined $result as array
    $result = [];

    if(!isEmailValid($email)):
        $result['has_error'] = 1;
        $result['response'] = "Email address is invalid.";
    elseif(isEmailExists($db, "employees", $email)):
        $result['has_error'] = 1;
        $result['response'] = "Email address is already exists.";
    endif;

    // Check if no errors
    if(!count($result)):
        // SQL Statement
        $sql = "INSERT INTO employees (email, first_name, last_name, address)
        VALUES ('".$email."', '".$first_name."', '".$last_name."', '".$address."')";

        // Process the query
        if ($db->query($sql)) {
          $result['response'] = "Employee has been created.";
        } else {
          $result['response'] = "Error: " . $sql . "<br>" . $db->error;
        }

        // Close the connection after using it
        $db->close();
    endif;

    // Encode array into json format
    echo json_encode($result);


?>


그런 다음 이 튜토리얼에서 Ajax를 사용하고 있으므로 여기에서는 javascript 내부 코드를 작성하기 위해scripts.js 이를 save() 함수라고 합니다.

function save() 
{
    $("#btnSubmit").on("click", function() {
        var $this           = $(this); //submit button selector using ID
        var $caption        = $this.html();// We store the html content of the submit button
        var form            = "#form"; //defined the #form ID
        var formData        = $(form).serializeArray(); //serialize the form into array
        var route           = $(form).attr('action'); //get the route using attribute action

        // Ajax config
        $.ajax({
            type: "POST", //we are using POST method to submit the data to the server side
            url: route, // get the route value
            data: formData, // our serialized array data for server side
            beforeSend: function () {//We add this before send to disable the button once we submit it so that we prevent the multiple click
                $this.attr('disabled', true).html("Processing...");
            },
            success: function (response) {//once the request successfully process to the server side it will return result here

                response = JSON.parse(response);

                // Check if there is has_error property on json response from the server
                if(!response.hasOwnProperty('has_error')) {
                    // Reload lists of employees
                    all();

                    // We will display the result using alert
                    Swal.fire({
                      icon: 'success',
                      title: 'Success.',
                      text: response.response
                    });

                    // Reset form
                    resetForm(form);
                } else {
                    // We will display the result using alert
                    Swal.fire({
                      icon: 'warning',
                      title: 'Error.',
                      text: response.response
                    });
                }

                $this.attr('disabled', false).html($caption);

            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                // You can put something here if there is an error from submitted request
            }
        });
    });
}


그게 다야, 나는 당신이 그것으로부터 배우고 그것을 당신의 프로젝트에 적용하기를 바랍니다. 또한 이 튜토리얼의 전체 소스 코드를 다운로드하여 실제로 볼 수 있습니다. 이 코드를 다운로드하려면 여기https://codeanddeploy.com/blog/php/check-if-email-address-is-already-exists-in-the-database를 방문하십시오.

읽어 주셔서 감사합니다. 행복한 코딩 :)

좋은 웹페이지 즐겨찾기