Я понимаю, что невозможно запретить кому-либо изменять имена элементов ввода в firebug.
Как мне подойти к этой проблеме? Пользователь меняет имя элемента ввода «имя» на «месяц» и наоборот.
<form action="example.php" method="post" enctype="multipart/form-data">
<table border='2'>
<tr>
<td>
First name: <input type="text" name="firstname" /><br />
</td>
</tr>
<tr>
<td>
Last name: <input type="text" name="lastname" /><br />
</td>
</tr>
<tr>
<td>Birth Month:
<select name="month">
<option value="01">January</option>
<option value="02">February</option>
<option value="03">March</option>
<option value="04">April</option>
<option value="05">May</option>
<option value="06">June</option>
<option value="07">July</option>
<option value="08">August</option>
<option value="09">September</option>
<option value="10">October</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
<br />
</td>
</tr>
<tr>
<td><input type="submit" name="Submit" value="Sign Up!" /></td>
</tr>
</table>
</form>
Моя лучшая идея на данный момент:
<?php
$month= $_POST['month'];
if($month!= 01 || $month!= 02 ... $month!= 12)
echo 'wrong month';
?>
Однако это не будет чистым в течение года рождения ... Facebook делает большую работу по предотвращению этого, когда вы регистрируетесь, но я не смог понять, что они сделали. Решение, не являющееся javascript, будет высоко оценено.
РЕДАКТИРОВАТЬ: Лоуренс, что вы рекомендуете для формы местоположения?