29/06/2011, 12:57
|
| | Fecha de Ingreso: abril-2011 Ubicación: La Habana, Cuba
Mensajes: 17
Antigüedad: 13 años, 8 meses Puntos: 1 | |
Respuesta: Dudas con la validación alfabética Ahi les va el código
<?php
class Insertar_usuario extends Controller {
var $data = array('vista' => "seguridad/vista_insertar_usuario.php" );
function Insertar_usuario(){
parent::Controller();
$this->data['insertar_url'] = site_url( 'seguridad/insertar_usuario');
$this->data['base_url'] = $this->base_url;
$this->data['cancelar_operacion_url'] = site_url( 'seguridad/insertar_usuario/cancelar_operacion');
$this->data['listar_usuario_url'] = site_url( 'seguridad/listar_usuario');
$this->data['titulo'] = "Nuevo Usuario";
$this->load->model('tipo_usuario/mdl_tipo_usuario', 'tipo_usuario');
$this->data['tipo_usuario'] = $this->tipo_usuario->obtener();
$this->load->library('form_validation');
$this->load->helper(array('form', 'url'));
}
//---------------------------------------------------------------------------------------
function index() {
if($this->seguridad_modelo->tiene_session())
{
$this->seguridad_modelo->recuperar_desde_session();
if($this->seguridad_modelo->administrador())
{
$this->form_validation->set_rules('nombre', 'Nombre', 'required|alpha_space|callback_existe_nombre');
$this->form_validation->set_rules('tipo_usuario', 'Tipo de usuario', 'required');
$this->form_validation->set_rules('password', 'Contraseña', 'required|alpha_numeric|matches[conf_password]');
$this->form_validation->set_rules('conf_password', 'Confirmación de la contraseña', 'required|alpha_numeric');
$this->form_validation->set_error_delimiters('<div class="verdana">', '</div>');
if($this->form_validation->run())
{
$this->form_validation->set_rules('nombre', 'Nombre', 'trim|xss_clean');
$this->form_validation->set_rules('tipo_usuario', 'Tipo de usuario', 'trim|xss_clean');
$this->form_validation->set_rules('password', 'Contraseña', 'trim|xss_clean|md5');
$this->form_validation->run();
$this->seguridad_modelo->construir(array('nmbre' => $this->input->post("nombre"), 'id_tipo' => $this->input->post('tipo_usuario'), 'password' => $this->input->post("password")));
if($this->seguridad_modelo->guardar())
{
$this->session->set_flashdata('operacion', 'La operación se realizó satisfactoriamente.');
redirect($this->data['listar_usuario_url']);
}
else
{
$this->data['mensaje'] = 'Se produjo un error al insertar los datos.';
$this->load->view("plantilla", $this->data);
}
}
else $this->load->view("plantilla", $this->data);
}
else redirect('negocio/inicio_control');
}
else redirect('seguridad/login_control');
}
//-----------------------------------------------------------------------------------------------
public function cancelar_operacion()
{
$this->session->set_flashdata('operacion', 'La operación fue cancelada.');
}
//------------------------------------------------------
function existe_nombre($str)
{
$this->seguridad_modelo->set_nombre($str);
if($this->seguridad_modelo->existe_nombre())
{
$this->form_validation->set_message('existe_nombre', 'Existe un usuario registrado con el mismo nombre. Por favor cambie el nombre.');
return FALSE;
}
else return TRUE;
}
//--------------------------------------------------------
}
/////////////////////////////////////////////////////////////////////////////////////////////////////
la vista
////////////////////////////////////////////////////////////////////////////////////////////////////
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script language="javascript" src="<?= $base_url.'system/reutilizable/js/jquery/jquery-1.2.3.pack.js.php' ?>" > </script>
<script language="javascript" src="<?= $base_url.'system/reutilizable/js/jquery/jquery.load_data.js'; ?>" > </script>
<script src="<?= $base_url.'system/reutilizable/js/jquery/jquery.blockui.js'; ?>"></script>
<SCRIPT language="JavaScript">
// Evento que se incia cuando se levanta la pagina..
$(document).ready( function() {
$('#nombre').focus();
//----------------------boton cancelar_operacion---------------------------
$('#cancelar_operacion').click(function()
{
$.ajax({
url:'<?= $cancelar_operacion_url; ?>',
success:function(){window.location.href = "<?= $listar_usuario_url; ?>";}});
})
}) // del ready
</SCRIPT>
</head>
<body>
<form name="frm_nuevo_usuario" id="frm_nuevo_usuario" method="post" action="<?= $insertar_url; ?>">
<table width="500" height="500" border="0" cellspacing="10" cellpadding="0">
<tr>
<td colspan="2" align="right"> </td>
</tr>
<tr><td colspan="2" class="td_encabezado_tabla"><a class="text_encabezado_tabla"><?php echo $titulo; ?></a></td></tr>
<tr>
<td colspan="2" align="right"> </td>
</tr>
<tr>
<td width="42%" align="right">
<b class="etiqueta"> Nombre: </b> </td>
<td width="58%" align="left"><input name="nombre" id="nombre" type="text" size="30" value="<?= set_value('nombre');?>"/></td>
</tr>
<tr>
<td width="42%" align="right"> </td>
<td align="left"><?= form_error('nombre'); ?></td>
</tr>
<tr>
<td width="42%" align="right">
<b class="etiqueta"> Tipo de usuario: </b> </td>
<td width="58%" align="left"><select name="tipo_usuario" id="tipo_usuario">
<option value= "" ></option>
<?php
$can = count($tipo_usuario);
for($i = 0; $i < $can; $i++)
{?>
<option value="<?= $tipo_usuario[$i]['id_tipo'];?>"<?= set_select( 'tipo_usuario', $tipo_usuario[$i]['id_tipo']);?>><?php echo $tipo_usuario[$i]['tipo_usuario'];?></option>
<?php }?>
</select></td>
</tr>
<tr>
<td width="42%" align="right"> </td>
<td align="left"><?= form_error('tipo_usuario'); ?></td>
</tr>
<tr>
<td width="42%" align="right">
<b class="etiqueta">Contraseña:</b></td>
<td align="left"><input name="password" id="password" type="password" size="30" value="<?= set_value('password');?>"/></td>
</tr>
<tr>
<td width="42%" align="right"> </td>
<td align="left"><?= form_error('password'); ?></td>
</tr>
<tr>
<td width="42%" align="right">
<b class="etiqueta">Confirmación de la contraseña:</b></td>
<td align="left"><input name="conf_password" id="conf_password" type="password" size="30" value="<?= set_value('conf_password');?>"/></td>
</tr>
<tr>
<td width="42%" align="right"> </td>
<td align="left"><?= form_error('conf_password'); ?></td>
</tr>
<tr>
<td width="42%" align="right"> </td>
<td align="left"> </td>
</tr>
<tr>
<td colspan="2" align="right"> </td>
</tr>
<tr>
<td colspan="2" align="center">
<input name="guardar" type="submit" value="Guardar" id="guardar" />
<input name="cancelar_operacion" type="button" value="Cancelar Operación" id="cancelar_operacion" /> </td>
</tr>
</table>
</form>
</body>
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////// form_validation
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class MY_Form_validation extends CI_Form_validation {
/**
* Constructor
*
*/
function MY_Form_validation()
{
parent:: CI_Form_validation();
}
// --------------------------------------------------------------------
// --------------------------------------------------------------------
/**
* Alpha-space
*/
function alpha_space($str)
{
return ( ! preg_match("/^([a-zA-ZáéíóúñÑ\s])+$/i", $str)) ? FALSE : TRUE;
}
// --------------------------------------------------------------
} |