Los formularios de Symfony 1.4

2.1. Antes de comenzar

El formulario de contacto creado en el capítulo 1 todavía no es muy útil. ¿Qué sucede si un usuario envía una dirección de email inválida o si el mensaje enviado está vacío? En estos casos, lo habitual es mostrar mensajes de error que le indiquen al usuario que tiene que corregir los datos enviados, como se muestra en la figura 2-1.

Mostrando mensajes de error

Figura 2.1 Mostrando mensajes de error

A continuación se describen las reglas de validación que se van a incluir en el formulario de contacto:

  • nombre: opcional
  • email: obligatorio, debe ser una dirección válida de correo electrónico
  • asunto: obligatorio, seleccionado entre una lista de valores predefinidos
  • mensaje: obligatorio, debe tener una longitud de al menos cuatro caracteres

Nota ¿Por qué es necesario validar el campo asunto? Al fin y al cabo, su valor se selecciona mediante una etiqueta <select> que obliga al usuario a seleccionar un valor entre una lista de valores predefinidos. Aunque es cierto que los usuarios normales sólo podrán seleccionar uno de los valores predefinidos, cualquier usuario con conocimientos medios puede utilizar herramientas como Firebug para manipular los valores de la lista desplegable. Además, otros usuarios pueden utilizar herramientas como curl o wget para construir peticiones HTTP a medida que incluyan valores arbitrarios.

El listado 2-1 muestra la misma plantilla que se utiliza en el capítulo 1.

Listado 2-1 - La plantilla del formulario Contacto

// apps/frontend/modules/contacto/templates/indexSucces.php
<form action="<?php echo url_for('contacto/index') ?>" method="POST">
  <table>
    <?php echo $formulario ?>
    <tr>
      <td colspan="2">
        <input type="submit" />
      </td>
    </tr>
  </table>
</form>

La figura 2-2 muestra la interacción entre la aplicación y el usuario. El primer paso consiste en mostrar la información al usuario. Cuando el usuario envía el formulario, si los datos son válidos se le redirige a la página de agradecimiento y si los datos no cumplen alguna de las reglas de validación, se vuelve a mostrar el formulario con los mensajes de error.

Interacción entre la aplicación y el usuario

Figura 2.2 Interacción entre la aplicación y el usuario