Foros del Web » Programando para Internet » PHP »

Sobre restricciones

Estas en el tema de Sobre restricciones en el foro de PHP en Foros del Web. Buenas a todos, tengo una pregunta, a la hora de realizar restricciones para una aplicacion web (por ejemplo, un formulario de registro) donde es aconsejable ...
  #1 (permalink)  
Antiguo 26/12/2010, 17:18
 
Fecha de Ingreso: noviembre-2008
Ubicación: el sol
Mensajes: 146
Antigüedad: 15 años, 5 meses
Puntos: 6
Sobre restricciones

Buenas a todos, tengo una pregunta, a la hora de realizar restricciones para una aplicacion web (por ejemplo, un formulario de registro) donde es aconsejable poner las restricciones.
Ej. Que le campo DNI sea de 8 dígitos y una letra.
¿Dónde deben ponerse las restricciones, en la base de datos SQL o simplemente en el código?
¿Existe alguna función php o algo para que cuando los datos introducidos a la base de datos den error (debido a una restricción) ocurra una acción?

Espero haberme explicado un saludo.
  #2 (permalink)  
Antiguo 26/12/2010, 18:35
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: Sobre restricciones

Con que lo pongas en el PHP que procesa es suficiente, no se exactamente a que formato de DNI te referis, pero para 8 digitos + una letra al final (mayúscula o minúscula) la expresión regular tiene que ser

^((([A-Z]|[a-z])\d{8})|(\d{8}([A-Z]|[a-z])))$


por lo tanto la validación la podes hacer

Código PHP:
Ver original
  1. $dni = $_POST['dni'];
  2.  
  3. $control_dni="/^((([A-Z]|[a-z])\d{8})|(\d{8}([A-Z]|[a-z])))$/";
  4. if(!preg_match($control_dni,$dni)){
  5. echo "Dni no válido";
  6. }else{
  7. echo "Dni correcto";
  8. }

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 27/12/2010, 06:56
 
Fecha de Ingreso: noviembre-2008
Ubicación: el sol
Mensajes: 146
Antigüedad: 15 años, 5 meses
Puntos: 6
Respuesta: Sobre restricciones

Vale, es decir, poner las restricciones en el código PHP. Esque habia leído por ahí que lo correcto sería ponerlas en la DB pero claro, no sabía como hacer para que cuando haya un error procedente del a DB me reproduzca el error en mi aplicación (no un error MySQL, si no un mensaje de error puesto por mí).

Lo del DNI es para que si el usuario mete en lugar de 8 digitos y una letra, se le olvida la letra, diga por ejemplo: No introduciste la letra o si falta un digito, recuerda que son necesarios 8 digitos + la letra. Espero haberme explicado... Un saludo!!
  #4 (permalink)  
Antiguo 27/12/2010, 08:37
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: Sobre restricciones

El código que te pasé utiliza una "Expresión Regular", cualquier cosa que ingrese el usuario que no sea 8(num) + 1(letra) le producirá en mensaje de error. Lo del DNI me quedó la duda porque qué en Argentina son solo números.

No tenés que implementar nada más. Y el mensaje de error podés variarlos a tu gusto. "Error: recuerda que el formato para tu DNI es de 8 números + una letra"


Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: restricciones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:16.