2010-01-26 44 views
8

Escribo una aplicación web usando PHP y me encuentro con varias situaciones en las que necesito un código similar en el servidor y el navegador. Por ejemplo:Mismo código en el navegador/servidor

  • Quiero validar la entrada del usuario y generar los mismos mensajes de error en ambos lados.
  • Quiero formatear datos usando ciertas reglas (por ejemplo, si un campo dado es menor que 1, muéstrelo con dos lugares decimales, de lo contrario ninguno), y haga que aparezca igual independientemente de qué lado lo represente.

Parece que esto debería ser un problema común, ya que las personas están moviendo más lógica del servidor al navegador. Pero, ¿hay algún patrón o biblioteca común para manejarlo (especialmente para PHP)?

+3

Una buena pregunta, aunque estrictamente hablando, la ** mudanza ** de validación del servidor al navegador es una mala idea para la seguridad. Mejor "validar previamente" en el navegador (para comentarios inmediatos de los usuarios) y volver a validar en el servidor (por seguridad). –

+0

Absolutamente - Lo quiero en ambos lugares. –

Respuesta

1

Una solución parcial es AJAX. Por ejemplo, escriba su código de validación una vez en el servidor, y deje que sus formularios hablen con el servidor para ver si una entrada es válida y solicite que se muestre un mensaje de error si no es así.

+0

aunque (a menos que solo hable de compartir el código pero aún así haga la validación en ambos lados), esto supone que JavaScript está habilitado/disponible – AJM

0

json_encode y json_decode son un gran comienzo: la misma fuente de datos disponible en matrices php y objetos json según sea necesario.

los datos json_encoded pueden servirse a través de las etiquetas <script> o ajax como mejor le parezca.

2

¡Pregunta interesante! Por lo que yo sé que hay 2 opciones para PHP:

  • Uso de Ajax para hacer la validación de formularios, así que todo sucede en el servidor.
  • No es este esfuerzo para llevar las funciones de PHP a JS, que debería al menos facilitar la portabilidad: http://phpjs.org/

En Java, sin embargo, puede ejecutar Javascript con Rhino.

Las otras cosas en las que puedo pensar son feos hacks con aplicaciones de Flash o Java, o involucran un marco como pijamas.

0

Haga la validación rápida del lado del cliente (como coincidencia de patrones, fecha & corrección de número) y la verificación de seguridad del lado del servidor.
También puede usar AJAX para realizar la validación del lado del servidor, pero de esta manera puede tener una brecha de respuesta entre la entrada del usuario y el resultado de la validación. Así que usa JavaScript para una validación rápida y básica y haz una pesada con PHP.

0

Puede usar http://phpjs.org/ para ejecutar su código php en el lado del cliente. Esto funciona para la mayoría de las funciones en php.

2

Puede intentar utilizar el lenguaje haxe. Podría traducirse en js/php e incluso actionscript (flash).

Cuestiones relacionadas