Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.07.2018, 18:14
Новичок на форуме
Отправить личное сообщение для nifty5 Посмотреть профиль Найти все сообщения от nifty5
 
Регистрация: 15.07.2018
Сообщений: 5

Вместо капчи проверка скрытого поля
Я вообще ничего не понимаю в java script.
У меня просто есть сайт, где форма отправка сообщения работает на php, javascript, ajax.

всё работает. но спамеры достали. Раньше в прошлой версии сайта у меня просто были скрытые дополнительные поля в форме, которые человеку не видно, и прописано условие, что если это поле заполнено, то выдавать ошибку, не отправлять письмо. Расчет на то, что человек не видит эти поля и не будет заполнять, а если какие-то спамерские программы, то они заполнят.

но поскольку я вообще не знаю java script, просьба написать как именно изменить мне код:

1) в html странице, где форма контактов (добавить еще пару полей скрытых)
2) в javascript файле, где прописана обработка введенного текста.


в html у меня сейчас такой код:

Код:
<!-- FORM -->
        <form role="form" id="contact_form" class="contact-form" method="post" onSubmit="return false">
          <ul class="row">
            <li class="col-sm-12">
              <label>
                <input type="text" class="form-control" name="name" id="name" placeholder="Ваше Имя">
              </label>
            </li>
            <li class="col-sm-6">
              <label>
                <input type="text" class="form-control" name="email" id="email" placeholder="Ваш Email">
              </label>
            </li>
            <li class="col-sm-6">
              <label>
                <input type="text" class="form-control" name="company" id="company" placeholder="Ваш сайт (если есть)">
              </label>
            </li>
            <li class="col-sm-12">
              <label>
                <textarea class="form-control" name="message" id="message" rows="5" placeholder="Текст сообщения"></textarea>
              </label>
            </li>
            <li class="col-sm-12">
              <button type="submit"  value="submit" id="btn_submit" onClick="proceed();">ОТПРАВИТЬ</button>
            </li>
          </ul>
        </form>

а в javascript сейчас такой:

Код:
function checkmail(input){
  var pattern1=/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
  	if(pattern1.test(input)){ return true; }else{ return false; }}     
    function proceed(){
    	var name = document.getElementById("name");
		var email = document.getElementById("email");
		var company = document.getElementById("company");
		var msg = document.getElementById("message");
		var errors = "";
		if(name.value == ""){ 
		name.className = 'error';
	  	  return false;}    
		  else if(email.value == ""){
		  email.className = 'error';
		  return false;}
		    else if(checkmail(email.value)==false){
		        alert('Вы ввели неправильный email адрес.');
		        
		        return false;}
		   else if(msg.value == ""){
		        msg.className = 'error';
		        return false;}
		   else 
		  {
	$.ajax({
		type: "POST",
		url: "php/submit.php",
		data: $("#contact_form").serialize(),
		success: function(msg){
		//alert(msg);
		if(msg){
			$('#contact_form').fadeOut(1000);
			$('#contact_message').fadeIn(1000);
				document.getElementById("contact_message");
			 return true;
		}}
	});
}};

напишите пожалуйста также 2 кода готовых уже (чтобы ничего не исправлять мне, а то ошибок наделаю) с добавочными скрытыми полями и проверкой их. Чтобы если невидимые поля формы чем-то заполнили, то письмо чтобы не отправлялось в этом случае
Ответить с цитированием
  #2 (permalink)  
Старый 15.07.2018, 18:47
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от nifty5
с добавочными скрытыми полями и проверкой их
Во-первых, эту проверку должен делать сервер, а не клиент. Во-вторых, стоит один раз посмотреть исходный код, а потом спокойно обходить эту защиту.
Ответить с цитированием
  #3 (permalink)  
Старый 15.07.2018, 18:54
Новичок на форуме
Отправить личное сообщение для nifty5 Посмотреть профиль Найти все сообщения от nifty5
 
Регистрация: 15.07.2018
Сообщений: 5

ну у меня было так раньше. в 90% помогает
Ответить с цитированием
  #4 (permalink)  
Старый 15.07.2018, 19:02
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от nifty5
ну у меня было так раньше. в 90% помогает
Это вы просто никому не нужны были по серьезному, а если возьмутся, то считай пропало.
Ответить с цитированием
  #5 (permalink)  
Старый 15.07.2018, 19:07
Новичок на форуме
Отправить личное сообщение для nifty5 Посмотреть профиль Найти все сообщения от nifty5
 
Регистрация: 15.07.2018
Сообщений: 5

ну так я и сейчас никому особо не нужен ) просто меня тот прошлый вариант в принципе устраивал как простое эффективное для меня решение. всё остальное просто сложнее
Ответить с цитированием
  #6 (permalink)  
Старый 15.07.2018, 19:15
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от nifty5
как простое эффективное для меня решение
Не может быть решение эффективным, если речь идет о разрешениях, а дает их клиент.
Ответить с цитированием
  #7 (permalink)  
Старый 15.07.2018, 19:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

nifty5,
var sp = [].some.call(document.querySelectorAll('[type="hidden"]'), function(node) {
            return node.value
        });
        if (sp) return;

function proceed(){ 
//сюда код показанный выше 
var name = document.getElementById("name");
Ответить с цитированием
  #8 (permalink)  
Старый 15.07.2018, 19:28
Новичок на форуме
Отправить личное сообщение для nifty5 Посмотреть профиль Найти все сообщения от nifty5
 
Регистрация: 15.07.2018
Сообщений: 5

рони,
а можно прямо в общем коде, как я просил?
Ответить с цитированием
  #9 (permalink)  
Старый 15.07.2018, 19:43
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от nifty5
а можно прямо в общем коде, как я просил?
не понимаю
Ответить с цитированием
  #10 (permalink)  
Старый 15.07.2018, 19:45
Новичок на форуме
Отправить личное сообщение для nifty5 Посмотреть профиль Найти все сообщения от nifty5
 
Регистрация: 15.07.2018
Сообщений: 5

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

я просто ничего в этом не понимаю. где-то не туда вставлю изменения, какую-нибудь скобку не закрою и ничего работать не будет.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Значение скрытого поля не попадает в массив niko099 Элементы интерфейса 2 22.06.2015 12:55
Проверка поля Rich_01 Общие вопросы Javascript 3 15.05.2015 17:15
Проверка Тестового поля arahmanov AJAX и COMET 7 05.08.2011 00:35
php + javascript, проверка капчи zhuzha Общие вопросы Javascript 10 02.06.2010 13:30
проверка поля в скрытом div'е dmus AJAX и COMET 4 10.08.2009 10:34