tengo hecho un formulario con los campos dni,nombre,1 apellido, 2 apellido
Código PHP:
Ver original
if(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