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 1.x de KumbiaPHP Framework.'''
+
'''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' => ['error' => 'Indique su nombre.'],
+
'required'=>array('error'=>'Indique su nombre.'),
'alpha'   => ['error' => 'Nombre incompleto o incorrecto.']
+
'alpha' =>array('error'=>'Nombre incompleto o incorrecto.')
],
+
),
'Email' => [
+
'Email' => array(
'required' => ['error' => 'Indique su email.'],
+
'required'=>array('error'=>'Indique su email.'),
'email'   => ['error' => 'Email incorrecto.']
+
'email' => array('error'=>'Email incorrecto.')
],
+
),
'Movil' => [
+
'Movil' => array(
'required' => ['error' => 'Indique su teléfono / móvil.'],
+
'required'=>array('error'=>'Indique su teléfono / móvil.'),
'length'   => ['min' => '9',
+
'length' => array('min'=>'9','max'=>'17','error'=>'Teléfono / móvil incorrecto'),
                                'max' => '17',
+
'pattern' => array('regexp'=>'/^\+(?:[0-9] ?){6,14}[0-9]$/','error'=>'Teléfono incorrecto. Formato ejemplo. +34 862929929')
                                'error' => 'Teléfono / móvil incorrecto'],
+
),
'pattern' => ['regexp' => '/^\+(?:[0-9] ?){6,14}[0-9]$/',  
+
'Asunto' => array(
                                'error' => 'Teléfono incorrecto. Formato ejemplo. +34 862929929']
+
'required'=>array('error'=>'Indique un asunto.'),
],
+
),
'Asunto' => [
+
'Mensaje' => array(
'required' => ['error' => 'Indique un asunto.'],
+
'required'=>array('error'=>'Indique un mensaje.'),
],
+
'length'=>array('min'=>100, 'error'=>'Si es posible, concrete más en su mensaje.'),
'Mensaje' => [
+
)
'required' => ['error' => 'Indique un mensaje.'],
 
'length'   => ['min' => 100,
 
                                'error' => 'Si es posible, concrete más en su mensaje.'],
 
]
 
 
);
 
);
  
 +
 +
 
}
 
}
  
  
    // Envio de datos para generar email
+
// Envio de datos para generar email
    public function enviar($datos) {
+
public function enviar($datos) {
   
+
        $validador = new Validate($datos, $this->reglas() );
+
$validador = new Validate($datos, $this->reglas() );
        if (!$validador->exec()) {
+
if (!$validador->exec()) {
                $validador->flash();
+
$validador->flash();
                return false;
+
} else {
        }
+
   
+
// Enviar email
        // Enviar email
+
 
   
+
}
    }
+
 
 +
}
  
 
}
 
}
Línea 65: Línea 64:
  
 
<div class="container">
 
<div class="container">
<?= Form::open() ?>
+
<?php echo Form::open() ?>
 
<?php View::content() ?>
 
<?php View::content() ?>
 
<fieldset><legend>Contactar</legend>
 
<fieldset><legend>Contactar</legend>
<label required>Nombre completo:
+
<?php echo Form::label('Nombre completo:', 'contactar_NombreCompleto') ?> <?php echo Form::text('contactar.NombreCompleto') ?>
<?= Form::text('contactar.NombreCompleto') ?>
+
<?php echo Form::label('Email:', 'contactar_Email') ?> <?php echo Form::text('contactar.Email') ?>
</label>
+
<?php echo Form::label('Teléfono / Móvil:', 'contactar_Movil') ?> <?php echo Form::text('contactar.Movil') ?>
<label required>Email:
+
<?php echo Form::label('Mensaje:', 'contactar_Mensaje') ?> <?php echo Form::textarea('contactar.Mensaje') ?>
<?= Form::text('contactar.Email') ?>
+
<?php echo Form::submit('Enviar') ?>
</label>
 
<label required>Teléfono / Móvil:
 
<?= Form::text('contactar.Movil') ?>
 
</label>
 
<label required>Mensaje:
 
<?= Form::textarea('contactar.Mensaje') ?>
 
</label>
 
<?= Form::submit('Enviar') ?>
 
 
</fieldset>
 
</fieldset>
<?= Form::close() ?>
+
<?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 envían datos desde el formulario
+
         // 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 envía correctamente, limpiamos el formulario para evitar reenvíos
+
// Si se envia correctamente, limpiamos el formulario para evitar reenvios
 
Input::delete('contactar');
 
Input::delete('contactar');
 
}  
 
}  

Ten en cuenta que todas las contribuciones a KumbiaPHP Framework Wiki pueden ser editadas, modificadas o eliminadas por otros colaboradores. Si no deseas que las modifiquen sin limitaciones, no las publiques aquí.
Al mismo tiempo, asumimos que eres el autor de lo que escribiste, o lo copiaste de una fuente en el dominio público o con licencia libre (véase Proyecto:Derechos de autor para más detalles). ¡No uses textos con copyright sin permiso!

Para editar esta página, responde la pregunta que aparece abajo (más información):

Cancelar Ayuda de edición (se abre en una ventana nueva)