Edición de «Validando formulario con clase kumbia validate»
De KumbiaPHP Framework Wiki
Advertencia: no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si inicias sesión o creas una cuenta, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Puedes deshacer la edición. Antes de deshacer la edición, comprueba la siguiente comparación para verificar que realmente es lo que quieres hacer, y entonces guarda los cambios para así efectuar la reversión.
Revisión actual | Tu texto | ||
Línea 1: | Línea 1: | ||
− | '''Atención: Este tutorial esta basado en la version | + | '''Atención: Este tutorial esta basado en la version Spirit beta2 de KumbiaPHP Framework.''' |
Muchas veces necesitamos usar formularios para que una empresa/persona contacte con nosotros a través de nuestra web. Para validar los datos enviados y evitar un mal uso del mismo, el equipo de Kumbia ha desarrollado una nueva clase llamada Validate desvinculada de las validaciones propias de los modelos basados en ActiveRecord. | Muchas veces necesitamos usar formularios para que una empresa/persona contacte con nosotros a través de nuestra web. Para validar los datos enviados y evitar un mal uso del mismo, el equipo de Kumbia ha desarrollado una nueva clase llamada Validate desvinculada de las validaciones propias de los modelos basados en ActiveRecord. | ||
Línea 13: | Línea 13: | ||
return array( | return array( | ||
− | 'NombreCompleto' => | + | 'NombreCompleto' => array( |
− | 'required' => | + | 'required'=>array('error'=>'Indique su nombre.'), |
− | 'alpha' | + | 'alpha' =>array('error'=>'Nombre incompleto o incorrecto.') |
− | + | ), | |
− | 'Email' => | + | 'Email' => array( |
− | 'required' => | + | 'required'=>array('error'=>'Indique su email.'), |
− | 'email' | + | 'email' => array('error'=>'Email incorrecto.') |
− | + | ), | |
− | 'Movil' => | + | 'Movil' => array( |
− | 'required' => | + | 'required'=>array('error'=>'Indique su teléfono / móvil.'), |
− | 'length' | + | 'length' => array('min'=>'9','max'=>'17','error'=>'Teléfono / móvil incorrecto'), |
− | + | 'pattern' => array('regexp'=>'/^\+(?:[0-9] ?){6,14}[0-9]$/','error'=>'Teléfono incorrecto. Formato ejemplo. +34 862929929') | |
− | + | ), | |
− | 'pattern' | + | 'Asunto' => array( |
− | + | 'required'=>array('error'=>'Indique un asunto.'), | |
− | + | ), | |
− | 'Asunto' => | + | 'Mensaje' => array( |
− | 'required' => | + | 'required'=>array('error'=>'Indique un mensaje.'), |
− | + | 'length'=>array('min'=>100, 'error'=>'Si es posible, concrete más en su mensaje.'), | |
− | 'Mensaje' => | + | ) |
− | 'required' => | ||
− | 'length' | ||
− | |||
− | |||
); | ); | ||
+ | |||
+ | |||
} | } | ||
− | + | // Envio de datos para generar email | |
− | + | public function enviar($datos) { | |
− | + | ||
− | + | $validador = new Validate($datos, $this->reglas() ); | |
− | + | if (!$validador->exec()) { | |
− | + | $validador->flash(); | |
− | + | } else { | |
− | + | ||
− | + | // Enviar email | |
− | + | ||
− | + | } | |
− | + | ||
+ | } | ||
} | } | ||
Línea 65: | Línea 64: | ||
<div class="container"> | <div class="container"> | ||
− | <? | + | <?php echo Form::open() ?> |
<?php View::content() ?> | <?php View::content() ?> | ||
<fieldset><legend>Contactar</legend> | <fieldset><legend>Contactar</legend> | ||
− | <label | + | <?php echo Form::label('Nombre completo:', 'contactar_NombreCompleto') ?> <?php echo Form::text('contactar.NombreCompleto') ?> |
− | <? | + | <?php echo Form::label('Email:', 'contactar_Email') ?> <?php echo Form::text('contactar.Email') ?> |
− | < | + | <?php echo Form::label('Teléfono / Móvil:', 'contactar_Movil') ?> <?php echo Form::text('contactar.Movil') ?> |
− | + | <?php echo Form::label('Mensaje:', 'contactar_Mensaje') ?> <?php echo Form::textarea('contactar.Mensaje') ?> | |
− | <? | + | <?php echo Form::submit('Enviar') ?> |
− | < | ||
− | |||
− | <? | ||
− | < | ||
− | |||
− | <? | ||
− | |||
− | <? | ||
</fieldset> | </fieldset> | ||
− | <? | + | <?php echo Form::close() ?> |
</div> | </div> | ||
Línea 91: | Línea 82: | ||
<source lang=php line> | <source lang=php line> | ||
− | + | Load::model('sendform'); | |
class IndexController extends AppController | class IndexController extends AppController | ||
{ | { | ||
Línea 97: | Línea 88: | ||
public function index() | public function index() | ||
{ | { | ||
− | // Verificamos que se | + | // Verificamos que se envian datos desde el formulario |
if (Input::hasPost('contactar')) { | if (Input::hasPost('contactar')) { | ||
Línea 103: | Línea 94: | ||
// Procesamos envio de formulario | // Procesamos envio de formulario | ||
if ($form->enviar(Input::post('contactar'))) { | if ($form->enviar(Input::post('contactar'))) { | ||
− | // Si se | + | // Si se envia correctamente, limpiamos el formulario para evitar reenvios |
Input::delete('contactar'); | Input::delete('contactar'); | ||
} | } |