Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2016, 13:23   #1
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
Счастье Remote не возвращает false

Здравствуйте!
Подскажите пожалуйста, почему когда я ввожу в поле логи: admin, ошибка, о том, что логин занят, не появляется?

JS:
Код HTML:
<script type="text/javascript">
       $('document').ready(function () {

            $('#form_reg').validate({

                //Правила для проверки

                rules: {
                    "reg_login": {
                       required: true,
                       minlength: 5,
                       maxlength: 15,
	                   remote: "/reg/check_login.php" 
				},
		    ...	

				},
                //Текста предупреждений

                messages: {

                    "reg_login": {
                        required: "Укажите Логин!",
                        minlength: "От 5 до 15 символов!",
                        maxlength: "От 6 до 15 символов!",
                        remote: "Логин занят!"
                      },
		.....
             },


			//Обработчик и отправка данных

                submitHandler: function (form) {
					
		 .....                                         
            });

        });

 </script>
Обработчик check_login.php:

PHP код:
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST")
{

if (isset(
$_POST['reg_log']))
{
$login $_POST['reg_log'];
}
else
{
$login '';
};

 if (
$login == 'admin')
{
   echo 
'false';        
}
else
{
   echo 
"true";      
}
}
?>
Форма:

Код HTML:
<form method="post" id="form_reg" action="/reg/handler_reg.php">
<p id="reg_message"></p>
<div id="block-form-registration">
<ul id="form-registration">

<li>
<label>Логин</label>
<span class="star">*</span>
<input type="text" name="reg_login" id="reg_login" />
</li>
...

<p align="right"><input type="submit" name="reg_submit" id="form_submit" value="Регистрация"/> </p>

</form>
Женя32 вне форума Ответить с цитированием
Старый 29.11.2016, 14:48   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

вы сделали две принципиальные ошибки.

ошибка раз.
поле называется reg_login
а в обработчике вы проверяется поле

Цитата:
Сообщение от Женя32 Посмотреть сообщение
$_POST['reg_log']
разницу замечаете?

вторая ошибка.

метод remote по умолчанию отправляет запрос методом GET
поэтому нужно или обработчик переписать под этот метод, либо (лучше) указать, что нужно вызывать обработчик методом POST:

Код:
                rules: {
                    "reg_login": {
                       required: true,
                       minlength: 5,
                       maxlength: 15,
	               remote: {url: "/reg/check_login.php", type:"post" }
		}
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.11.2016, 17:23   #3
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
Счастье

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
вы сделали две принципиальные ошибки.

ошибка раз.
поле называется reg_login
а в обработчике вы проверяется поле



разницу замечаете?

вторая ошибка.

метод remote по умолчанию отправляет запрос методом GET
поэтому нужно или обработчик переписать под этот метод, либо (лучше) указать, что нужно вызывать обработчик методом POST:

Код:
                rules: {
                    "reg_login": {
                       required: true,
                       minlength: 5,
                       maxlength: 15,
	               remote: {url: "/reg/check_login.php", type:"post" }
		}
Все ровно не работает...

Код HTML:
                rules: {
                    "reg_login": {
                       required: true,
                       minlength: 5,
                       maxlength: 15,
	                   remote: {url: "reg/check_login.php", 
					   type:"post"} 
				},
		    	"reg_pass": { 
				    required:true,
					minlength:6, 
					maxlength:15					
		        },
PHP код:
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
if (isset(
$_POST['reg_login']))
{
$login $_POST['reg_login'];
}
else
{
$login '';
};

 if (
$login == 'admin')
{
   echo 
'false';        
}
else
{
   echo 
"true";      
}
}
?>
Женя32 вне форума Ответить с цитированием
Старый 29.11.2016, 17:35   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Если что-то "не работает", то надо смотреть консоль JS (кнопка F12 в браузере), логи сервера, использовать отладчик JS (рядом с консолью) и PHP (xdebug), чтобы разобраться что и почему не работает.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 29.11.2016 в 18:05.
Alex11223 вне форума Ответить с цитированием
Старый 29.11.2016, 18:08   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

у меня работает, я проверил.

Цитата:
Сообщение от Женя32 Посмотреть сообщение
Код:
remote: {url: "reg/check_login.php",
а куда уже слеш потерялся?!

Код:
remote: {url: "/reg/check_login.php"
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.11.2016, 18:56   #6
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
у меня работает, я проверил.


а куда уже слеш потерялся?!

Код:
remote: {url: "/reg/check_login.php"
А можете выслать тестовый проект?
У Вас какая версия jquery.validate ?
Женя32 вне форума Ответить с цитированием
Старый 29.11.2016, 19:40   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Женя32 Посмотреть сообщение
А можете выслать тестовый проект?
завтра устроит?
сегодня уже поздно... (и лень )

а чем Вам мой проект поможет?
я же бувально ваш код взял и в два файла записал.
Что у Вас не работает?
Может быть, Вам стоит воспользоваться отладчиком?


Цитата:
Сообщение от Женя32 Посмотреть сообщение
У Вас какая версия jquery.validate ?
отсюда - https://jqueryvalidation.org/
версия 1.15.0
jquery-validation-1.15.0.zip

а сам jquery версии 1.9.1
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.11.2016, 17:01   #8
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
Счастье

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
завтра устроит?
сегодня уже поздно... (и лень )
Добрый вечер!
Вы мне скинете проект?
Женя32 вне форума Ответить с цитированием
Старый 30.11.2016, 17:11   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

не знаю, чем Вам проект поможет (я же его из ваших файлов и собрал!)..
но, конечно, скину, мне не сложно.


вот: form_validate.rar

Последний раз редактировалось Serge_Bliznykov; 30.11.2016 в 17:25.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.12.2016, 13:30   #10
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
Счастье

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
не знаю, чем Вам проект поможет (я же его из ваших файлов и собрал!)..
но, конечно, скину, мне не сложно.


вот: Вложение 84796
Не знаю почему, но, Ваш пример тоже не работает..
В чем прикол, не могу понять......
https://youtu.be/qhrxK8F_Uj8
Женя32 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция не возвращает false. 13xXx13 Общие вопросы C/C++ 1 27.10.2013 16:08
Условие возвращает постоянно False Shouldercannon Общие вопросы Delphi 4 09.09.2013 19:21
Remote Assistance sSsantasSs Софт 0 12.08.2010 09:56
Запрос возвращает пустую таблицу, если один из подзаросов возвращает пустую таблицу ArtInt SQL, базы данных 9 12.05.2010 15:40
remote Farel БД в Delphi 2 07.09.2007 10:31