Breaking

Post Top Ad

Your Ad Spot

domingo, 10 de marzo de 2019

Registro de usuario y sistema de inicio de sesión en CodeIgniter

El sistema de inicio de sesión del usuario es la característica más requerida en el marco de CodeIgniter. CodeIgniter proporciona muchas bibliotecas y ayudantes integrados para implementar el sistema de autenticación de usuarios. Podemos implementar fácilmente el registro de usuario y el sistema de inicio de sesión con la sesión en CodeIgniter . En este tutorial, proporcionaremos una guía paso a paso para crear un sistema de inicio de sesión en CodeIgniter con sesión y base de datos MySQL.
Suponemos que ya ha conocido el proceso de configuración del marco CodeIgniter. Si no está familiarizado con CodeIgniter, le sugerimos consultar primero esta guía para principiantes de CodeIgniter: Guía para principiantes de CodeIgniter: configuración y configuración
Las siguientes funcionalidades se implementarán en nuestro ejemplo de secuencia de comandos del sistema de inicio de sesión de CodeIgniter.
  • La página de registro del usuario para enviar los detalles del usuario e insertarla en la base de datos MySQL.
  • La página de inicio de sesión del usuario para iniciar sesión.
  • Inicio de sesión y validación del formulario de registro.
  • Verificación de correo electrónico existente durante el registro.
  • Almacenar la identificación de usuario en sesión iniciada.
  • Mostrar detalles de la cuenta de usuario después de iniciar sesión.
  • Cierre la sesión del usuario de su cuenta.
Antes de comenzar a implementar el registro de usuarios y el sistema de inicio de sesión en CodeIgniter, eche un vistazo a la estructura de carpetas y archivos.
codificador-usuario -login-sistema-archivos-carpetas-estructura-codexworld

Creación de tablas de base de datos

Para almacenar la información de la cuenta de usuario, se requiere una tabla en la base de datos. El siguiente SQL crea una userstabla en la base de datos MySQL con algunos campos básicos obligatorios.
CREAR  TABLA ` usuarios ` (
  `id`  int ( 11 ) NOT NULL AUTO_INCREMENT,
  ` name`  varchar ( 100 ) compilar utf8_unicode_ci NOT NULL ,
  `email`  varchar ( 100 ) compilar utf8_unicode_ci NOT NULL ,
  ` password`  varchar ( 255 ) compilar utf8_unicode_ci NOT NULL ,
  `gender` enum ( 'Male' , 'Female' ) COLLATE utf8_unicode_ci NOT NULL ,
  ` phone` varchar ( 15 ) COLLATE utf8_unicode_ci NOT NULL ,
  `created` datetime NOT NULL ,
  ` modified` datetime NOT NULL ,
  `status` enum ( '1' , '0' ) COLLATE utf8_unicode_ci NOT NULL ,
  PRIMARY KEY ( ` id` )
) MOTOR = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci;

Config (autoload.php)

En esta secuencia de comandos del sistema de inicio de sesión de CodeIgniter, se utilizan algunas bibliotecas de sistema integradas y ayudantes. Entonces, abre el application/config/autoload.phparchivo y carga esas bibliotecas y ayudantes.
$ autoload [ ' library ' ] = array ( 'session' , 'database' ); $ autoload [ 'helper' ] = array ( 'url' , 'form' );

Controlador (Users.php)

El controlador de Usuarios maneja todos los trabajos relacionados con el inicio de sesión del usuario. Las funciones utilizadas y su funcionalidad se dan a continuación. 
__construct()- Se carga la biblioteca de validación de formularios y el modelo de usuario. 
account()- Muestra los detalles de la cuenta de usuario después de iniciar sesión. 
login()- Muestra el formulario de inicio de sesión e inicia sesión en la cuenta de usuario si se proporcionan credenciales válidas. 
registration()- Muestra el formulario de registro de usuario e inserta la información de la cuenta de usuario en la base de datos una vez que se envía. 
logout()- Cerrar sesión de usuarios desde su cuenta. 
email_check()- Comprueba si un correo dado ya existe en la base de datos. 
Biblioteca de formularios de validación incorporado en CodeIgniter se utiliza en login()registration()para asegurar que el usuario envía todos los campos obligatorios.
<? php  if (!  defined ( 'BASEPATH' )) exit ( 'No se permite el acceso directo al script' ); / ** 
 * La clase de gestión de usuarios creada por CodexWorld 
 * / class  Los usuarios  amplían  CI_Controller  { 
    
    function  __construct () { 
        parent :: __construct (); 
        $ this -> load -> library ( 'form_validation' ); 
        $ this -> load -> model ( 'usuario' ); 
    } 
    
    / *
     * Información de cuenta de usuario 
     * / 
    cuenta de función pública  () { $ data  = array ();         if ( $ this -> session -> userdata ( 'isUserLoggedIn' )) { $ data [ 'user' ] =  $ this -> user -> getRows (array ( 'id' => $ this -> session -> userdata ( 'userId' ))); // cargar la vista $ esto -> cargar -> ver ( 'usuarios / cuenta'
        

            
            
            $ datos ); 
        } else { 
            redirect ( 'users / login' ); 
        } 
    } 
    
    / * 
     * Inicio de sesión de usuario 
     * / 
    inicio de sesión de función pública  () { $ data  = array ();         if ( $ this -> session -> userdata ( 'success_msg' )) { $ data [ 'success_msg' ] =  $ this -> session -> userdata ( 'success_msg' ); $ esto -> sesión -> unset_userdata (
        

            
            'success_msg' ); 
        } 
        if ( $ this -> session -> userdata ( 'error_msg' )) { 
            $ data [ 'error_msg' ] =  $ this -> session -> userdata ( 'error_msg' ); 
            $ this -> session -> unset_userdata ( 'error_msg' ); 
        } 
        if ( $ this -> input -> post ( 'loginSubmit' )) { 
            $ this ->set_rules ( 'email' 'Email' 'required | valid_email' ); 
            $ this -> form_validation -> set_rules ( 'password' 'password' 'required' ); 
            if ( $ this -> form_validation -> run () ==  true ) { 
                $ con [ 'returnType' ] =  'single' ; 
                $ con [ 'conditions' ] = array ( 
                    'email' => $ this ->( 'email' ), 
                    'password'  =>  md5 ( $ this -> input -> post ( 'password' )), 
                    'status'  =>  '1' 
                ); 
                $ checkLogin  $ this -> usuario -> getRows ( $ con ); 
                if ( $ checkLogin ) { 
                    $ this -> session -> set_userdata ( 'isUserLoggedIn' , TRUE ); 
                    $ esto -> sesión ->'userId' , $ checkLogin [ 'id' ]); 
                    redirigir ( 'usuarios / cuenta /' ); 
                } else { 
                    $ data [ 'error_msg' ] =  'Correo electrónico o contraseña incorrectos, inténtalo de nuevo.' ; 
                } 
            } 
        } 
        // carga la vista 
        $ this -> load -> view ( 'users / login' $ data ); 
    } 
    
    / * 
     * Registro de usuario 
     * / 
    registro de función pública  () { $ data  = array ();
        
        $ userData  = array (); 
        if ( $ this -> input -> post ( 'regisSubmit' )) { 
            $ this -> form_validation -> set_rules ( 'name' 'Name' 'required' ); 
            $ this -> form_validation -> set_rules ( 'email' 'Email' 'required | valid_email | callback_email_check' ); 
            $ this -> form_validation -> set_rules ( 'password' 'requerido' ); 
            $ this -> form_validation -> set_rules ( 'conf_password' 'confirmar contraseña' 'requerido | coincide con [contraseña]' ); 

            $ userData  = array ( 
                'name'  =>  strip_tags ( $ this -> input -> post ( 'name' )), 
                'email'  =>  strip_tags ( $ this -> input -> post ( 'email' )), 
                ' contraseña '  => -> input -> post ( 'password' )), 
                'gender'  =>  $ this -> input -> post ( 'gender' ), 
                'phone'  =>  strip_tags ( $ this -> input -> post ( 'phone ' )) 
            ); 

            if ( $ this -> form_validation -> run () ==  true ) { 
                $ insert  $ this -> user ->); 
                if ( $ insert ) { 
                    $ this -> session -> set_userdata ( 'success_msg' 'Su registro fue exitoso. Inicie sesión en su cuenta.' ); 
                    redirigir ( 'usuarios / inicio de sesión' ); 
                } else { 
                    $ data [ 'error_msg' ] =  'Ocurrieron algunos problemas, por favor intente nuevamente.' ; 
                } 
            } 
        } 
        $ data [ 'usuario' ] =  $ userData ; 
        // cargar la vista 
        $ esto -> cargar ->vista ( 'usuarios / registro' $ datos ); 
    } 
    
    / * 
     * Logout del usuario 
     * / 
    public function  logout () { 
        $ this -> session -> unset_userdata ( 'isUserLoggedIn' ); 
        $ this -> session -> unset_userdata ( 'userId' ); 
        $ this -> session -> sess_destroy (); 
        redirigir ( 'users / login /' ); 
    } 
    
    / * 
     * Verificación de correo electrónico existente durante la validación 
     * /
    función pública  email_check ( $ str ) { 
        $ con [ 'returnType' ] =  'count' ; 
        $ con [ 'conditions' ] = array ( 'email' => $ str ); 
        $ checkEmail  $ this -> usuario -> getRows ( $ con ); 
        if ( $ checkEmail  0 ) { 
            $ this -> form_validation -> set_message ( 'email_check' 'El correo electrónico dado ya existe.' );
            devuelve  FALSO ; 
        } else { 
            return  TRUE ; 
        } 
    } 
}

Modelo (User.php)

El modelo de usuario se utiliza para recuperar e insertar los datos del usuario. getRows()La función recupera los datos de usuario de la base de datos y la insert()función inserta los datos de la cuenta de usuario en la base de datos.
<? php  if (!  defined ( 'BASEPATH' )) exit ( 'No se permite el acceso directo al script' ); 
clase de  usuario  se extiende  CI_Model { 
    función  __construct () { 
        $ this -> userTbl  'usuarios' ; 
    } 
    / * 
     * obtener filas de la tabla de usuarios 
     * / 
    function  getRows ( $ params  = array ()) { 
        $ this -> db -> select ( '*' ); 
        $ esto -> db -> desde( $ this -> userTbl ); 
        
        // obtener datos por condiciones 
        si ( array_key_exists ( "conditions" , $ params )) { 
            foreach ( $ params [ 'conditions' ] as  $ key  =>  $ value ) { 
                $ this -> db -> where ( $ key , $ valor ); 
            } 
        } 
        
        if ( array_key_exists ( "id" , $ params )) { 
            $ this -> db -> where( 'id' , $ params [ 'id' ]); 
            $ consulta  $ esto -> db -> get (); 
            $ result  $ query -> row_array (); 
        } else { 
            // establece start y limit 
            if ( array_key_exists ( "start" , $ params ) &&  array_key_exists ( "limit" , $ params )) { 
                $ this -> db -> limit ( $ params [ 'limit' ],'inicio' ]); 
            } elseif (! array_key_exists ( "start" , $ params ) &&  array_key_exists ( "limit" , $ params )) { 
                $ this -> db -> limit ( $ params [ 'limit' ]); 
            } 
            $ query  $ this -> db -> get (); 
            if ( array_key_exists ( "returnType" , $ params ) &&  $ params [ 'returnType''count' ) { 
                $ result  $ query -> num_rows (); 
            } elseif ( array_key_exists ( "returnType" , $ params ) &&  $ params [ 'returnType' ] ==  'single' ) { 
                $ result  = ( $ query -> num_rows ()>  0 )? $ query -> row_array (): FALSE ; 
            } else { 
                $ result  = ( $ query -> num_rows ()>  0 )? $ consulta ->result_array (): FALSE ; 
            } 
        } 

        // devolver exagerado los datos 
        de retorno  $ resultado ; 
    } 
    
    / * 
     * Insertar información del usuario 
     * / 
    inserción de función pública  ( $ data  = array ()) { // agregar datos creados y modificados si no se incluye si (! Array_key_exists ( "created" $ data )) { $ data [ 'created ' ] =  fecha ( "Ymd H: i: s" );         }         if (! array_key_exists ( "modificado"
        
        
            

$ datos )) { 
            $ datos [ 'modificado' ] =  fecha ( "Ymd H: i: s" ); 
        } 
        
        // insertar datos de usuario en la tabla de usuarios 
        $ insert  $ this -> db -> insert ( $ this -> userTbl $ data ); 
        
        // devolver el estado 
        if ( $ insert ) { 
            return  $ this -> db -> insert_id () ;; 
        } else { 
            devolver  falso ; 
        } 
    } 

}

Ver (usuarios /)

Para integrar el sistema de inicio de sesión CodeIgniter, se utilizan 3 archivos de vista, registration.phplogin.php, y account.php.
Formulario de registro (users / registration.php)
Este archivo contiene un formulario HTML para recopilar la información de la cuenta del usuario. Una vez que el usuario envía el formulario, se envía al registration()método del controlador Usuarios.
<! DOCTYPE html>
< html  lang = "en" >  
< cabeza >
< link  href = " <? php  echo  base_url ();  ?> asset / css / style.css"  rel = 'hoja de estilo'  tipo = 'texto / css' />
</ cabeza >
< cuerpo >
< div  class = "container" >
    < h2 > Registro de usuario </ h2 >
    < form  action = ""  method = "post" >
        < div  class = "form-group" >'</span>' ); ?> 
        </      div >
        < div  class = "form-group" >'</span>' ); ?>      
        </ div >
        < div  class = "form-group" >
            < input  type = "text"  class = "form-control"  name = "phone"  placeholder = "Phone"  value = " <? php  echo! empty ( $ user [ 'phone' ])? $ user [ 'phone' ] : '' ?> " >
        </ div >
        < div  class = "form-group" >
          < input  type = "password"  class = "form-control"  name = "password"  placeholder = "Password"  required = "" >
           <? php  echo  form_error ( 'password' , '<span class = "help-block"> ' , ' </span> ' ); ?> 
        </ div >
        < div  class = "form-group" >
          < input  type = "password"  class = "form-control"  name = "conf_password"  placeholder = "Confirm password"  required = "" >
           <? php  echo  form_error ( 'conf_password' , '<span class = "help-block" > ' , ' </span> ' ); ?> 
        </ div >
        < div  class = "form-group" >
             <? php 
            if (! empty ( $ user [ 'gender' ]) &&  $ user [ 'gender' ] ==  'Female' ) { 
                $ fcheck  'checked = "check" ' ; 
                $ mcheck  '' ; 
            } else { 
                $ mcheck  'checked = "check"' ; 
                $ fcheck  '' ; 
            } 
            ?> 
            < div  class = "
                < etiqueta >
                < input  type = "radio"  name = "gender"  value = "Male"  <? php  echo  $ mcheck ? >>
                Masculino
                </ label >
            </ div >
            < div  class = "radio" >
                < etiqueta >
                  < input  type = "radio"  name = "gender"  value = "Female"  <? php  echo  $ fcheck ? >>
                  Hembra
                </ label >
            </ div >
        </ div >
        < div  class = "form-group" >
            < input  type = "submit"  name = "regisSubmit"  class = "btn-primary"  value = "Submit" />
        </ div >
    </ form >
    < p  class = "footInfo" > ¿Ya tienes una cuenta? < Un  href = " <? Php?  Eco  base_url ();  ?> Usuarios / login" > Entrar aquí </ a > </ p >              
</ div >
</ cuerpo >
</ html >
Formulario de inicio de sesión (users / login.php)
Este archivo contiene un formulario HTML de inicio de sesión para autenticar al usuario con su cuenta. Una vez que el usuario envía el formulario, se envía al login()método del controlador Usuarios.
<! DOCTYPE html>
< html  lang = "en" >  
< cabeza >
< link  href = " <? php  echo  base_url ();  ?> asset / css / style.css"  rel = 'hoja de estilo'  tipo = 'texto / css' />
</ cabeza >
< cuerpo >
< div  class = "container" >
    < h2 > Inicio de sesión de usuario </ h2 >
     <? php 
    if (! empty ( $ success_msg )) { 
        echo  '<p class = "statusMsg">' . $ success_msg . '</p>' ; 
    } elseif (! empty ( $ error_msg )) { 
        echo  '<p class = "statusMsg">' . $ error_msg . '</p>' ; 
    } 
    ?> 
    < form  action = ""  method = "post" >
        < div  class = "form-group has-feedback" >
            < input  type = "email"  class = "form-control"  name = "email"  placeholder = "Email"  required = ""  value = "" >
             <? php  echo  form_error ( 'email' , '<span class = "help -block "> ' , ' </span> ' ); ?> 
        </ div >
        < div  class = "form-group" >
          < input  type = "password"  class = "form-control"  name = "password"  placeholder = "Password"  required = "" >
           <? php  echo  form_error ( 'password' , '<span class = "help-block"> ' , ' </span> ' ); ?> 
        </ div >
        < div  class = "form-group" >
            < input  type = "submit"  name = "loginSubmit"  class = "btn-primary"  value = "Submit" />
        </ div >
    </ form >
    < p  class = "footInfo" > ¿No tienes una cuenta? < Un  href = " <? Php?  Eco  base_url ();  ?> Usuarios / registro" > Regístrese aquí </ a > </ p >
</ div >
</ cuerpo >
</ html >
Cuenta de usuario (users / account.php)
Si el inicio de sesión del usuario es exitoso, esta vista se carga con los detalles de la cuenta del usuario respectivo.
<! DOCTYPE html>
< html  lang = "en" >  
< cabeza >
< link  href = " <? php  echo  base_url ();  ?> asset / css / style.css"  rel = 'hoja de estilo'  tipo = 'texto / css' />
</ cabeza >
< cuerpo >
< div  class = "container" >
    < h2 > Cuenta de usuario </ h2 >
    < h3 > Bienvenido <? php  echo  $ usuario [ 'nombre' ]; ?> ! </ h3 >
    < div  class = "account-info" >
        < p > < b > Nombre: </ b > <? php  echo  $ usuario [ 'nombre' ]; ?> </ p >
        < p > < b > Correo electrónico: </ b > <? php  echo  $ user [ 'email' ]; ?> </ p >
        < p > < b > Teléfono: </ b > <? php  echo  $ user [ 'phone' ]; ?> </ p >
        < p > < b > Gender: </ b > <? php  echo  $ user [ 'gender' ]; ?> </ p >
    </ div >
</ div >
</ cuerpo >
</ html >

Conclusión

Este tutorial de autenticación de usuarios de CodeIgniter lo ayudará a implementar un sistema de inicio de sesión simple en CodeIgniter. Además, puede extender fácilmente nuestra secuencia de comandos del sistema de inicio de sesión CodeIgniter según sus requisitos.

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

Post Top Ad

Your Ad Spot

Páginas