2015-09-04 5 views
1

Я хочу проверить цифры в своей форме. Форма должна проходить только с номерами, начинающимися с 5 6 7 8, а длина должна быть 8. Это мой код.html form number validation php

<?php 
session_start(); 
$fecha=date("Y.m.d"); 
$numero = $_SESSION["numero"]; 
if(filter_var($numero, strlen($numero ==8),FILTER_VALIDATE_INT) AND in_array(substr($numero, 0, 1), array(5,6, 7, 8))) { 
    $conexion = mysql_connect("server","user","pass") or die (mysql_error()); mysql_select_db('db',$conexion) or die(mysql_error()); 
    $result = mysql_query("INSERT INTO `db`.`Incoming` (ID ,MsgExternalID ,MsgFrom ,MsgTo ,MsgBody ,MsgBodyType ,MsgTag ,MsgPriority ,MsgDLRRequested ,MsgOriginatedTime ,MsgScheduledTime ,MsgExpiringTime) VALUES (NULL , '0', '+506$numero', '+8384', '', '0', '', NULL , NULL , NULL , NULL , NULL)", $conexion); 
    if($result!=NULL) 
    { 
     header('Location: page.php'); 
    } 
}else{ 
    echo '<script language="javascript">'; 
    echo 'alert("Ingrese un número valido");'; 
    echo 'history.back()'; 
    echo '</script>'; 
} 
?> 
+0

Ваш код выглядит уязвимым для SQL-инъекции. используйте либо PDO, либо mysqli, но не mysql :) – aimme

+0

спасибо за совет :) –

ответ

4

Если я правильно понимаю, просто хочу подтвердить цифры? Попробуйте это основное регулярное выражение.

if (preg_match('/^[5-8][\d]{7}$/', $numero)) 
{ 
    //DO OPERATIONS HERE... 
} 
+0

Большое спасибо, что этот код работает отлично. –