指定字段中的整数数

时间:2013-02-07 16:03:12

标签: php javascript mysql

我正在注册表单页面,我还应该输入“电话”输入,但我需要电话字段为8位数!如果用户输入的数字多于或少于8位,则注册表格会告诉他错误。

它应该是这样我认为...... 连接到DB后

  $telephone=$_POST['telephone'];
  ... 
  .... 
  if(empty($telephone)){ // **i think i should write smth here???**
  echo  "phone number not set, and should be 8 digits!!" ;
  }
  else{

  /* Now we will write a query to insert user details into database */
  $insert_user=mysql_query("INSERT INTO login (telephone) VALUES ('$telephone')");

我感谢任何帮助:) 谢谢

3 个答案:

答案 0 :(得分:0)

首先:并非所有电话号码都是8位数。所以你不应该严格强制它。

对于电话号码的合理验证,此主题中有许多好的答案:A comprehensive regex for phone number validation

就个人而言,您真的不应该在生产代码中使用多个感叹号。读'!!'对用户和其他开发人员来说有点......令人沮丧。

答案 1 :(得分:0)

确保输入仅为X数DIGITS:

// replace everything that is not in the range 0-9
$telephone = preg_replace('/[^0-9]/', '', $telephone);
// now check the remaining length - for this example 8
if (strlen($telephone) != 8) {
    // throw your error code in here
} else { ...

考虑到这一点,你确定你想要的8位数字用于电话号码吗?没有破折号,逗号或parens,不再是数字(美国/加拿大的数字是10,不包括国际代码),有些国家的数字更长/更短。

但就您的问题而言,如上所述,上述两个步骤将符合您的要求。

答案 2 :(得分:0)

可以设置文本输入字段的最大长度。

<input maxlength="8">

确保您使用至少8个字符

if(strlen($telephone) != 8){ error.. }

另外要确认您只收到了数字而不是可以使用的字符

for($i=0; $i<8; $i++){
if{(ord($telephone[$i]>47)&&(ord$telephone[$i]<58)){ // its a number }