Ayuda con validación
tengo hecho un formulario con los campos dni,nombre,1 apellido, 2 apellido
Código PHP:
Ver originalif(isset($_POST['submit'])){
$validacion_numero_dni = "/[0-9]{8}/";
if(!preg_match($validacion_numero_dni, $dni_numero)){
echo 'Introduzca el numero del dni ex: 22446688<br/>';
}
$validacion_nombre = "/[a-z]{2,15}/";
if(!preg_match($validacion_nombre, $nombre)){
echo 'Introduzca el nombre ex: Jose<br/>';
}
$validacion_primer_apellido = "/[a-z]{2,25}/";
if(!preg_match($validacion_primer_apellido, $primer_apellido)){
echo 'Introduzca el primer apellido ex: Sanchez<br/>';
}
$validacion_segundo_apellido = "/[a-z]{2,25}/";
if(!preg_match($validacion_segundo_apellido, $segundo_apellido)){
echo ' Introduzca el segundo apellido ex: Sanchez<br/>';
}
}
<form action="formulari_de_registro.php" method="post">
<label for="dni">Dni: *</label><br/>
<input type="text" name="dni_numero" value="
<?php if(isset($dni_numero)) echo $dni_numero ?>" size="8" maxlength="8"/>
<label for="nombre">Nombre: *</label><br/>
<input type="text" name="nombre" value="
<?php if(isset($nombre)) echo $nombre ?>" size="15" maxlength="15"/><br/>
<label for="primer_apellido">Primer Apellido: *</label><br/>
<input type="text" name="primer_apellido" value="
<?php if(isset($primer_apellido)) echo $primer_apellido ?>" size="25" maxlength="25"/><br/>
<label for="segundo_apellido">Segundo Apellido: *</label><br/>
<input type="text" name="segundo_apellido" value="
<?php if(isset($segundo_apellido)) echo $segundo_apellido ?>" size="25" maxlength="25"/><br/><br/><br/><br/>
<input type="submit" name="submit" value="submit"/><br/>
</form>
$hostname="";
$user="";
$password="";
$database="";
$link = mysqli_connect($hostname,$user,$password,$database);
$dni_numero = $_POST["dni_numero"];
$nombre = $_POST["nombre"];
$primer_apellido = $_POST["primer_apellido"];
$segundo_apellido = $_POST["segundo_apellido"];
$query_insert =
"INSERT INTO usuarios (dni,nombre,primer_apellido,segundo_apellido)
VALUES(
" . $dni_numero . "," .
"\"". $nombre . "\"," .
"\"". $primer_apellido . "\"," .
"\"". $segundo_apellido . "\"
);";
$result_insert = mysqli_query($link,$query_insert) or die (mysqli_error($link));
si introduzco un 1 en el campo dni ya me hace el insert me añade los 7 numeros siguientes 10000000 yo quiero que el usuario tenga que introducir los 8 números el
la validación de nombre tampoco funciona si pongo un 1 el nombre sera 1 yo quiero que el nombre puede tener entre 2 o 15 caracteres a-z, los apellidos pasa exactamente lo mismo
tengo otro problema si lo hago todo en el mismo documento cada vez tengo que rellenar todos los campos si tengo algún campo mal, y quiero poner mas campos 15 o 20 mas
si lo hago en dos ficheros se me conservan los valores en los input pero no me muestra ningún mensaje de error
en definitiva tengo 3 problemas
validación
conservar datos en los input
mostrar mensaje de error
también he tenido que escapar el nombre y apellidos no se si lo he hecho de la mejor forma en el insert