Создать ответ 
Защита отправки данных сложением чисел
Автор Сообщение
ale10ey Не на форуме
Генерал-майор
*

Сообщений: 311
У нас с: Nov 2014
Сообщение: #11
RE: Защита отправки данных сложением чисел
Доброе время суток,

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

(21.06.2015 20:31:18)Admin писал(а):  Добавил в прикрепление рабочий код.

Для проверки я сделал файл с именем 4.php, куда поместил приведенный Вами код, внес описанные выше изменения и заменил action="php/contact.php" на action="4.php".

Прикрепленный код работает как надо!

Проверил страницу 4.php и работает нормально, а если подключить для index.html и contact.php, то не работает, выдается все время ошибка, что "Вы ввели неправильный проверочный код !"

Буду разбираться, где собака зарыта, пока продолжаю разбираться...

Здравствуйте,

Что-то вырисовывается понемногу.

У меня на странице index.html, также есть jquery.contact.js, который и блокирует похоже данный код в файле comment.php, в котором есть изменения :

else if(!isset($verify) || trim($verify) == '') {
echo '<div class="error_message">Введите проверочный код !</div>';
exit();
} else if(md5(trim($verify)) != $_POST['summa']) {
echo '<div class="error_message">Вы ввели неправильный проверочный код !</div>';
exit();
}

а в jquery.contact.js изменений нет, вот весь код:

jQuery(document).ready(function(){

$('#contactform').submit(function(){

var action = $(this).attr('action');

$("#message").slideUp(750,function() {
$('#message').hide();

$('#submit')
.after('<img src="images/ajax-loader.gif" class="loader" />')
.attr('disabled','disabled');

$.post(action, {
name: $('#name').val(),
email: $('#email').val(),
phone: $('#phone').val(),
subject: $('#subject').val(),
comments: $('#comments').val(),
verify: $('#verify').val()
},
function(data){
document.getElementById('message').innerHTML = data;
$('#message').slideDown('slow');
$('#contactform img.loader').fadeOut('slow',function(){$(this).remove()});
$('#submit').removeAttr('disabled');
if(data.match('success') != null) $('#contactform').slideUp('slow');

}
);

});

return false;

});

});

т.е сейчас так:

1. Если данный код имеется на странице, то всегда выдается сообщение, что "Вы ввели неправильный проверочный код !"

2. Если данный код убрать, то при корректном коде проверка проходит, как на скрине ниже:

[Изображение: tid_335_message.png]

и в адресной строке _http://temp.loc/php/contact.php, хотя данная форма находится на _http://temp.loc/index.html, в принципе для этого скрипт и нужен, чтобы показ сообщения был в окне над формой, как в предыдущем сообщении на скриншоте.

Полагаю, что надо в jquery.contact.js для verify сделать изменения. Сам попытался, но пока не получается, хотя думаю, что здесь и надо копать...

Заранее благодарен.Yes
(Последний раз сообщение было отредактировано 23.06.2015 в 00:23:58, отредактировал пользователь ale10ey.)
22.06.2015 23:41:59
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-майор
*

Сообщений: 311
У нас с: Nov 2014
Сообщение: #12
RE: Защита отправки данных сложением чисел
Здравствуйте,

Разобрался Ok, сейчас работает, просто в jquery.contact.js надо было добавить строчку:

Цитата:summa: $('#summa').val()

У меня к вам другой вопрос, насчет проверочного кода.

1. Все работает корректно, но если проверочный код введен неверно, то поле не очищается, а остается неверно набранная сумма, например 35 и т.д.

2. После клика на кнопку отправить, сообщение успешно отправляется, но данные в полях остаются включая имя, email, text и сам проверочный код, только комбинация Ctrl+F5 очищает все поля...Scratch, может быть в jquery.contact.js надо прописать, чтобы после отправки сообщения все поля очищались ?

Заранее благодарен.
23.06.2015 01:02:15
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,279
У нас с: Aug 2011
Сообщение: #13
RE: Защита отправки данных сложением чисел
Как вариант, в конце функции function(data){ . . . } (то, что в $.post()) надо добавить проверку выводимого сообщения, на предмет наличия в нем положительного ответа ("Сообщение отправлено..."), и если есть совпадение, то очищать поля формы.

Как-то так:
Код:
function(data){
. . .
if ($('#message').match('Сообщение отправлено')) {
$('#name').val('');
$('#email').val('');
$('#phone').val('');
$('#subject').val('');
$('#comments').val('');
}
}

Сам не проверял, но идея думаю ясна.
23.06.2015 23:05:22
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-майор
*

Сообщений: 311
У нас с: Nov 2014
Сообщение: #14
RE: Защита отправки данных сложением чисел
Цитата:в конце функции function(data){ . . . } (то, что в $.post()) надо добавить проверку выводимого сообщения, на предмет наличия в нем положительного ответа ("Сообщение отправлено..."), и если есть совпадение, то очищать поля формы.

Здравствуйте, идея понятна, но что-то не выходит.

Сейчас такой код :

jQuery(document).ready(function(){

$('#contactform').submit(function(){

var action = $(this).attr('action');

$("#message").slideUp(750,function() {
$('#message').hide();

$('#submit')
.after('<img src="images/ajax-loader.gif" class="loader" />')
.attr('disabled','disabled');

$.post(action, {
name: $('#name').val(),
email: $('#email').val(),
phone: $('#phone').val(),
subject: $('#subject').val(),
comments: $('#comments').val(),
verify: $('#verify').val(),
summa: $('#summa').val()
},
function(data){
document.getElementById('message').innerHTML = data;
$('#message').slideDown('slow');
$('#contactform img.loader').fadeOut('slow',function(){$(this).remove()});
$('#submit').removeAttr('disabled');
if(data.match('success') != null) $('#contactform').slideUp('slow');

if ($('#message').match('Сообщение отправлено')) {
$('#name').val('');
$('#email').val('');
$('#phone').val('');
$('#subject').val('');
$('#comments').val('');
$('#verify').val('');
}
}


}
);

});

return false;

});
});

При таком коде, переадресует сразу на страницу comment.php, где и выдается сообщение сообщение отправлено или какое поле необходимо заполнить, если пустое.
Если вернутся назад и перезагрузить страницу, то все данные в полях все равно остаются...Scratch
24.06.2015 00:16:32
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,279
У нас с: Aug 2011
Сообщение: #15
RE: Защита отправки данных сложением чисел
После $('#verify').val(''); лишняя скобка }.
Вы хоть проверяйте JS код на ошибки.
24.06.2015 22:34:02
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-майор
*

Сообщений: 311
У нас с: Nov 2014
Сообщение: #16
RE: Защита отправки данных сложением чисел
Данную скобку забыл убрать Blush, но не забыл. Моя ошибка.

1. Сейчас не перебрасывает на страницу comment.php, все нормально отправляется, но данные формы не очищаются при обновлении страницы, а только если нажать комбинацию клавиш Ctrl+F5.

Весь Код:

jQuery(document).ready(function(){

$('#contactform').submit(function(){

var action = $(this).attr('action');

$("#message").slideUp(750,function() {
$('#message').hide();

$('#submit')
.after('<img src="images/ajax-loader.gif" class="loader" />')
.attr('disabled','disabled');

$.post(action, {
name: $('#name').val(),
email: $('#email').val(),
phone: $('#phone').val(),
subject: $('#subject').val(),
comments: $('#comments').val(),
verify: $('#verify').val(),
summa: $('#summa').val()
},
function(data){
document.getElementById('message').innerHTML = data;
$('#message').slideDown('slow');
$('#contactform img.loader').fadeOut('slow',function(){$(this).remove()});
$('#submit').removeAttr('disabled');
if(data.match('success') != null) $('#contactform').slideUp('slow');

if ($('#message').match('Сообщение отправлено')) {
$('#name').val('');
$('#email').val('');
$('#phone').val('');
$('#subject').val('');
$('#comments').val('');
$('#verify').val('');
$('#summa').val('');

}

}

);

});

return false;

});

});

P.S.: У меня в коде html имеется
Цитата:<div id="ribbon" class="contact"></div>
и при клике на кнопку с помощью jQuery появляется форма, где находятся все поля контактной формы, а при клике на кнопку отправить появляется соответствующее сообщение и если обновить страницу, то данные, как повторяюсь не очищаются, может быть и файле comment.php прописать очищение для формы после отправки, а то даже не знаю, что и думать почему данные после обновления не удаляются, а остаются. Помогает только удаление из кеша (Ctrl+F5).

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

C уважением и заранее благодарен Yes.
25.06.2015 11:04:56
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-майор
*

Сообщений: 311
У нас с: Nov 2014
Сообщение: #17
RE: Защита отправки данных сложением чисел
P.S.: Проверил, что каждый раз при обновлении страницы сумма цифр меняется, это нормально, а вот поля формы не очищаются...
25.06.2015 22:32:30
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,279
У нас с: Aug 2011
Сообщение: #18
RE: Защита отправки данных сложением чисел
Попробуйте еще заменить if ($('#message').match('Сообщение отправлено')) { на if (data.match('Сообщение отправлено')) {.
25.06.2015 23:21:55
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-майор
*

Сообщений: 311
У нас с: Nov 2014
Сообщение: #19
RE: Защита отправки данных сложением чисел
Спасибо Yes, работает Happy !!!

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

В данный момент если ввести неправильную сумму цифр, поле не очищается, а сумма цифр остается прежняя.

Еще раз спасибо вам большое Yes и заранее благодарен.
26.06.2015 10:23:50
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,279
У нас с: Aug 2011
Сообщение: #20
RE: Защита отправки данных сложением чисел
Сумму так просто уже не сменить, т.к. она генерируется на PHP в этом же файле, а вот очистить введенный код - легко.
Делается по аналогии с предыдущим кодом и добавляется после предыдущего кода (if ($('#message').match('Сообщение отправлено')) { . . . }).

Код:
if (data.match('неправильный проверочный код')) {
$('#verify').val('');
}
26.06.2015 22:29:38
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


Пользователи просматривают эту тему: 1 Гость(ей)



Mail.ru LiveInternet

© Copyright 2011-2016 by UsefulScript.ru