我意识到阻止某人更改firebug中输入元素的名称是不可能的。
我该如何处理这个问题?用户将输入元素“firstname”的名称更改为“month”,反之亦然。
<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的解决方案将非常感激。
编辑:劳伦斯,您对位置表的推荐是什么?答案 0 :(得分:2)
在某个条件下每个月都不需要,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;
}
?>