Как проверить формы, когда пользователь меняет имя элемента ввода в firebug? - PullRequest
0 голосов
/ 16 июля 2011

Я понимаю, что невозможно запретить кому-либо изменять имена элементов ввода в 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, будет высоко оценено.

РЕДАКТИРОВАТЬ: Лоуренс, что вы рекомендуете для формы местоположения?

1 Ответ

2 голосов
/ 16 июля 2011

Нет необходимости просматривать каждый месяц в условии, в php есть функции для этого.

<?php
$firstname= (string)$_POST['firstname'];
$lastname = (string)$_POST['lastname'];
$month    = $_POST['month'];

if(in_array($month,range(01,12))===true){
    $cont = TRUE;
}else{
    $cont = FALSE;
}
//If set, not empty, not swapped for month & greater or equals to 6 chars 
if(isset($firstname) && $firstname!="" && strlen($firstname) >=6 && in_array($month,range(01,12))===false){
    $cont = TRUE;
}
//If set, not empty, not swapped for month & greater or equals to 6 chars
if(isset($lastname) && $lastname!="" && strlen($lastname) >=6 && in_array($month,range(01,12))===false){
    $cont = TRUE;
}
?>
...