Ver Mensaje Individual
  #8 (permalink)  
Antiguo 29/06/2011, 12:57
osmaymm
 
Fecha de Ingreso: abril-2011
Ubicación: La Habana, Cuba
Mensajes: 17
Antigüedad: 13 años, 7 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&ntilde;a', 'required|alpha_numeric|matches[conf_password]');
$this->form_validation->set_rules('conf_password', 'Confirmaci&oacute;n de la contrase&ntilde;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&ntilde;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&oacute;n se realiz&oacute; 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&oacute;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">&nbsp;</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">&nbsp;</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">&nbsp;</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">&nbsp;</td>
<td align="left"><?= form_error('tipo_usuario'); ?></td>
</tr>
<tr>
<td width="42%" align="right">
<b class="etiqueta">Contrase&ntilde;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">&nbsp;</td>
<td align="left"><?= form_error('password'); ?></td>
</tr>
<tr>
<td width="42%" align="right">
<b class="etiqueta">Confirmaci&oacute;n de la contrase&ntilde;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">&nbsp;</td>
<td align="left"><?= form_error('conf_password'); ?></td>
</tr>
<tr>
<td width="42%" align="right">&nbsp; </td>
<td align="left">&nbsp;</td>

</tr>

<tr>
<td colspan="2" align="right">&nbsp;</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&oacute;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;



}

// --------------------------------------------------------------
}