Проверка формы комментариев PHP / AJAX / Jquery - PullRequest
0 голосов
/ 20 февраля 2012

Я создаю форму комментария на основе плагина проверки jquery (http://docs.jquery.com/Plugins/Validation). Я знаю, что хакерами легко можно манипулировать javascript, поэтому мне было интересно, как проверить через php, чтобы убедиться, что форма комментария не генерирует многоспам-писем?

js напрямую из плагина валидации. html форма прямо со страницы плагина валидации JS. Дополнительные js ниже:

  <script>
  $(document).ready(function(){
  $("#commentForm").submit(function(){
    if($("#commentForm").validate()){
        $.ajax({
            type: 'POST',
            url: 'process.php',
            data: $(this).serialize(),
            success: function(returnedData){
                alert(returnedData);
            }
        });
    }
    return false;
});
});
  </script>

<form class="cmxform" id="commentForm" method="POST" action="process.php">
   <label for="cname">Name</label>
   <input id="cname" name="name" size="25" class="required" minlength="2" />
   <label for="cemail">E-Mail</label>
   <input id="cemail" name="email" size="25"  class="required email" />
   <label for="curl">URL</label>
   <input id="curl" name="url" size="25"  class="url" value="" />
   <label for="ccomment">Your comment</label>
   <textarea id="ccomment" name="comment" cols="22"  class="required"></textarea>
<input class="submit" type="submit" value="Submit"/>

php довольностандарт в настоящее время. Не знаю, как интегрировать проверку с js и ajax:

<?php

$to      = 'sdfsadfssfasd@gmail.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com';

mail($to, $subject, $message, $headers);

print "Form submitted successfully: <br>Your name is <b>".$_POST['cname']."</b> and your email is <b>".$_POST['email']."</b><br>";
?>

Спасибо за любую помощь. Кто-то заметил, что это расплывчато. Чтобы уточнить:

Я понимаю, какиспользовать php для проверки длины электронной почты, ненужных символов и т. д. Я не понимаю, как плагин проверки jquery работает через ajax. Мне нужно знать, как настроить условные выражения php для правильной проверки формы комментария для защиты от спама.

1 Ответ

1 голос
/ 20 февраля 2012

Хорошо, как ты это делаешь, довольно просто.Таким образом, у вас есть функция отправки, но прежде чем вы действительно отправите запрос в файл .php, вам нужно проверить ввод.Пока что ваш код довольно хороший, но вам нужно начать с функции validate.Это может выглядеть примерно так (в jQuery).Допустим, ваши поля ввода имеют следующий идентификатор: # input1, # input2, # input3, # input4.

    function validate()
{
    if($('#input1).val()=='' || $('#input2).val()==''|| $('#input3).val()=='' $('#input4).val()=='') return 0;
    else return 1;

}

Это был бы самый простой способ использовать проверку.Если вам не нужен jQuery, вы можете заменить $ ('# input1) на docoument.getElementById (по старинке).Если вы также хотите, чтобы это выглядело хорошо для пользователя, вы можете проверить каждое поле ввода на размытие!Например, предположим, что пользователь фокусируется на первом поле ввода, # input1

$('#input1).focus(function(){change the background color,add a border, or anything you want just to let the users see which input they clicked/tabbed on.}).blur(function(){check if the input is valid and if it's not display a message or anything you want.});
...