Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Валидация формы авторизации. (https://javascript.ru/forum/jquery/68859-validaciya-formy-avtorizacii.html)

daimon0482 14.05.2017 17:24

подскажите пожалуйста как запретить отправки формы при выявление что нет такого емаила.
$(document).ready(function(){
 
    $("#formlogin").validate({
  // правила для полей с именем и паролем
       rules:{ 
 
            email:{
                required: true, // поле обязательное для заполнения
            },
            password:{
                required: true, // поле обязательное для заполнения
            },
            
       },
  // сообщение для поля с именем и пароля, если что-то было не по правилам
       messages:{

            email:{
                required: "<p class='err'>Это поле обязательно для заполнения!</p>", 
            },
            password:{
                required: "<p class='err'> Это поле обязательно для заполнения!</p>", 
            },
       }
 
    });
 // Email
    $("#email").change(function(){
        email = $("#email").val();
       
            $.ajax({
                url: "testingLoginEmail.php",
                type: "POST",
                data: "email=" + email,
                cache: false,           
                success: function(response){
                 if(response == "no"){
                    $("#email").next().hide().text("Пользователь с такой электронной почтой не зарегистрирован!").fadeIn(400);
                    $("#email").removeClass().addClass("inputRed");                 
                }else{                  
                    $("#email").removeClass().addClass("inputGreen");
                    $("#email").next().text("");
                }                   
            }
        });
           
    });
});

laimas 14.05.2017 17:27

Цитата:

Сообщение от daimon0482
так на пустоту стоит required

А ничего, что сервер об этом даже и не подозревает? Вы что на проверку клиента надеетесь? А если я вам левую форму пришлю?

Как хотите, можете и обижаться, но когда на сервере код полнейший абсурд, да еще в таком щепетильном вопросе как регистрация/авторизация, при этом прерогативой считают решение вопрос на клиенте, то такое даже комментировать не охота.

daimon0482 14.05.2017 17:43

я не понимаю если даже отправите пустую форму все равно не зайдете так как нет совпадении с данными из базы,
вы же не на регистрацию отправляете пустую форму.

daimon0482 14.05.2017 17:51

если честно то я новичок самоучка прошу не обижаться если задаю глупые вопросы.

daimon0482 14.05.2017 17:58

и на стороне клиента я хочу проверить только для удобства клиента ,
а так я надеюсь на сервер только.
я добавлю в php проверку на пустоту.
if(!empty ($_POST['email']) && ($_POST['password'])){

laimas 14.05.2017 18:21

Мне то с чего обижаться? :)

Просто нет смысла говорить о проблемах на клиенте, если сервер относится к регистрации/авторизации наплевательски. Какой смысл в вашем JS? Если я поставлю цель взломать вам, то мне ваша проверка на клиенте не требуется.

htmlspecialchars используют при выводе в браузер для исключения, к примеру, XSS атак.

Выведите на экран строку обработанную mysqli_real_escape_string(), поймете, что addslashes не к месту.

Это к сведению.

Найдите в сети о регистрации, почитайте каким образом и серьезно к данному вопросу нужно относиться. Когда будет на севере все Ок, вот тогда можно и о JS думать, которое чисто сервис в данном случае.

daimon0482 14.05.2017 18:40

ok, спасибо за совет.
но так как тема уже создана не поможете с клиентом?

laimas 14.05.2017 18:49

Цитата:

Сообщение от daimon0482
но так как тема уже создана не поможете с клиентом?

Нет, ибо проверка обязательно должна быть на сервере не зависимо от того есть ли она на клиенте. А это означает, что должен быть диалог клиент-сервер, не банальное if("no/yes"), что будет определять и код на клиенте.

Начните с сервера, ибо форму отправить можно и без JS, а обязательность полей в современных браузерах проверять нативно.

Лично я без подобающего кода на сервере для данной задачи говорить о клиентском коде не стану.


Часовой пояс GMT +3, время: 03:03.