Foros del Web » Programando para Internet » PHP » CodeIgniter »

[APORTE] ¿Cómo hacer un login de usuarios en Php y CodeIgniter? Ver script y demo !

Estas en el tema de [APORTE] ¿Cómo hacer un login de usuarios en Php y CodeIgniter? Ver script y demo ! en el foro de CodeIgniter en Foros del Web. Son 4 sencillos pasos, Paso 1 : crear el archivo php.php y guardarlo en /application/controllers/ Paso 2 : crear el archivo login.php y guardarlo en ...

  #1 (permalink)  
Antiguo 14/02/2011, 10:22
Avatar de CodeIgniter  
Fecha de Ingreso: enero-2011
Ubicación: $this->load->view('Rafaela', 'Argentina')
Mensajes: 44
Antigüedad: 13 años, 3 meses
Puntos: 14
[APORTE] ¿Cómo hacer un login de usuarios en Php y CodeIgniter? Ver script y demo !

Son 4 sencillos pasos,
  • Paso 1: crear el archivo php.php y guardarlo en /application/controllers/
  • Paso 2: crear el archivo login.php y guardarlo en /application/views/
  • Paso 3: crear usuarios_model.php y guardarlo en /application/models/
  • Paso 4: crear la tabla mysql con algunos usuarios de prueba

Ver la demo: http://blogdephp.com/script/php/login/

Paso 1: Código para el controlador "php.php":
Código PHP:
<?
class Php extends CI_Controller {
    function 
login()
    {
        
$this->load->helper('form');
        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{                                
//    Si el usuario ya pasó por la pantalla inicial y presionó el botón "Ingresar"
            
$this->form_validation->set_rules('maillogin','e-mail','required|valid_email');        //    Configuramos las validaciones ayudandonos con la librería form_validation del Framework Codeigniter
            
$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{                                                    
//    Si ambos campos fueron correctamente rellanados por el usuario,
                
$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
                
}
            }
        }
    }
}
?>
Paso 2: Código para la vista "login.php":

Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Blogdephp.com, ¿cómo hacer un login de usuarios en php? Ver script y demo!</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="http://www.blogdephp.com/script/php-login.css" type="text/css" media="screen">
<!--<link rel="stylesheet" href="../../php-login.css" type="text/css" media="screen">-->
</head>

<body style="margin-top:0px">
<?php echo form_open('php/login'); ?>
<div class="Info">
    <p class="Titulo">Demo: ¿cómo hacer un login de usuarios en php?</p>
    <p>&nbsp;</p>    
</div>
<div id="LoginUsuarios">
    <div class="fila">
        <div class="LoginUsuariosCabecera">E-mail:</div>
        <div class="LoginUsuariosDato"><input type="text" name="maillogin" value="<?= set_value('maillogin'); ?>" size="25" /></div>
        <div class="LoginUsuariosError">
        <?
        
if(isset($error)){
            echo 
"<p>".$error."</p>";
        }
        echo 
form_error('maillogin');
        
?>
        </div>
    </div>        
    <div class="fila">
        <div class="LoginUsuariosCabecera">Contraseña:</div>
        <div class="LoginUsuariosDato"><input type="password" name="passwordlogin" value="<?= set_value('passwordlogin'); ?>" size="25" /></div>
        <div class="LoginUsuariosError"><?= form_error('passwordlogin');?></div>
    </div>
    <div class="fila">
        <div class="LoginUsuariosCabecera"></div>
        <div class="LoginUsuariosDato"></div>
    </div>        
    <div class="fila">
        <div class="LoginUsuariosCabecera"><input type="submit" value="Ingresar"></div>
        <div class="LoginUsuariosDato"></div>
    </div>        
</div>
<p>&nbsp;</p>    
<p>&nbsp;</p>    
</form>
<div class="Info">
    <p><strong><u>Datos de acceso</u></strong> (correspondiente a un usuario ya ingresado en la base de datos)</p>
    <p><strong>e-mail</strong>: [email protected]</p>
    <p><strong>password</strong>: blogdephp</strong></p>
</div>
<p>&nbsp;</p>    
<p>&nbsp;</p>    
<div class="Info">
    <p><strong><u>Requerimientos</u></strong></p>
    <p>Para poder implementar este script de login, se requiere el framework de php "Codeigniter"</p>
    <p>(esta maravillosa herramienta nos ayuda a ahorrar mucho tiempo y esfuerzo en nuestros trabajos de programación php).</p>
    <p>&nbsp;</p>
</div>
<div class="Info">
</div>
</body>
</html>
Paso 3: Código para el modelo usuarios_model.php
Código PHP:
<?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)
    
}
}
?>
Paso 4: Consulta Mysql para crear la tabla de usuarios
Código PHP:
CREATE TABLE `Usuarios` (
`
IdINT NOT NULL AUTO_INCREMENT ,
`
UsuarioVARCHAR50 NOT NULL ,
`
PasswordVARCHAR50 NOT NULL ,
PRIMARY KEY ( `Id` )
ENGINE MYISAM ;
INSERT INTO `Usuarios` (
`
Id` ,
`
Usuario` ,
`
Password`
)
VALUES (
NULL '[email protected]''blogdephp'
); 
Funcionalidades del script
  • Permitir acceso a determinada información y utilidades únicamente a determinados usuarios (aquellos que se encuentren registrados en una tabla de base de datos Mysql)

  • Mensaje de error cuando falta rellenar algún campo de la pantalla de acceso

  • Mensaje de error cuando los datos ingresados no coinciden con ningún usuario registrado en la base de datos.
  • Recordar los datos previamente ingresados por el usuario cuando éste no supera el login y tenemos que volver a presentarle la pantalla de acceso.

Explicación técnica
Como pueden observar, los códigos del script se encuentran con comentarios. Cada sentencia importante tiene su explicación de que función cumple. Lo que intentaremos ahora es hacer una explicación general de cómo funciona el script; como si fuera un cuento...

Comencemos con la pantalla de acceso "login.php", donde el usuario podrá ingresar sus datos (usuario y password). Recordemos que todo lo que sea interacción con el usuario (entrada y salida de datos) lo trabajamos con las vistas (capa presentación).

Lo importante aquí es la sentencia
Código PHP:
<?php echo form_open('php/login'); ?>
donde creamos nuestro formulario html y especificamos que sus datos deben ser enviados y procesados por el método "login" del controlador "php". La sentencia form_open es de CodeIgniter.

Otro punto importante de la vista es cuando creamos los campos (serían las cajas de texto donde el usuario podrá ingresar los datos):
Código PHP:
<input type="text" name="maillogin" value="<?= set_value('maillogin'); ?>" size="25" /></div>
Aquí estamos creando un campo de texto llamado "maillogin". La sentencia "set_value" nos sirve para recordar los datos rellenados por el usuario en caso que su acceso no sea válido y tengamos que volver a presentarle la pantalla de acceso. Es un valor agregado para dar mejor usabilidad a los usuarios.

Luego pasemos al controlador "php.php". Esta es la parte más compleja del script, por tal motivo intenté poner comentarios a cada una de las y facilitar así su comprensión. Te recomiendo leer los comentarios directo en el código.

El controlador (php.php) hace lo que hace es tomar los datos provenientes del formulario, hacer las validaciones, consultar al modelo (usuarios_model.php) si el usuario existe en la base de datos y su password es válida. Por último, decide si el usuario corresponde que pueda acceder, o no, y comunica su decisión a la vista (login.php) para que el usuario vea la respuesta en su pantalla.

Me interesa remarcar aquí algunas sentencias y declaraciones puntuales que son muy básicas de php y te servirán en todo sistema web que desarrolles.

Código PHP:
$_POST['maillogin'
(sirve para tomar los valores provenientes del formulario, en este caso se toma el valor del campo "maillogin")

Código PHP:
$this->load->model('usuarios_model'); (sirve para cargar el modelo usuarios_model y poder utilizar sus recursos)           this->usuarios_model->ValidarUsuario($_POST['maillogin'],$_POST['passwordlogin']); 
(ejecuta el método "ValidarUsuario" de nuestro modelo "usuarios_model" y le pasa los dos parámetros. )

Espero que lo disfruten. La idea es agregarle funcionalidades al script en futuros aportes.

Por favor, envíen sus consultas y dudas a través de los comentarios y lo revisamos juntos

Saludos!

Última edición por GatorV; 14/02/2011 a las 10:51
  #2 (permalink)  
Antiguo 14/02/2011, 10:28
Avatar de jonasanx  
Fecha de Ingreso: enero-2011
Ubicación: La Via Lactea, Mexico, Mexico, Mexico
Mensajes: 134
Antigüedad: 13 años, 3 meses
Puntos: 4
Respuesta: [APORTE] ¿Cómo hacer un login de usuarios en Php y CodeIgniter? Ver script

¡Oh! bastante interesante. Voy a juguetear un poco con el, haber que aprendo.
Solo una sugerencia o inconformidad, como guste interpretarlo.

Creo que los comentarios estarían mejor en la parte superior de la sentencia o mejor aun, explicar las funciones generales de la clase... en la parte superior de la clase. Usted sabe, no todos tenemos pantallas gigantes, ademas de que esta científicamente comprobado que el movimiento ocular en vertical desgasta menos que en horizontal. ;D
  #3 (permalink)  
Antiguo 14/02/2011, 10:44
Avatar de CodeIgniter  
Fecha de Ingreso: enero-2011
Ubicación: $this->load->view('Rafaela', 'Argentina')
Mensajes: 44
Antigüedad: 13 años, 3 meses
Puntos: 14
Respuesta: [APORTE] ¿Cómo hacer un login de usuarios en Php y CodeIgniter? Ver script

Muy buen dato Jona. Yo lo trabajo así porque me parece que el código queda más compacto, elegante y comprensible...

Pero si los demás usuarios también consideran que sería conveniente poner el comentario por arriba de las sentencias, ya mismo me pongo a trabajar para corregirlo

En cuanto al script, por ahora únicamente permite el login. Pero la idea es agregarle funcionalidad en las próximas semanas, por ejemplo reconocer al usuario durante toda su estadía en nuestro sitio, registro de usuarios, etc....

¿Tu Jona eres iniciante o ya tienes experiencia con CodeIgniter? Cualquiera sea tu respuesta, me sirvirá mucho que me digas si el scritp sea encuentra bien explicado o faltaría profundizar algunos puntos.

Un saludo.
  #4 (permalink)  
Antiguo 14/02/2011, 10:44
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Tema movido desde PHP a Frameworks y PHP orientado a objetos
  #5 (permalink)  
Antiguo 14/02/2011, 10:59
Avatar de jonasanx  
Fecha de Ingreso: enero-2011
Ubicación: La Via Lactea, Mexico, Mexico, Mexico
Mensajes: 134
Antigüedad: 13 años, 3 meses
Puntos: 4
Respuesta: [APORTE] ¿Cómo hacer un login de usuarios en Php y CodeIgniter? Ver script

Si... se que muchos comentan su código de esa forma, y seguramente la mayoría lo prefieren así. Pero hay quienes no tienen tan buena vista, sin dar tantos rodeos, como yo...
En fin, de cualquier forma ya lo acomode a mi gusto. :D

Cita:
Iniciado por CodeIgniter Ver Mensaje
¿Tu Jona eres iniciante o ya tienes experiencia con CodeIgniter? Cualquiera sea tu respuesta, me sirvirá mucho que me digas si el scritp sea encuentra bien explicado o faltaría profundizar algunos puntos.
.
Solo se de su existencia, no he tenido la oportunidad de trabajar con este framework (aunque me has motivado a empezar). En el que si tengo experiencia es en cakePHP.

Con respecto al contenido de los comentarios, creo que esta suficientemente bien. Entendible.

Última edición por jonasanx; 14/02/2011 a las 11:05
  #6 (permalink)  
Antiguo 22/02/2011, 10:36
Avatar de CodeIgniter  
Fecha de Ingreso: enero-2011
Ubicación: $this->load->view('Rafaela', 'Argentina')
Mensajes: 44
Antigüedad: 13 años, 3 meses
Puntos: 14
Respuesta: [APORTE] ¿Cómo hacer un login de usuarios en Php y CodeIgniter? Ver script

Buenas...

¿Alguíen intentó ejecutar el scritp de login?
¿Se les presentó algún fatal error? No se preocupen, ensayo y error es la única manera de aprender

Si alguien necesita ayuda adicional para el script en su sitio, por favor escriban y lo revisamos juntos.

Saludos.-
  #7 (permalink)  
Antiguo 25/02/2011, 10:23
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 17 años, 4 meses
Puntos: 3
De acuerdo Respuesta: [APORTE] ¿Cómo hacer un login de usuarios en Php y CodeIgniter? Ver script

Excelente aporte, me funcionó pero con unas leves modificaciones, para ello vuelvo a publicar todos tu códigos ya con los comentarios en la parte superior.

Este post lo encontré porque desde hace ratos quiero saber cómo crear una web que soporte multiidiomas con el CI llevo ratos pero no encontré cómo, iba a publicar un post para ello, porque nada más encuentro explicaciones y no un ejemplo que funcione, sería bueno que alguien nos hiciera el favor a ver si le pueda agregar esa funcionalidad en el login, de aquí surge mi observación para el script presentado, resulta que si estoy viendo el login en español, cuando doy clic en Ingresar, los mensajes de error deberían ir en español, lo mismo para el inglés: si el login se encuentra en inglés, los mensajes de error en inglés. Esto como una mejora a incorporar al script

Aclaro que estoy empezando con CI y tratando de enteder el MVC, es una de esas leí que según este modelo, en el controlador tienes un echo, cosa que no deberías puesto que todas las salidas (echo) deben ser única y exclusivamente para las vistas, de lo contrario no estarías deacuerdo a la filosofía del MVC, razón por la cual he creado una vista llamada principal.php donde cae el usuario en caso de ingresar con éxito. Por cierto tu vista me generaba caracteres raros así que ya cambié los código html correspondientes.

Por favor vean el código de la vista principal.php será importante para mejorar el script.

Controlador php.php:

Código PHP:
Ver original
  1. <?PHP
  2. class Php extends CI_Controller {
  3.     function login()
  4.     {
  5.         $this->load->helper('form');
  6.         //Si no recibimos ningún valor proveniente del formulario, significa que el usuario recién ingresa:
  7.         if(!isset($_POST['maillogin'])){
  8.             //Por lo tanto le presentamos la pantalla del formulario de ingreso:        
  9.             $this->load->view('login');        
  10.         }
  11.         else{//Si el usuario ya pasó por la pantalla inicial y presionó el botón "Ingresar"
  12.            
  13.             //Configuramos las validaciones ayudandonos con la librería form_validation del Framework Codeigniter
  14.             $this->form_validation->set_rules('maillogin','e-mail','required|valid_email');        
  15.             $this->form_validation->set_rules('passwordlogin','password','required');
  16.            
  17.             //Verificamos si el usuario superó la validación
  18.             if(($this->form_validation->run()==FALSE)){
  19.                 //En caso que no, volvemos a presentar la pantalla de login
  20.                 $this->load->view('login');
  21.             }
  22.             else{//Si ambos campos fueron correctamente rellanados por el usuario,
  23.                 $this->load->model('usuarios_model');
  24.                
  25.                 //Comprobamos que el usuario exista en la base de datos y la password ingresada sea correcta
  26.                 $ExisteUsuarioyPassoword=$this->usuarios_model->ValidarUsuario($_POST['maillogin'],$_POST['passwordlogin']);
  27.                
  28.                 //La variable $ExisteUsuarioyPassoword recibe valor TRUE si el usuario existe y FALSE en caso que no. Este valor lo determina el modelo.
  29.                 if($ExisteUsuarioyPassoword){
  30.                     /*Si el usuario ingresó datos de acceso válido,
  31.                       Muestro la vista principal de lo que sería mi aplicación,
  32.                       enviándole como dato el usuario
  33.                     */
  34.                     $data['usuario']=$_POST['maillogin'];
  35.                     //Lo regresamos a la pantalla de login y pasamos como parámetro el mensaje de error a presentar en pantalla
  36.                     $this->load->view('principal',$data);  
  37.                 }
  38.                 else{//Si no logró validar
  39.                     $data['error']="E-mail o password incorrecta, por favor vuelva a intentar";
  40.                     //Lo regresamos a la pantalla de login y pasamos como parámetro el mensaje de error a presentar en pantalla
  41.                     $this->load->view('login',$data);
  42.                 }
  43.             }
  44.         }
  45.     }
  46. }
  47. ?>

Vista: loging.php:

Código PHP:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <title>Blogdephp.com, &iquest;c&oacute;mo hacer un login de usuarios en php? Ver script y demo!</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  6. <link rel="stylesheet" href="http://www.blogdephp.com/script/php-login.css" type="text/css" media="screen">
  7. <!--<link rel="stylesheet" href="../../php-login.css" type="text/css" media="screen">-->
  8. </head>
  9.  
  10. <body style="margin-top:0px">
  11. <?php echo form_open('php/login'); ?>
  12. <div class="Info">
  13.     <p class="Titulo">Demo: &iquest;c&oacute;mo hacer un login de usuarios en php?</p>
  14.     <p>&nbsp;</p>    
  15. </div>
  16. <div id="LoginUsuarios">
  17.     <div class="fila">
  18.         <div class="LoginUsuariosCabecera">E-mail:</div>
  19.         <div class="LoginUsuariosDato"><input type="text" name="maillogin" value="<?PHP set_value('maillogin'); ?>" size="25" /></div>
  20.         <div class="LoginUsuariosError">
  21.         <?PHP
  22.         if(isset($error)){
  23.             echo "<p>".$error."</p>";
  24.         }
  25.         echo form_error('maillogin');
  26.         ?>
  27.         </div>
  28.     </div>        
  29.     <div class="fila">
  30.         <div class="LoginUsuariosCabecera">Contrase&ntilde;a:</div>
  31.         <div class="LoginUsuariosDato"><input type="password" name="passwordlogin" value="<?PHP set_value('passwordlogin'); ?>" size="25" /></div>
  32.         <div class="LoginUsuariosError"><?PHP form_error('passwordlogin');?></div>
  33.     </div>
  34.     <div class="fila">
  35.         <div class="LoginUsuariosCabecera"></div>
  36.         <div class="LoginUsuariosDato"></div>
  37.     </div>        
  38.     <div class="fila">
  39.         <div class="LoginUsuariosCabecera"><input type="submit" value="Ingresar"></div>
  40.         <div class="LoginUsuariosDato"></div>
  41.     </div>        
  42. </div>
  43. <p>&nbsp;</p>    
  44. <p>&nbsp;</p>    
  45. </form>
  46. <div class="Info">
  47.     <p><strong><u>Datos de acceso</u></strong> (correspondiente a un usuario ya ingresado en la base de datos)</p>
  48.     <p><strong>e-mail</strong>: [email protected]</p>
  49.     <p><strong>password</strong>: blogdephp</strong></p>
  50. </div>
  51. <p>&nbsp;</p>    
  52. <p>&nbsp;</p>    
  53. <div class="Info">
  54.     <p><strong><u>Requerimientos</u></strong></p>
  55.     <p>Para poder implementar este script de login, se requiere el framework de php "Codeigniter"</p>
  56.     <p>(esta maravillosa herramienta nos ayuda a ahorrar mucho tiempo y esfuerzo en nuestros trabajos de programación php).</p>
  57.     <p>&nbsp;</p>
  58. </div>
  59. <div class="Info">
  60. </div>
  61. </body>
  62. </html>

Modelo: usuarios_model.php

Código PHP:
Ver original
  1. <?php
  2. class Usuarios_model extends CI_Model{
  3.     //Consulta Mysql para buscar en la tabla Usuario aquellos usuarios que coincidan con el mail y password ingresados en pantalla de login
  4.     function ValidarUsuario($email,$password){
  5.         //La consulta se efectúa mediante Active Record. Una manera alternativa, y en lenguaje más sencillo, de generar las consultas Sql.
  6.         $query = $this->db->where('Usuario',$email);
  7.         $query = $this->db->where('Password',$password);
  8.         $query = $this->db->get('Usuarios');
  9.        
  10.         //Devolvemos al controlador la fila que coincide con la búsqueda. (FALSE en caso que no existir coincidencias)
  11.         return $query->row();
  12.     }
  13. }
  14. ?>

Vista: principal.php
Código PHP:
Ver original
  1. <?PHP
  2. /*De momendo solamente sería mostrar el mensaje
  3. Aunque como toda Web seria de hoy en día, lo ideal sería verificar también
  4. que tipo de usuario es, ya sea un administrador o un usuario normal y de ahí
  5. la información que verá cada, si alguien lo puede continuar y lo publica
  6. se agradecería para ver que otras funcionaliadades le podemos dar.
  7. */
  8. echo "Bienvenido a mi aplicaci&oacute;n ".$usuario;
  9. ?>

De primas a primera me mandó error porque no reconocía "form_validation" la razón es porque no se cargaba la libreria (form_validation) , así que lo único que deben de hacer es agregar la librería necesaria al autoload.php en el directorio 'application/config' como sigue:

Código PHP:
Ver original
  1. $autoload['libraries'] = array('database','form_validation');

Por alguna razón tampoco me funcionó el <?= así que por eso ocupo el <?PHP echo...

Última edición por nh2006; 25/02/2011 a las 11:08
  #8 (permalink)  
Antiguo 26/02/2011, 19:21
Avatar de CodeIgniter  
Fecha de Ingreso: enero-2011
Ubicación: $this->load->view('Rafaela', 'Argentina')
Mensajes: 44
Antigüedad: 13 años, 3 meses
Puntos: 14
De acuerdo Respuesta: [APORTE] ¿Cómo hacer un login de usuarios en Php y CodeIgniter? Ver script

Hola Armando,

Excelente tu aporte también
Muchas gracias por tomarte un tiempo y postear tus correcciones, consultas y propuestas de mejoras !

Completamente de acuerdo sobre tu corrección de NO poner "echo" en el controlador en lugar de la vista (respetando la filosofía de MVC). Y también la auto-carga de la librería de validaciones, olvidé mencionarlo en el post.

Tomaré en consideración tus correciones para la próxima actualización del scritp donde le agregaré mayor cantidad de funcionalidad. Y por supuesto, haré una mención de ti (como autor de las mismas)

Referido al tema multiidioma, CodeIgniter trabaja esta característica mediante archivos de lenguaje. En la carpeta "/system/language/" debes crear una carpeta "spanish" y copiar allí todos los archivos de la carpeta "english". Por último, abrir el archivo "/system/language/spanish/form_validation_lang.php" y traducir los mensajes de error que a vos te interesen.

CI por defecto funciona en idioma Ingles. Pero puedes setearlo en español desde el archivo /application/config/config.php:
Código PHP:
$config['language'] = 'spanish'
Esa es la configuración estática y sirve para sitios de un único idioma. Pero CI permite hacer dinámicamente esta misma configuración (en tiempo de ejecución) , mediante la siguiente directiva:

Código PHP:
$this->config->set_item('language''spanish'); 
Finalmente, para presentar mensajes de error en el login (personalizados al idioma del usuario) yo haría lo siguiente al inicio del controlador:

Código PHP:
        if($_SESSION['idioma']=="english"){
            
$this->config->set_item('language''english');
        }
        elseif (
$_SESSION['idioma']=="spanish"){
            
$this->config->set_item('language''spanish');        
        } 
Nota: Suponiendo que en la variable de Session "idioma" tenemos almacenado el idioma seleccionado por el usuario.

Por favor, confirmame si este ejemplo logra resolver tu inquietud.

Espero tu respuesta y nuevamente gracias por el aporte!
  #9 (permalink)  
Antiguo 28/02/2011, 10:44
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 17 años, 4 meses
Puntos: 3
Respuesta: [APORTE] ¿Cómo hacer un login de usuarios en Php y CodeIgniter? Ver script

Pues muchas gracias por considerarme dentro de este valioso aporte para los que estamos iniciando en el CI.

Al respecto a lo que propones sobre los multiidiomas lo que quiero es que sea dinámico, he captado tu idea mas no puedo implementarla.

De hecho he creado una aplicación español-inglés con el PHP puro, utilizando sesiones tal cual mencionas, el problema es que el CI no te reconoce la $_SESSION y es poirque tiene su propia clase para la manipulación de las mismas pero me topé con otro problema y resulta que según la documentación del mismo, los valores de las sesiones con el CI no se guardan en el servidor sino en cookies y esa forma no me agrada mucho, creo que muchos pensarán igual.

Si alguien tiene alguna propuesta se le agradecerá.

Mi idea por el momento es tratar de implementar la opción de multiidiomas en el login que ya has comenzado a desarrollar.

Pensaba pasarle el idioma al login como parámetro en el controlador de la siguiente manera

Código PHP:
Ver original
  1. function login($idioma=null)
  2.     {
  3.         $this->load->helper('form');
  4.         //selccionar el idioma:
  5.         if (is_null($idioma)){
  6.            $this->config->set_item('language', 'english');//idioma por defecto
  7.         }
  8.         elseif($idioma=="en"){//cargar inglés
  9.             $this->config->set_item('language', 'english');
  10.         }
  11.         elseif ($idioma=="es"){//cargar español
  12.             $this->config->set_item('language', 'spanish');        
  13.         }
  14.        //El resto del código*********************

Trato de invocarlo así:

codeIgniter/index.php/php/login/es


Pero cuando le doy ingresar para ver los mensajes continúan en inglés y la barra de direcciones carga así:

codeIgniter/index.php/php/login/

Sin el argumento "es"

Saludos

Última edición por nh2006; 28/02/2011 a las 11:55
  #10 (permalink)  
Antiguo 01/03/2011, 08:58
Avatar de CodeIgniter  
Fecha de Ingreso: enero-2011
Ubicación: $this->load->view('Rafaela', 'Argentina')
Mensajes: 44
Antigüedad: 13 años, 3 meses
Puntos: 14
De acuerdo Respuesta: [APORTE] ¿Cómo hacer un login de usuarios en Php y CodeIgniter? Ver script

Hola Armando, muchas gracias por tu aporte al crecimiento del script mediante la funcionalidad multi-idiomas
Nota que ya le he implementado en la demo on-line del script y funciona bien !

El inconveniente era que el parámetro "es" tiene una alcance local (sólo utilizable en la 1er pantalla). Luego de presionar "submit", ya perdiamos su valor y por tal motivo no se visualizaba en la barra de direcciones del navegador.

La solución que apliqué fue asegurarme de transmitir el parámetro "idioma" en las sucesivas llamadas al formulario.

Serían 3 pasos,
  1. En el controlador (php.php) hacer lo siguiente:
    Código PHP:
    $data['idioma']=$idioma;    // guardar el parámetro "idioma" en el array "data" que luego será transmitido a la vista 

  2. Código PHP:
    $this->load->view('login',$data); // cada vez que llama la vista, asegurarnos de transmitirle el parámetro "data", allí tenemos en otros valores la variable $idioma. Prestar atención porque este paso hay que aplicarlo 3 veces, en cada llamada a la vista $this->load->view('login ... 
  3. En la vista (login.php):
    Código PHP:
    echo form_open('php/login/'.$idioma); // en la definición del formulario, enviar un parámetro cuyo valor será el contenido de la variable $idioma proveniente del controlador 

Por favor, comentame que tal te ha ido con este ajuste.
Saludos.
  #11 (permalink)  
Antiguo 01/03/2011, 09:15
Avatar de CodeIgniter  
Fecha de Ingreso: enero-2011
Ubicación: $this->load->view('Rafaela', 'Argentina')
Mensajes: 44
Antigüedad: 13 años, 3 meses
Puntos: 14
Sonrisa Respuesta: [APORTE] ¿Cómo hacer un login de usuarios en Php y CodeIgniter? Ver script

Cita:
Iniciado por nh2006 Ver Mensaje
el problema es que el CI no te reconoce la $_SESSION y es poirque tiene su propia clase para la manipulación de las mismas pero me topé con otro problema y resulta que según la documentación del mismo, los valores de las sesiones con el CI no se guardan en el servidor sino en cookies y esa forma no me agrada mucho, creo que muchos pensarán igual.
Si, el manejo de SESSIONES a mi también me gusta trabajarlo mediante sentencias nativas de php (y no utilizar los recursos que el framework ofrece para este punto).

Te comento como lo trabajo yo pero posiblemente halla otra manera más conveniente.

Al inicio del archivo index.php (ubicado en el directorio raíz de CodeIgniter) inicializo las sessiones:

Código PHP:
session_start(); 
Y luego desde cualquier controlador puedo trabajarlas normalmente, por ejemplo:

Código PHP:
$_SESSION['idioma']='es'// escritura en variable de SESSION
echo $_SESSION['idioma']; // lectura de variable de SESSION 
Lo interesante de las SESSIONES es que podemos tomar su valor desde cualquier lugar donde nos encontremos (alcance global) y no necesitamos transmitir el valor tal como haciamos en el post anterior (nuestro código quedaría más sencillo y compacto).

Espero te sirva de ayuda, saludos!
  #12 (permalink)  
Antiguo 01/03/2011, 11:39
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 17 años, 4 meses
Puntos: 3
Respuesta: [APORTE] ¿Cómo hacer un login de usuarios en Php y CodeIgniter? Ver script

Nuevamente muchas gracias por tus valiosos aportes, en especial por el de las sesiones, ya tengo implementado el multiidiomas en el formulario web (solamente me faltó ponerle banderitas). dejo el código para una mejora.

Primero, en la ruta system/language/english crear el archivo english_lang.php y su contenido es:

Código PHP:
Ver original
  1. <?php
  2.    $lang['email'] = "E-mail:";
  3.    $lang['password'] = "Password:";
  4.    $lang['login'] = "Log in";
  5. ?>

Segundo, en la ruta system/language/spanish crear el archivo spanish_lang.php y su contenido es:

Código PHP:
Ver original
  1. <?php
  2.    $lang['email'] = "Correo electr&oacute;nico:";
  3.    $lang['password'] = "Contrase&ntilde;a";
  4.    $lang['login'] = "Ingresar";
  5. ?>

Publico el código del controlador y la vista nuevamente ya que los modifiqué, los demás archivos están iguales:

Controlador (php.php):
Código PHP:
Ver original
  1. <?PHP
  2. class Php extends CI_Controller {
  3.     function login($idioma=null)
  4.     {
  5.         //cargo el helper de url, con funciones para trabajo con URL del sitio
  6.         $this->load->helper('url');
  7.         //cargo el helper de formulario
  8.         $this->load->helper('form');
  9.         //selccionar el idioma:
  10.         if (is_null($idioma)){
  11.            $this->config->set_item('language', 'english');//idioma por defecto
  12.            $this->lang->load('english','english');
  13.            $idioma="en";
  14.         }
  15.         elseif($idioma=="en"){//cargar inglés
  16.             $this->config->set_item('language', 'english');
  17.             $this->lang->load('english','english');
  18.         }
  19.         elseif ($idioma=="es"){//cargar español
  20.             $this->config->set_item('language', 'spanish');
  21.             $this->lang->load('spanish','spanish');        
  22.         }
  23.         $data['idioma']=$idioma; // guardar el parámetro "idioma" en el array "data" que luego será transmitido a la vista  
  24.                    
  25.        
  26.         //Si no recibimos ningún valor proveniente del formulario, significa que el usuario recién ingresa:
  27.         if(!isset($_POST['maillogin'])){
  28.             //Por lo tanto le presentamos la pantalla del formulario de ingreso:        
  29.             $this->load->view('login',$data);        
  30.         }
  31.         else{//Si el usuario ya pasó por la pantalla inicial y presionó el botón "Ingresar"
  32.            
  33.             //Configuramos las validaciones ayudandonos con la librería form_validation del Framework Codeigniter
  34.             $this->form_validation->set_rules('maillogin','e-mail','required|valid_email');        
  35.             $this->form_validation->set_rules('passwordlogin','password','required');
  36.            
  37.             //Verificamos si el usuario superó la validación
  38.             if(($this->form_validation->run()==FALSE)){
  39.                 //En caso que no, volvemos a presentar la pantalla de login
  40.                 $this->load->view('login',$data);
  41.             }
  42.             else{//Si ambos campos fueron correctamente rellanados por el usuario,
  43.                 $this->load->model('usuarios_model');
  44.                
  45.                 //Comprobamos que el usuario exista en la base de datos y la password ingresada sea correcta
  46.                 $ExisteUsuarioyPassoword=$this->usuarios_model->ValidarUsuario($_POST['maillogin'],$_POST['passwordlogin']);
  47.                
  48.                 //La variable $ExisteUsuarioyPassoword recibe valor TRUE si el usuario existe y FALSE en caso que no. Este valor lo determina el modelo.
  49.                 if($ExisteUsuarioyPassoword){
  50.                     /*Si el usuario ingresó datos de acceso válido,
  51.                       Muestro la vista principal de lo que sería mi aplicación,
  52.                       enviándole como dato el usuario
  53.                     */
  54.                     $data['usuario']=$_POST['maillogin'];
  55.                     //Lo regresamos a la pantalla de login y pasamos como parámetro el mensaje de error a presentar en pantalla
  56.                     $this->load->view('principal',$data);  
  57.                 }
  58.                 else{//Si no logró validar
  59.                     $data['error']="E-mail o password incorrecta, por favor vuelva a intentar";
  60.                     //Lo regresamos a la pantalla de login y pasamos como parámetro el mensaje de error a presentar en pantalla
  61.                     $this->load->view('login',$data);
  62.                 }
  63.             }
  64.         }
  65.     }
  66. }
  67. ?>

En la vista (login.php) tengo:
Código PHP:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <title>Blogdephp.com, &iquest;c&oacute;mo hacer un login de usuarios en php? Ver script y demo!</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  6. <link rel="stylesheet" href="http://www.blogdephp.com/script/php-login.css" type="text/css" media="screen">
  7. <!--<link rel="stylesheet" href="../../php-login.css" type="text/css" media="screen">-->
  8. </head>
  9.  
  10. <body style="margin-top:0px">
  11. <?php echo form_open('php/login/'.$idioma); ?>
  12. <div class="Info">
  13.     <p class="Titulo">Demo: &iquest;c&oacute;mo hacer un login de usuarios en php?</p>
  14.     <p>&nbsp;</p>    
  15. </div>
  16. <div id="LoginUsuarios">
  17.     <a href="<?php echo site_url("/php/login/es");?>">Espa&ntilde;ol</a>
  18.     <a href="<?php echo site_url("/php/login/en");?>">English</a>
  19.     <div class="fila">
  20.         <div class="LoginUsuariosCabecera"><?php echo $this->lang->line('email'); ?></div>
  21.         <div class="LoginUsuariosDato"><input type="text" name="maillogin" value="<?PHP set_value('maillogin'); ?>" size="25" /></div>
  22.         <div class="LoginUsuariosError">
  23.         <?PHP
  24.         if(isset($error)){
  25.             echo "<p>".$error."</p>";
  26.         }
  27.         echo form_error('maillogin');
  28.         ?>
  29.         </div>
  30.     </div>        
  31.     <div class="fila">
  32.         <!--<div class="LoginUsuariosCabecera">Contrase&ntilde;a:</div>-->
  33.         <div class="LoginUsuariosCabecera"><?php echo $this->lang->line('password'); ?></div>
  34.         <div class="LoginUsuariosDato"><input type="password" name="passwordlogin" value="<?PHP set_value('passwordlogin'); ?>" size="25" /></div>
  35.         <div class="LoginUsuariosError"><?PHP form_error('passwordlogin');?></div>
  36.     </div>
  37.     <div class="fila">
  38.         <div class="LoginUsuariosCabecera"></div>
  39.         <div class="LoginUsuariosDato"></div>
  40.     </div>        
  41.     <div class="fila">
  42.         <div class="LoginUsuariosCabecera"><input type="submit" value="<?php echo $this->lang->line('login'); ?>"></div>
  43.         <div class="LoginUsuariosDato"></div>
  44.     </div>        
  45. </div>
  46. <p>&nbsp;</p>    
  47. <p>&nbsp;</p>    
  48. </form>
  49. <div class="Info">
  50.     <p><strong><u>Datos de acceso</u></strong> (correspondiente a un usuario ya ingresado en la base de datos)</p>
  51.     <p><strong>e-mail</strong>: [email protected]</p>
  52.     <p><strong>password</strong>: blogdephp</strong></p>
  53. </div>
  54. <p>&nbsp;</p>    
  55. <p>&nbsp;</p>    
  56. <div class="Info">
  57.     <p><strong><u>Requerimientos</u></strong></p>
  58.     <p>Para poder implementar este script de login, se requiere el framework de php "Codeigniter"</p>
  59.     <p>(esta maravillosa herramienta nos ayuda a ahorrar mucho tiempo y esfuerzo en nuestros trabajos de programación php).</p>
  60.     <p>&nbsp;</p>
  61. </div>
  62. <div class="Info">
  63. </div>
  64. </body>
  65. </html>

Como dije, en la vista solo me faltaron las banderitas XD.

CodeIgniter, vi tu respuesta sobre cómo trabajar con sesiones cuando recién terminaba las modificaciones según tus indicaciones, ¿qué opinas de trabajrlo así? ¿siempre quedaría mejor con sesiones?.

Nuevamente muchas gracias
  #13 (permalink)  
Antiguo 07/03/2011, 10:21
Avatar de CodeIgniter  
Fecha de Ingreso: enero-2011
Ubicación: $this->load->view('Rafaela', 'Argentina')
Mensajes: 44
Antigüedad: 13 años, 3 meses
Puntos: 14
De acuerdo Respuesta: [APORTE] ¿Cómo hacer un login de usuarios en Php y CodeIgniter? Ver script

Gracias por las mejoras Armando

A mi en lo personal me gusta tener almacenado el idioma del usuario en una variable de SESSION. De esta manera puedo consultarlo desde cualquier pantalla del sistema (y sin necesidad de transmitir éste parámetro adicional mediante Post o Url).

Pero considerando q lo nuestro es una mini-aplicación para aprendizaje (sin pantallas adicionales) está perfecto hacerlo como vos propusiste!

Un saludo!
__________________
Ing. Diego Angelini
Director BlogdePHP.com
Programador Web Freelance
  #14 (permalink)  
Antiguo 30/03/2011, 05:15
 
Fecha de Ingreso: marzo-2011
Mensajes: 12
Antigüedad: 13 años, 1 mes
Puntos: 0
Busqueda Respuesta: [APORTE] ¿Cómo hacer un login de usuarios en Php y CodeIgniter? Ver script

Hola,

yo estoy empezando con esto así que soy bastante novatillo.

Lo primero decir que no me funciona, voy a seguir dandole vueltas a ver porque es.

Sólo me pone esto, así que poco me ayuda:

404 Page Not Found

The page you requested was not found.

Pero bueno os comento un par de cosas que no veo claras.

En la linea 52 de la vista, aparece esto:

<p><strong>password</strong>: blogdephp</strong></p>

el </strong> que he puesto en negrita no está de mas?

Y en la linea 48 se cierra un form

</form>

donde se abre?


Edito: No hay manera de que me muestre la página, la dirección que pongo en el navegador es la siguiente, http://localhost/index.php/php, pero me dice que 404 page not found...no se que puede ser, alguna idea?

Última edición por javi43; 30/03/2011 a las 06:07
  #15 (permalink)  
Antiguo 30/03/2011, 13:31
 
Fecha de Ingreso: marzo-2011
Mensajes: 12
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: [APORTE] ¿Cómo hacer un login de usuarios en Php y CodeIgniter? Ver script

Sigo igual...incluso he probado poniendo sólo esto en el controlador y nada de nada:

<?php

class php extends CI_Controller {

function login($idioma=null)
{
$this->load->view('login');
}
}
?>

Nadie me echa un cable?
  #16 (permalink)  
Antiguo 30/03/2011, 13:42
 
Fecha de Ingreso: marzo-2011
Mensajes: 12
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: [APORTE] ¿Cómo hacer un login de usuarios en Php y CodeIgniter? Ver script

Parece que ya me va!

Puede ser porque en el navegador accedía así:

localhost/index.php/php

en vez de así, que es como me funciona:

localhost/index.php/php/login

Ese era mi fallo?
  #17 (permalink)  
Antiguo 20/04/2011, 07:28
Avatar de CodeIgniter  
Fecha de Ingreso: enero-2011
Ubicación: $this->load->view('Rafaela', 'Argentina')
Mensajes: 44
Antigüedad: 13 años, 3 meses
Puntos: 14
De acuerdo Respuesta: [APORTE] ¿Cómo hacer un login de usuarios en Php y CodeIgniter? Ver script

Efectivamente Javi43.

Las url en CodeIgniter trabajan de la siguiente manera:

index.php/[nombre_controlador]/[nombre_método]

En nuestro caso, el controlador se llama "php" y el método se llama "login". Por lo tanto, como tu bien dices, la url para acceder es:

index.php/php/login

Si no es especificas el nombre del método "index.php/php" creo que te carga el método default index(). Si no tienes el método default creado, te arroja error....
__________________
Ing. Diego Angelini
Director BlogdePHP.com
Programador Web Freelance
  #18 (permalink)  
Antiguo 20/04/2011, 08:08
 
Fecha de Ingreso: abril-2009
Mensajes: 162
Antigüedad: 15 años
Puntos: 6
Respuesta: [APORTE] ¿Cómo hacer un login de usuarios en Php y CodeIgniter? Ver script

hola gente, soy un poco principante en esto, pero analizando el codigo no veo las secciones o cookies en el codigo. es que ya existe un nuevo metodo para mantener secciones iniciadas sin session_start();? o las viejas galletas?
__________________
Manual de Javascript
  #19 (permalink)  
Antiguo 20/04/2011, 08:10
 
Fecha de Ingreso: abril-2009
Mensajes: 162
Antigüedad: 15 años
Puntos: 6
Respuesta: [APORTE] ¿Cómo hacer un login de usuarios en Php y CodeIgniter? Ver script

hola, no habia visto el ejemplo, el codigo solo dice si existe o no el user.
__________________
Manual de Javascript
  #20 (permalink)  
Antiguo 16/05/2011, 10:05
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 17 años, 4 meses
Puntos: 3
Respuesta: [APORTE] ¿Cómo hacer un login de usuarios en Php y CodeIgniter? Ver script

Si amigo, al menos a mi no me alcazó para mejorar lo de las sesiones con el session_start(); corríjanme si me equivoco pero hasta la última versión las herramientas del CI para el manejo de sesiones todavía son con cookies de forma interna, y usar eso al menos en lo personal no lo recomiendo, pero lastimosamente no me ha quedado mucho chance de incorporar, si alguien puede y lo publica se le agradecerá.

SAludos

Última edición por nh2006; 18/05/2011 a las 09:12
  #21 (permalink)  
Antiguo 06/06/2011, 11:48
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 17 años, 4 meses
Puntos: 3
Respuesta: [APORTE] ¿Cómo hacer un login de usuarios en Php y CodeIgniter? Ver script

Bueno amigos,

Siguiendo con las mejoras he querido eliminar el index.php y para ellto tengo las siguientes modificaciones:

Un archivo .htacces:
Código HTML:
Ver original
  1. <IfModule mod_rewrite.c>
  2.     RewriteEngine On
  3.     RewriteBase /
  4.  
  5.     #Removes access to the system folder by users.
  6.     #Additionally this will allow you to create a System.php controller,
  7.     #previously this would not have been possible.
  8.     #'system' can be replaced if you have renamed your system folder.
  9.     RewriteCond %{REQUEST_URI} ^system.*
  10.     RewriteRule ^(.*)$ /casos/index.php?/$1 [L]
  11.    
  12.     #When your application folder isn't in the system folder
  13.     #This snippet prevents user access to the application folder
  14.     #Submitted by: Fabdrol
  15.     #Rename 'application' to your applications folder name.
  16.     RewriteCond %{REQUEST_URI} ^application.*
  17.     RewriteRule ^(.*)$ /casos/index.php?/$1 [L]
  18.  
  19.     #Checks to see if the user is attempting to access a valid file,
  20.     #such as an image or css document, if this isn't true it sends the
  21.     #request to index.php
  22.     RewriteCond %{REQUEST_FILENAME} !-f
  23.     RewriteCond %{REQUEST_FILENAME} !-d
  24.     RewriteRule ^(.*)$ /casos/index.php?/$1 [L]
  25. </IfModule>
  26.  
  27. <IfModule !mod_rewrite.c>
  28.     # If we don't have mod_rewrite installed, all 404's
  29.     # can be sent to index.php, and everything works as normal.
  30.     # Submitted by: ElliotHaughin
  31.  
  32.     ErrorDocument 404 /casos/index.php
  33. </IfModule>

y cambiar $config['index_page'] = 'index.php'; por $config['index_page'] = ''; en el archivo config.php, funciona pero me topo con el problema que el controlador no recibe las variables que so enviadas por Post, es decir $_POST['maillogin'] en el controlador no existe, no llega, creo que el problema viene desde el .htacces pero ya no sé qué cambiar.

Si alguien me puede ayudar se lo voy agradecer mucho.
  #22 (permalink)  
Antiguo 02/12/2011, 23:02
Avatar de Celcius  
Fecha de Ingreso: febrero-2003
Ubicación: Lima - Perú
Mensajes: 652
Antigüedad: 21 años, 2 meses
Puntos: 5
Respuesta: [APORTE] ¿Cómo hacer un login de usuarios en Php y CodeIgniter? Ver script

Muy buen Thread!
Felicidades!
__________________
"Si tú conocieras el don de Dios, y quién es el que te dice: 'Dame de beber,' tú Le habrías pedido a El, y El te hubiera dado agua viva.
Sn. Juan 4:19
Jesus
  #23 (permalink)  
Antiguo 07/12/2011, 13:44
Usuario no validado
 
Fecha de Ingreso: septiembre-2007
Ubicación: Cuba
Mensajes: 202
Antigüedad: 16 años, 7 meses
Puntos: 5
Respuesta: [APORTE] ¿Cómo hacer un login de usuarios en Php y CodeIgniter? Ver script

Bien, perfecto todo ... pero me ha surgido una duda. Cómo hago para validar el acceso a otros controladores???? es decir que si me acceden a un controlador llamado articulos (en este se gestionaría los artículos a publicar en un sitio) y no se han logueado como hago para proteger todos los controladores con este sistema?????? Gracias ... espero su pronta respuesta
  #24 (permalink)  
Antiguo 08/12/2011, 15:20
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 5 meses
Puntos: 890
Respuesta: [APORTE] ¿Cómo hacer un login de usuarios en Php y CodeIgniter? Ver script

No quiero ser aguafiestas, pero por que no usan alguna librería de las tantas que hay que ya están listas para usar, la mayoría con un rudimentario manejo ACL y roles tal como lo solicita reyvi.
__________________
Drupal Argentina
  #25 (permalink)  
Antiguo 09/12/2011, 07:14
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: [APORTE] ¿Cómo hacer un login de usuarios en Php y CodeIgniter? Ver script

Cita:
Iniciado por NUCKLEAR Ver Mensaje
No quiero ser aguafiestas, pero por que no usan alguna librería de las tantas que hay que ya están listas para usar, la mayoría con un rudimentario manejo ACL y roles tal como lo solicita reyvi.
NUCKLEAR, ¿tu cual recomiendas de todas esas de la lista? (Una que tenga ACL)
  #26 (permalink)  
Antiguo 09/12/2011, 08:31
Usuario no validado
 
Fecha de Ingreso: septiembre-2007
Ubicación: Cuba
Mensajes: 202
Antigüedad: 16 años, 7 meses
Puntos: 5
Respuesta: [APORTE] ¿Cómo hacer un login de usuarios en Php y CodeIgniter? Ver script

bueno, en realidad la lista es bien amplia pero de esas cuál utilizar????? citen algún ejemplo para valorarlo

Gracias
  #27 (permalink)  
Antiguo 09/12/2011, 09:03
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 5 meses
Puntos: 890
Respuesta: [APORTE] ¿Cómo hacer un login de usuarios en Php y CodeIgniter? Ver script

De la lista no recomiendo ninguna. Aunque en su momento use DXAuth (Hace un par de años) Obviamente no he probado todos....

Estaba haciendo pruebas con Zend ACL según encontré tiene muy buena integracion con CI. Pero como deje de usarlo no seguí.

Desde que conocí a YII mi vida cambio :P
__________________
Drupal Argentina
  #28 (permalink)  
Antiguo 16/12/2011, 13:12
Avatar de anacona16  
Fecha de Ingreso: marzo-2010
Ubicación: Bogota DC
Mensajes: 610
Antigüedad: 14 años, 1 mes
Puntos: 52
Respuesta: [APORTE] ¿Cómo hacer un login de usuarios en Php y CodeIgniter? Ver script

Gracias a CodeIgniter por este aporte, ahora quiero meterme un poco con frameworks, ya saben para hacer menos codigo y hacer mas productivo el desarrollo, he estado leyendo acerca de CI y de Kohana, pero me parecio mejor CI ya que exite mas documentacion.

En fin lo primero que queria saber y aplicar a mi primer proyecto con CI era la autenticacion de usuarios, probe este ejemplo y funciono perfectamente (despues de incluir unas librerias), por ahora no me interesa lo de varios idiomas, mi pregunta es ¿Como hago para que solo los usuarios autenticados puedan ver ciertos controladores? es decir en que parte de los controladores privador pongo la validacion de si ha o no iniciado sesion?

PD, talvez esto ya lo han preguntado pero llegue tarde al tema.

Gracias
__________________
Aprendiendo!!!
  #29 (permalink)  
Antiguo 30/12/2011, 11:41
 
Fecha de Ingreso: julio-2003
Ubicación: Buenos Aires
Mensajes: 96
Antigüedad: 20 años, 9 meses
Puntos: 0
Respuesta: [APORTE] ¿Cómo hacer un login de usuarios en Php y CodeIgniter? Ver script

Muy buen aporte, hace algunos dias estuve viendo este tutorial que habla mas o menos de los mismo; http://net.tutsplus.com/tutorials/ph...h-codeigniter/ ( aparte me ayudo a solucionar un inconveniente que habia tenido para eliminar el "index.php" de las urls, el codigo del manual oficial de codeigniter no me habia resultado del todo ).
  #30 (permalink)  
Antiguo 30/12/2011, 12:39
Avatar de ocesitaro  
Fecha de Ingreso: diciembre-2011
Ubicación: Carabayllo
Mensajes: 274
Antigüedad: 12 años, 4 meses
Puntos: 36
Respuesta: [APORTE] ¿Cómo hacer un login de usuarios en Php y CodeIgniter? Ver script

en mi poca experencia con CI 1 semana no se si estaria bien si hago esto para las sesiones nativas del php
private function logeado(){
$verificando;
if(isset($_SESSION['activo'])){
if($_SESSION['tipo']=="usuario"){
$verificando=true;
}
else{
$verificando=false;
$this->load->view('usuario/error');
}
}else{
redirect('/login');
}
return $verificando;
}
creo un metodo privado y luego en uno publico lo llamo
function subir(){
if($this->logeado()==true){
$this->load->view('usuario/subir_archivos');
}
function otro(){
if($this->logeado()==true){
$this->load->view('usuario/otra_cosa);
}
cosa que si no esta logeado me envia a logearme
}

Etiquetas: demo, login, php, usuarios, ver, aportes
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:10.