Foros del Web » Programando para Internet » PHP »

Validar sólo con php

Estas en el tema de Validar sólo con php en el foro de PHP en Foros del Web. buenas, estoy creando una web, y en el apartado de contacto el formulario lo estoy validando por javascript y php. Pero me surge una duda: ...
  #1 (permalink)  
Antiguo 05/04/2014, 21:31
 
Fecha de Ingreso: abril-2004
Mensajes: 28
Antigüedad: 20 años
Puntos: 0
Pregunta Validar sólo con php

buenas,

estoy creando una web, y en el apartado de contacto el formulario lo estoy validando por javascript y php.

Pero me surge una duda:

Si la validación por javascript no es segura (se puede deshabilitar por el lado cliente) para qué incluirla?

He leído muchos comentarios que es mejor validar siempre por js + php aunque sea redundante, pero no es llenar de código inservible la página web?

Por otro lado.. estoy viendo de implementar un captcha, pero volvemos al javascript: aunque la validación la haga por php el captcha está en js. Otra solución antibots sin js?

PD: No uso Ajax, más que nada porque hace muchos años que no programo y ya tengo bastante ahora mismo con js + php + sql :D

Gracias!
  #2 (permalink)  
Antiguo 05/04/2014, 22:52
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Validar sólo con php

No es que sea redundante, sino que la cantidad de usuarios que podrían saltarse una validación del lado del cliente es poca con respecto a los que no saben cómo hacerlo, entonces, las probabilidades de que el usuario que utilice tu aplicación se salte las validaciones del lado del cliente son bajas y validando del lado del cliente, le 'ahorras' el trabajo al servidor. De cualquier forma, ambas validaciones siempre deben estar presentes y si puedes, también valida con HTML5.

Lo del captcha sin JS se soluciona enviando el dato escrito a PHP, validarlo y devolver una respuesta, sea positiva o negativa.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 06/04/2014, 00:50
Avatar de Artificium  
Fecha de Ingreso: enero-2011
Mensajes: 492
Antigüedad: 13 años, 3 meses
Puntos: 81
Respuesta: Validar sólo con php

Por otra parte, la experiencia del usuario es mejor si se valida con JavaScript porque sería más rápida, no haría falta cargar toda una página y más aún si la conexión es lenta. Claro que vale el esfuerzo validar con JavaScript.
  #4 (permalink)  
Antiguo 06/04/2014, 06:15
 
Fecha de Ingreso: marzo-2014
Ubicación: Quito
Mensajes: 6
Antigüedad: 10 años
Puntos: 0
Respuesta: Validar sólo con php

Ayudas al servidor a evitar varias peticiones ( _POST, _GET ), por ejemplo si de comprobar un campo vacio se trata, es mejor usar javascript para evitar enviar un formulario cada vez que haya un error ( ej: un campo vacío), es más cuestión de performance y optimización
  #5 (permalink)  
Antiguo 07/04/2014, 09:33
 
Fecha de Ingreso: abril-2004
Mensajes: 28
Antigüedad: 20 años
Puntos: 0
Respuesta: Validar sólo con php

Cita:
Iniciado por Alexis88 Ver Mensaje
No es que sea redundante, sino que la cantidad de usuarios que podrían saltarse una validación del lado del cliente es poca con respecto a los que no saben cómo hacerlo, entonces, las probabilidades de que el usuario que utilice tu aplicación se salte las validaciones del lado del cliente son bajas y validando del lado del cliente, le 'ahorras' el trabajo al servidor. De cualquier forma, ambas validaciones siempre deben estar presentes y si puedes, también valida con HTML5.

Lo del captcha sin JS se soluciona enviando el dato escrito a PHP, validarlo y devolver una respuesta, sea positiva o negativa.

Saludos
lo que ocurre es por lo que tengo entendido, que la implementación del captcha es a través de libreria javascript, por lo que si se deshabilita...
  #6 (permalink)  
Antiguo 07/04/2014, 10:34
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Validar sólo con php

A ver, el captcha es básicamente una imagen con un texto distorsionado el cual el usuario debe ingresar en una caja de texto, enviarlo y si es correcto, se lo deja continuar, caso contrario, se lo retiene en esa página. Lo que harías es sencillo, en una tabla de la BD, ten una lista de N captchas, cada uno con la ruta de la imagen y el respectivo código, luego, aleatoriamente selecciona uno y muéstralo en pantalla, el usuario envía el código que lee y éste se procesa en PHP, si lo escribió correctamente, lo dejas continuar, caso contrario, lo redireccionas hacia la página anterior.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #7 (permalink)  
Antiguo 07/04/2014, 12:06
Avatar de Artificium  
Fecha de Ingreso: enero-2011
Mensajes: 492
Antigüedad: 13 años, 3 meses
Puntos: 81
Respuesta: Validar sólo con php

Definitivamente la validación del captcha debes hacerlo con PHP y no con JavaScript si esa es tu consulta, hacerlo con JavaScript sería un riesgo muy tonto, porque no cumpliría con la seguridad que se pretende imponer al utilizar captcha. El resto sí deberías hacerlo con JavaScript por los argumentos antes presentados.
  #8 (permalink)  
Antiguo 07/04/2014, 12:24
 
Fecha de Ingreso: abril-2004
Mensajes: 28
Antigüedad: 20 años
Puntos: 0
Respuesta: Validar sólo con php

Cita:
Iniciado por Alexis88 Ver Mensaje
... luego, aleatoriamente selecciona uno y muéstralo en pantalla
A eso es a lo que me refiero, no a la validación. Para mostrar el captcha aleatorio que lenguaje utilizarías?

Saludos y gracias.
  #9 (permalink)  
Antiguo 07/04/2014, 13:31
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Validar sólo con php

Como los códigos CAPTCHA estarán en una tabla de la BD, bastaría con que tomes un valor aleatorio de ella con la función RAND() de MySQL. Ya teniendo el valor, simplemente muestras la imagen que le corresponda.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #10 (permalink)  
Antiguo 07/04/2014, 14:17
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 13 años, 7 meses
Puntos: 56
Respuesta: Validar sólo con php

yo te recomendaria que crearas una funcion o una clase con dos metodos de uso uno comprobar y otro procesar.
el metodo comprobar simplemente que compruebe que la variable tiene un formato correcto y procesar que compruebe el envio de la variable del boton y realice las funciones que quieras realizar si el metodo comprobar es valido.
Yo el uso de validacion mediante javascript lo uso para evitar llamadas a el server simplemente, pero la validacion mediante php se debe de hacer si o si, por el mero hecho de que nunca debes confiar en lo que introduce un usuario o los metodos que use para el envio de dicha informacion.
Por ejemplo, imagina que tienes un input para un nombre de usuario.
El metodo comprobar podria comprobar que el input pierda el foco y si el valor del input es mayor a 4 digitos o los que quieras que compruebe si existe o no el usuario.
Todo esto lo haces con todos los input, y cuando el formulario tenga los input validados que active el boton de envio.
Una vez que se pulsa el boton manda las variables al script y recomprueba los valores de las variables recibidas, si falla que muestre el formulario pero con un aviso y si es exitoso una redireccion o una accion.
  #11 (permalink)  
Antiguo 07/04/2014, 15:52
 
Fecha de Ingreso: abril-2004
Mensajes: 28
Antigüedad: 20 años
Puntos: 0
Respuesta: Validar sólo con php

gracias a to2 por contestar.

Alexis88 perdona, porque hace mucho que no lo toco y no pensé en una función propia de SQL.

Sin desviarme mucho del tema (y si pensáis que debiera ir en otro post lo pongo sin problema. Estoy leyendo comentarios negativos sobre el uso de captcha y métodos alternativos para no tener que usarlos. Por vuestra experiencia, utilizáis captcha o buscáis otros métodos igual de eficaces pero menos agresivos con los usuarios?
  #12 (permalink)  
Antiguo 07/04/2014, 16:39
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 13 años, 7 meses
Puntos: 56
Respuesta: Validar sólo con php

La forma que yo utilizo para facilitar la integracion y el uso a el cliente es un desplazador horizontal al estilo de desbloqueo de los telefonos moviles.
De esta forma el usuario esta familiarizado con el uso y no debe introducir un codigo que a veces es dificil de descifrar hasta para un humano.
Al tener que realizar una accion como es pinchar y arrastrar casi te cercioras de que sea un humano quien lo use, pero puede saltarse tambien este metodo, por lo que tambien integro una tabla a mysql con los envios realizados por el usuario y si detecto un rapido numero de envios le muestro un captcha para bloquearlo

Etiquetas: formulario, sql
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:12.