2015-01-05 1 views
0

Я работаю на простой форме PHP для подписаться на бюллетень, с полями на основе этого формата:PHP форма: необходимое содержание поля

$formArray['e'] = array(
    'name' => __('Email', 'esu_lang'), 
    'validate'=> 'esu-required-email', 
    'id'  => 'email', 
    'class' => 'esu-input', 
    'type' => 'text'); 

Для того, чтобы избежать спама, я хотел бы добавить поле с вопросом «В каком году мы сейчас?», так что только реальные люди могут писать «2015». Технически я хотел бы, таким образом, потребовать определенный контент («2015») для поля. Можно ли сделать это без Javascript?

Я искал это в Интернете, но ничего не нашел.

Большое спасибо.

+0

Вы можете обработать форму и проверить ее значение, а также перенаправить обратно на сайт, содержащий форму, и запомнить ошибку в сеансе или около того, но вы не можете сделать это _dynamically_ без JavaScript. Хотя вы могли бы использовать атрибут html5 pattern для соответствия точной величине, но обычно он используется для шаблона регулярных выражений, но вы можете попытаться сделать так, чтобы он соответствовал точно одному результату (т.е. начиная с 2, продолжая с 0, продолжая с 1 и заканчивается 5). – Jonast92

+0

jQuery, а не PHP, будет лучше, это может быть применено к предварительной отправке. – iamgory

+0

Спасибо @ Jonast92, я попробую атрибут шаблона ... – Jonas

ответ

0

вы можете написать свой вопрос как Заполнитель поля ввода.

+0

И как это помогает OP? – Jonast92

+0

Извините, но я не понимаю смысла вашего ** OP **. Но поскольку я понимаю ваш вопрос, вы просто хотите проверить ответ без javascript. Вы можете использовать шаблон для проверки. Может быть так:

** @ Jonast92 – Manish

0

Вставьте элемент ввода в форму HTML и введите пользователю текущий год. В PHP, после получения запроса POST, сравните введенное значение с годом PHP.

Что-то вроде этого:

HTML:

<form method='post' action='handle.php'> 
    <!-- insert the remaining needed inputs --> 
    <input type='text' name='verify_human'> 
</form> 

PHP:

<?php 
    $verify_human = $_POST['verify_human']; 

    if ($verify_human == date("Y", time())) { 
    return true; 
    } else { 
    return false; 
    } 
?> 
0

Вы можете использовать проверку массива с данными ("Y") функция эквивалентна введенных пользователем входных данных.

Смежные вопросы