1° Primero que nada Crear un Archivo control.php Guardarlo en /application/controllers/
Con el siguiente código
********************************************************************************
<?php
class control extends CI_Controller {
public function index(){
$this->config->set_item('language', 'spanish');
if(!isset($_POST['maillogin'])){ // Si no recibimos ningún valor proveniente del formulario, significa que el usuario recién ingresa.
$this->load->view('login'); // Por lo tanto le presentamos la pantalla del formulario de ingreso.
} else
{
$this->form_validation->set_rules('maillogin','e-mail','required|valid_email');
$this->form_validation->set_rules('passwordlogin','password','required');
if(($this->form_validation->run()==FALSE)){ // Verificamos si el usuario superó la validación
$this->load->view('login'); // En caso que no, volvemos a presentar la pantalla de login
}else{
$this->load->model('usuarios_model');
$ExisteUsuarioyPassoword=$this->usuarios_model->ValidarUsuario($_POST['maillogin'],$_POST['passwordlogin']); // comprobamos que el usuario exista en la base de datos y la password ingresada sea correcta
if($ExisteUsuarioyPassoword){ // La variable $ExisteUsuarioyPassoword recibe valor TRUE si el usuario existe y FALSE en caso que no. Este valor lo determina el modelo.
echo "Validacion Ok<br><br><a href=''>Volver</a>"; // Si el usuario ingresó datos de acceso válido, imprimos un mensaje de validación exitosa en pantalla
}
else{ // Si no logró validar
$data['error']="E-mail o password incorrecta, por favor vuelva a intentar";
$this->load->view('login',$data); // Lo regresamos a la pantalla de login y pasamos como parámetro el mensaje de error a presentar en pantalla
}
}
}
}
function Registro(){
$data['title'] = "Ingreso al Systema";
$this->load->view('registro', $data);
}
}
?>
*********************************************************************************
2° Crear el archivo login.php y guardarlo en /application/views/
<!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" xml:lang="es" lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Ingreso</title>
</head>
<body>
<!-- <?php echo form_open('control/index/'); ?> Se emplea para Indicarle con que controlador trabaje Primero-->
<form action="./?a=login" method="post">
<fieldset>
<legend>
</legend>
<table>
<tr><td>Email: </td><td><input type="text" name="maillogin" value="<?php set_value('maillogin'); ?>" size="25" /></td><td> <?php echo form_error('maillogin');?></td></tr>
<tr><td>Password: </td><td><input type="password" name="passwordlogin" value="<?php set_value('passwordlogin'); ?>" size="25" /></td><td> <?php echo form_error('passwordlogin');?></td></tr>
<?php if(isset($error)){ echo "<p>".$error."</p>"; } ?>
<tr><td>
<tr><td></td><td><input type="submit" value="OK"/></td></tr>
</table>
</fieldset>
</form>
<div class="registro"><a href="index.php/control/registro">Registro</a></div>
</body>
</html>
*********************************************************************************
3° Crear usuarios_model.php y guardarlo en /application/models/
<?php
class Usuarios_model extends CI_Model{
function ValidarUsuario($email,$password){ // Consulta Mysql para buscar en la tabla Usuario aquellos usuarios que coincidan con el mail y password ingresados en pantalla de login
$query = $this->db->where('Usuario',$email); // La consulta se efectúa mediante Active Record. Una manera alternativa, y en lenguaje más sencillo, de generar las consultas Sql.
$query = $this->db->where('Password',$password);
$query = $this->db->get('Usuarios');
return $query->row(); // Devolvemos al controlador la fila que coincide con la búsqueda. (FALSE en caso que no existir coincidencias)
}
}
?>
4° Crear la Tabla de la base de datos
Aka ojo tener primero configurado la database.php en la /application/config
algo asi para el servidor o servidor local :p
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'codeigniter';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
Bueno ahora la tabla. para la base de datos
CREATE TABLE `Usuarios` ( `Id` INT NOT NULL AUTO_INCREMENT , `Usuario` VARCHAR( 50 ) NOT NULL , `Password` VARCHAR( 50 ) NOT NULL , PRIMARY KEY ( `Id` ) ) ENGINE = MYISAM ; INSERT INTO `Usuarios` ( `Id` , `Usuario` , `Password` ) VALUES ( NULL , 'jorge@gmail.com', 'jorge123' );
5° Importante: pre-cargar librerías de CodeIgniter para base de datos y validaciones de formularios
Abrir el archivo autoload.php ubicado en la ruta /application/config/" y localizar la siguiente línea:
$autoload['libraries']=array();
Reemplazarla por:
$autoload['libraries'] = array('database','form_validation');