Как заставить JavaScript проверять регистрацию на примере файла. php? - PullRequest
0 голосов
/ 11 февраля 2020

Я настроил MySQL базу данных для ведения данных для входа и регистрации. Теперь я хочу написать javascript проверки для моей формы регистрации

Я провел некоторые исследования по проверке Javascript и ajax. Насколько я понимаю, по соображениям безопасности вы можете проводить проверку javascript и ajax на стороне сервера. Но можно также иметь только js подтверждение?

Мой регистр. php выглядит так:

<html>
<head>
    <title>Register</title>
    <script src="script.js"></script>

</head>
<body>
    <br>
    <form action="register.php" method="post" id="form" name="form">

        <table width="35%">
            <tr>
                <td>Name</td>


                <td><input type="text" name="name" ></td>
                <div id="username_error"></div>


            </tr>
            <tr>
                <td>Email</td>


                <td><input type="email" name="email"  ></td>
                <div id="email_error"></div>

            </tr>

            <td>Password</td>


            <td><input type="password" name="password" ></td>
            <div id="password_error"></div>
            </tr>

            <tr>
                <td></td>
                <td><input type="submit" value="Register" onSubmit="myFunction()"></td>
    
            </tr>
        </table>
        <a href="login.php">Login</a>

Это строки кода, с которыми я экспериментировал для отображения сообщений об ошибках:

<div id="username_error"></div>
<div id="email_error"></div>
<div id="password_error"></div>

Это мой сценарий. js

let name = document.querySelector("#name")
let email = document.querySelector("#email")
let password = document.querySelector("#password")
let passVal = '?=.*\d)(?=.*[a-z])(?=.*[A-Z]'
let emailVal = '^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/'

function myFunction() {
    if(name == ""){
        alert ( "Please fill in the 'Your Name' box." );

    }
    if(email == emailVal){
        alert ( "Please fill in the 'Your Name' box." );

    }
    if(password == passVal){
        alert ( "Please fill in the 'Your Name' box." );

    }
}
  

Регистрация. php и скрипт. js не похоже на совместную работу. Я считаю, что все правильно настроил: <td><input type="submit" value="Register" onSubmit="myFunction()"></td> но не уверен.

Как мне реализовать мой скрипт. js для работы с регистром. php?

1 Ответ

0 голосов
/ 11 февраля 2020

В ответ на ваш последний вопрос: нет . Вы не можете просто проверить JS на клиенте. Никогда не доверяйте данным, которые предоставляет вам клиент. Даже любительскому "хакеру" легко обойти проверки JS и предоставить любые данные, которые они хотят.

Проверка должна выполняться с обеих сторон (на клиенте для UX и на сервере, чтобы убедиться, что ничего опасного не проходит).

Причина, по которой ваша функция не работает, заключается в том, что переменные (имя, адрес электронной почты и т. д. c.) устанавливаются при загрузке страницы. Вам необходимо установить переменные внутри функции, например:

function myFunction() {
    let name = document.querySelector("#name")
    let email = document.querySelector("#email")
    let password = document.querySelector("#password")
    let passVal = '?=.*\d)(?=.*[a-z])(?=.*[A-Z]'
    let emailVal = '^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/'

    if(name == ""){
        alert ( "Please fill in the 'Your Name' box." );

    }
    if(email == emailVal){
        alert ( "Please fill in the 'Your Name' box." );

    }
    if(password == passVal){
        alert ( "Please fill in the 'Your Name' box." );

    }
}

Внутри вершины вашего регистра. php файла, вам нужно проверить данные $_POST и проверить их в там тоже. Это проверка на стороне сервера. Убедитесь, что вы экранировали все полученные данные, чтобы быть уверенными в том, что вы защищены от вредоносных инъекций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...