SlideShare una empresa de Scribd logo
1 de 6
Sencillo/fácil sistema de registro de usuarios en PHP y MySQL con manejo de
sesiones

Esta vez quiero mostrarles como hacer para que tu web tenga un sistema de
registro para tus usuarios, ya
 con esto puedes hacer muchas cosas como darles permisos específicos, restringir
la entrada de visitantes a algunas partes de tu web, etc..

Cabe aclarar que el script es bastante básico, para quienes empiezan en esto de
la programación web.

Requerimientos:
 Hosting (servidor local o web)
 PHP (ojala 5)
 1 base de datos MySQL

Empecemos:
 Para el desarrollo de nuestro script necesitaremos la creación de 4 archivos
.php:

•   conexion.php
•   registro.php
•   login.php
•   perfil.php



IMPORTANTE: Tengan cuidado a la hora de copiar y pegar el contenido de los
archivos, recuerden no dejar ningún espacio
entre el inicio de linea y la expresión "<?php".


1. Lo primero es crear una base de datos a la cual vamos a poner nombre
"registro".
 En la cual vamos a generar la siguiente consulta SQL:


Código:

CREATE TABLE usuarios (
    id        int(5) not null auto_increment,
    fecha    int(10) not null,
    nick    varchar(20) not null,
    pass    varchar(32) not null,
    mail    varchar(40) not null,
    ip        varchar(15) not null,
    primary key (id),
    key (nick,pass)
)

Lo que estamos haciendo es crear una tabla en nuestra base de datos llamada
"usuarios", en la cual almacenaremos los datos de nuestros usuarios.
2. Luego empezaremos con la creación de nuestro primer archivo "conexion.php",
el cual se encarga de conectar nuestro sistema con la base de datos que creamos
en el punto anterior.
 Este archivo también tendrá algunas funciones php necesarias para el registro y
el logueo de los usuarios.


Código:

<?php
    $nombre_server[1] = 'localhost'; //Servidor al cual nos vamos a conectar.
    $nombre_user[2] = 'root'; //Nombre del usuario de la base de datos.
$password[3] = ''; //Contraseña de la base de datos
    $nombre_db[4] = 'registro'; //nombre de la base de datos

    $conectar = @mysql_connect($nombre_server[1],$nombre_user[2],$password[3])
or exit('Datos de conexion incorrectos.');
    mysql_select_db($nombre_db[4]) or exit('No existe la base de datos.');

/*En este archivo también pondremos unas funciones necesarias para el registro y
el login*/
session_start();

/*Función que se encarga de eliminar codigo malicioso de las variables.*/
function limpiar($var)
{

    $var =   trim($var);
    $var =   htmlspecialchars($var);
    $var =   str_replace(chr(160),'',$var);
    return   $var;
}

/*Función que se encarga de validar el email de registro para que sea
correcto.*/
function validar_email($email){
    $mail_correcto = 0;
    //compruebo unas cosas primeras
    if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) &&
(substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@"))
    {
       if ((!strstr($email,"'")) && (!strstr($email,""")) && (!
strstr($email,"")) && (!strstr($email,"$")) && (!strstr($email," ")))
       {//miro si tiene caracter .
          if (substr_count($email,".")>= 1)
          {//obtengo la terminacion del dominio
             $term_dom = substr(strrchr ($email, '.'),1);
             //compruebo que la terminaci?n del dominio sea correcta
             if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!
strstr($term_dom,"@")) )
             {//compruebo que lo de antes del dominio sea correcto
                 $antes_dom = substr($email,0,strlen($email) - strlen($term_dom)
- 1);
                 $caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1);
                 if ($caracter_ult != "@" && $caracter_ult != ".")
                 {
                    $mail_correcto = 1;
                 }
             }
          }
       }
    }
    if ($mail_correcto)
       return 1;
    else
       return 0;
}

/*Funcion que se encarga de validar si el usuario esta registrado en el
sistema*/
function user_login()
{
    if(!$_SESSION['id'])
    {
        exit ("Solo usuarios registrados, <a href='javascript:history.back(-
1)'>Volver</a>");
}
}
?>

Ya tenemos nuestro archivo de conexión con la base de datos entonces continuamos
con el archivo "registro.php" que como su nombre lo indica se encargara de
almacenar los usuarios en la base de datos.



Código:

<?php
include("conexion.php");
//Sistema de registro --HiperAcme.net--

if(isset($_POST['registro']))//Vallidamos que el formulario fue enviado
{     /*Validamos que todos los campos esten llenos correctamente*/
    if(($_POST['nick'] != '') && ($_POST['mail'] != '') && ($_POST['pass'] !=
'') && ($_POST['conf_pass'] != ''))
    {
         if($_POST['pass'] != $_POST['conf_pass'])
         {
              echo '<br />Las contrase&ntilde;as no coinciden';
         }
         else
         {
              $date= time();
              $nick= limpiar($_POST['nick']);
              $mail= limpiar($_POST['mail']);
              $pass= md5(md5(limpiar($_POST['pass'])));
              $ipuser= $_SERVER['REMOTE_ADDR'];

             $b_user= mysql_query("SELECT nick FROM usuarios WHERE
nick='$nick'");
             if($user=@mysql_fetch_array($b_user))
             {
                  echo '<br />El nombre de usuario o el email ya esta
registrado.';
                  mysql_free_result($b_user); //liberamos la memoria del query a
la db
             }
             else
             {
                  if(validar_email($_POST['mail']))
                  {
                       mysql_query("INSERT INTO usuarios (fecha,nick,mail,pass,ip)
values ('$date','$nick','$mail','$pass','$ipuser')");
                       echo '<br />Te has registrado Correctamente, ahora podras
iniciar sesi&oacute;n como usuario registrado.';
                  }
                  else
                  {
                       echo '<br />El email no es valido.';
                  }
             }
         }
    }
    else
    {
         echo '<br />Deberas llenar todos los campos.';
    }
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Registro de Usuarios</title>
</head>
<body>
<h2>Sistema de Registro</h2>
<div align="center">
    <form name="registrar" action="registro.php" method="post" onsubmit="return
validar()" />
        <dt><label>Nick:</label></dt>
        <input type='text' name='nick' /><br /><br />

          <dt><label>E-mail:</label></dt>
          <input type='text' name='mail' /><br /><br />

          <dt><label>Contraseña:</label></dt>
          <input type="password" name='pass' /><br /><br />

          <dt><label>Confirmar Contraseña:</label></dt>
          <input type="password" name='conf_pass' /><br /><br /><br /><br />

        <input type="submit" name="registro" style="width:100px;" tabindex="6"
value="Registrar" />
        <input type="reset" name="Limpiar" style="width:100px;" tabindex="6"
value="Limpiar" />
    </form>
    <a href="login.php">Identificarse</a>
</div>
</body>
</html>

Hasta aquí nuestro sistema de registro ya funciona y va perfectamente.
4. Ahora procedemos a crear el archivo de conexión de los usuarios , el
"login.php".
 Este archivos es el encargado de guardar la sesión se los usuarios para que el
sistema los reconozca como usuarios registrados y logueados.

Código:

<?php
include("conexion.php");

if(isset($_POST['login']))
{
    $nick= $_POST['nick'];
    $pass= md5(md5($_POST['pass']));
    $b_user=mysql_query("SELECT * FROM usuarios WHERE nick='$nick'");
    $ses = @mysql_fetch_assoc($b_user) ;
    if(@mysql_num_rows($b_user))
    {
        if($ses['pass'] == $pass)
        {
             $_SESSION['id']=        $ses["id"];
             $_SESSION['fecha']=    $ses["fecha"];
             $_SESSION['nick']=    $ses["nick"];
             $_SESSION['mail']=    $ses["mail"];
             $_SESSION['ip']=        $ses["ip"];
        }
        else
        {
             echo 'Nombre de usuario o Contrase&ntilde;a incorrecta.';
}
    }
    else
    {
        echo 'Nombre de Usuario o contrase&ntilde;a incorrecta.';
    }
}

if(isset($_GET['modo']) == 'desconectar')
{
    session_destroy();
    echo '<meta http-equiv="Refresh" content="2;url=login.php"> ';
    exit ('Te has desconectado del sistema.');
}

if(isset($_SESSION['id']))
{
     echo 'Bienvenido <b>' . $_SESSION['nick'] . '</b><br /><br />';
     echo '<b>Fecha registro:</b> ' . date("d-m-Y - H:i", $_SESSION['fecha']) .
'<br />';
     echo '<b>Email:</b> ' . $_SESSION['mail'] . '<br />';
     echo '<b>IP:</b> ' . $_SESSION['ip'] . '<br /><br />';
     echo '<a href="login.php?modo=desconectar">Salir</a>';
}
else
{
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Login</title>
</head>
<body>
<h2>Conetarse - Desconectarse</h2>
<div align="center">
     <form name="login_user" action="login.php" method="post" />
         <dt><label>Nick:</label></dt>
         <input type='text' name='nick' /><br /><br />
         <dt><label>Contraseña:</label></dt>
         <input type="password" name='pass' /><br /><br />

        <input type="submit" name="login" style="width:100px;" tabindex="6"
value="Entrar" />
        <input type="reset" name="Limpiar" style="width:100px;" tabindex="6"
value="Limpiar" />
    </form>
    <a href="registro.php">Registrarse</a>
</div>
<?php
}
?>
</body>
</html>

Aquí no solo tenemos el encargado de iniciar la sesión de los usuarios, sino que
también se cumplen dos funciones mas:
 • Mostrar algunas opciones del perfil del usuario luego de verificar que esta
logueado.
• Terminar la sesión de usuario [Desconectarse].


Que podrán verlas funcionando a la hora de implementar el código o en el ejemplo
funcional que dejare al final.

Hasta este momento, ya tienes todo el registro el logueo de usuarios totalmente
funcional, así que hasta aquí ya tienes tenemos completo nuestro sistema de
información.
5. El ultimo de nuestros archivos, simplemente es un archivo de ejemplo para
mostrar como proteger nuestra paginas de invitados que solo sena accesibles para
usuarios registrados, en este caso crearemos el archivo "perfil.php".



Código:

<?php
include("conexion.php");
user_login();
    echo '<h2>Pagina solo para usuarios registrados</h2><br />';
    echo '<b>Nombre de Usuario:</b> ' . $_SESSION['nick'] . '<br />';
    echo '<b>Fecha de registro:</b> ' . date("d-m-Y - H:i",
$_SESSION['fecha']) . '<br />';
    echo '<b>Email de registro:</b> ' . $_SESSION['mail'] . '<br />';
    echo '<b>IP:</b> ' . $_SESSION['ip'] . '<br /><br />';
    echo '<a href="login.php?modo=desconectar">Salir</a>';
?>

La función user_login() (que pueden encontrar en el archivo conexion.php) es la
encargada de verificar que el usuario este logueado, de lo contrario le mostrara
un aviso diciéndole que no lo esta y no le dejara ver el contenido de la pagina
que esta visitando.
 Así que las paginas que quieran proteger deberán agregarle la linea:



Código:

user_login();

Al principio luego de incluir el archivo de conexión.



Y luego de estos sencillos pasos tenemos nuestro sistema de registro de usuarios
funcionando.

Cualquier duda me la pueden preguntar y estaré dispuesto a ayudarles, el archivo
con todo el script lo pueden descargar desde aquí: Descarga Script Completo

Y lo pueden ver funcionando en Login

Más contenido relacionado

La actualidad más candente

Cookies y sesiones en php
Cookies y sesiones en phpCookies y sesiones en php
Cookies y sesiones en phpxparra99
 
Práctica Completa en Flash – ActionScript
Práctica Completa en Flash – ActionScriptPráctica Completa en Flash – ActionScript
Práctica Completa en Flash – ActionScriptjubacalo
 
Informe grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencaInforme grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencapaulcuenca9
 
Servlets que manejan datos de formularios HTML
Servlets que manejan datos de formularios HTMLServlets que manejan datos de formularios HTML
Servlets que manejan datos de formularios HTMLjubacalo
 
Acceso a BBDD mediante un servlet
Acceso a BBDD mediante un servletAcceso a BBDD mediante un servlet
Acceso a BBDD mediante un servletjubacalo
 
Jsp directiva page
Jsp directiva pageJsp directiva page
Jsp directiva pagejubacalo
 
Dfuncionocumento
DfuncionocumentoDfuncionocumento
Dfuncionocumentojbersosa
 
Información del registro de windows para usuarios avanzado1
Información del registro de windows para usuarios avanzado1Información del registro de windows para usuarios avanzado1
Información del registro de windows para usuarios avanzado1wilman123456
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryJavier P.
 
Primitive Obsession. FrontFest 2020
Primitive Obsession. FrontFest 2020Primitive Obsession. FrontFest 2020
Primitive Obsession. FrontFest 2020Aida Albarrán
 
Elementos de script en JSP
Elementos de script en JSPElementos de script en JSP
Elementos de script en JSPjubacalo
 
Funcionesphpmysql
FuncionesphpmysqlFuncionesphpmysql
Funcionesphpmysqljgalvisr
 
Acciones JSP
Acciones JSPAcciones JSP
Acciones JSPjubacalo
 

La actualidad más candente (19)

Cookies y sesiones en php
Cookies y sesiones en phpCookies y sesiones en php
Cookies y sesiones en php
 
Sesion 3
Sesion 3Sesion 3
Sesion 3
 
Práctica Completa en Flash – ActionScript
Práctica Completa en Flash – ActionScriptPráctica Completa en Flash – ActionScript
Práctica Completa en Flash – ActionScript
 
Informe grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencaInforme grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuenca
 
ProyectoFinal-Reporte
ProyectoFinal-ReporteProyectoFinal-Reporte
ProyectoFinal-Reporte
 
Servlets que manejan datos de formularios HTML
Servlets que manejan datos de formularios HTMLServlets que manejan datos de formularios HTML
Servlets que manejan datos de formularios HTML
 
Acceso a BBDD mediante un servlet
Acceso a BBDD mediante un servletAcceso a BBDD mediante un servlet
Acceso a BBDD mediante un servlet
 
Jsp directiva page
Jsp directiva pageJsp directiva page
Jsp directiva page
 
Insert
InsertInsert
Insert
 
Salud, Noticias Y Articulos | Vida Saludable
Salud, Noticias Y Articulos | Vida SaludableSalud, Noticias Y Articulos | Vida Saludable
Salud, Noticias Y Articulos | Vida Saludable
 
Dfuncionocumento
DfuncionocumentoDfuncionocumento
Dfuncionocumento
 
Información del registro de windows para usuarios avanzado1
Información del registro de windows para usuarios avanzado1Información del registro de windows para usuarios avanzado1
Información del registro de windows para usuarios avanzado1
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQuery
 
Primitive Obsession. FrontFest 2020
Primitive Obsession. FrontFest 2020Primitive Obsession. FrontFest 2020
Primitive Obsession. FrontFest 2020
 
Esquemas de seguridad para el servidor
Esquemas de seguridad para el servidorEsquemas de seguridad para el servidor
Esquemas de seguridad para el servidor
 
Elementos de script en JSP
Elementos de script en JSPElementos de script en JSP
Elementos de script en JSP
 
Funcionesphpmysql
FuncionesphpmysqlFuncionesphpmysql
Funcionesphpmysql
 
Acciones JSP
Acciones JSPAcciones JSP
Acciones JSP
 
Funciones
FuncionesFunciones
Funciones
 

Similar a SistemaRegistroUsuariosPHPMySQL (20)

Jacqueline nuñez pacco
Jacqueline nuñez paccoJacqueline nuñez pacco
Jacqueline nuñez pacco
 
Jacqueline nuñez pacco
Jacqueline nuñez paccoJacqueline nuñez pacco
Jacqueline nuñez pacco
 
Loguin
LoguinLoguin
Loguin
 
EXAMEN
EXAMENEXAMEN
EXAMEN
 
Validaracceso
ValidaraccesoValidaracceso
Validaracceso
 
Validaracceso
ValidaraccesoValidaracceso
Validaracceso
 
Procesar estado
Procesar estadoProcesar estado
Procesar estado
 
Documentacion
DocumentacionDocumentacion
Documentacion
 
I2 u4
I2 u4I2 u4
I2 u4
 
Julissa huaman hilari
Julissa huaman hilariJulissa huaman hilari
Julissa huaman hilari
 
Php2
Php2 Php2
Php2
 
Procesar estado
Procesar estadoProcesar estado
Procesar estado
 
Base de datos dinamicas
Base de datos dinamicasBase de datos dinamicas
Base de datos dinamicas
 
Jquery para principianes
Jquery para principianesJquery para principianes
Jquery para principianes
 
J M E R L I N P H P
J M E R L I N P H PJ M E R L I N P H P
J M E R L I N P H P
 
Procesar
ProcesarProcesar
Procesar
 
Documentacion jhon elvis_quispe_gutierrez
Documentacion jhon elvis_quispe_gutierrezDocumentacion jhon elvis_quispe_gutierrez
Documentacion jhon elvis_quispe_gutierrez
 
Ejemplo de formulario
Ejemplo de formularioEjemplo de formulario
Ejemplo de formulario
 
Inf 19 (consulya y borrado de datos)
Inf 19 (consulya y borrado de datos)Inf 19 (consulya y borrado de datos)
Inf 19 (consulya y borrado de datos)
 
Procesar estado
Procesar estadoProcesar estado
Procesar estado
 

SistemaRegistroUsuariosPHPMySQL

  • 1. Sencillo/fácil sistema de registro de usuarios en PHP y MySQL con manejo de sesiones Esta vez quiero mostrarles como hacer para que tu web tenga un sistema de registro para tus usuarios, ya con esto puedes hacer muchas cosas como darles permisos específicos, restringir la entrada de visitantes a algunas partes de tu web, etc.. Cabe aclarar que el script es bastante básico, para quienes empiezan en esto de la programación web. Requerimientos: Hosting (servidor local o web) PHP (ojala 5) 1 base de datos MySQL Empecemos: Para el desarrollo de nuestro script necesitaremos la creación de 4 archivos .php: • conexion.php • registro.php • login.php • perfil.php IMPORTANTE: Tengan cuidado a la hora de copiar y pegar el contenido de los archivos, recuerden no dejar ningún espacio entre el inicio de linea y la expresión "<?php". 1. Lo primero es crear una base de datos a la cual vamos a poner nombre "registro". En la cual vamos a generar la siguiente consulta SQL: Código: CREATE TABLE usuarios ( id int(5) not null auto_increment, fecha int(10) not null, nick varchar(20) not null, pass varchar(32) not null, mail varchar(40) not null, ip varchar(15) not null, primary key (id), key (nick,pass) ) Lo que estamos haciendo es crear una tabla en nuestra base de datos llamada "usuarios", en la cual almacenaremos los datos de nuestros usuarios. 2. Luego empezaremos con la creación de nuestro primer archivo "conexion.php", el cual se encarga de conectar nuestro sistema con la base de datos que creamos en el punto anterior. Este archivo también tendrá algunas funciones php necesarias para el registro y el logueo de los usuarios. Código: <?php $nombre_server[1] = 'localhost'; //Servidor al cual nos vamos a conectar. $nombre_user[2] = 'root'; //Nombre del usuario de la base de datos.
  • 2. $password[3] = ''; //Contraseña de la base de datos $nombre_db[4] = 'registro'; //nombre de la base de datos $conectar = @mysql_connect($nombre_server[1],$nombre_user[2],$password[3]) or exit('Datos de conexion incorrectos.'); mysql_select_db($nombre_db[4]) or exit('No existe la base de datos.'); /*En este archivo también pondremos unas funciones necesarias para el registro y el login*/ session_start(); /*Función que se encarga de eliminar codigo malicioso de las variables.*/ function limpiar($var) { $var = trim($var); $var = htmlspecialchars($var); $var = str_replace(chr(160),'',$var); return $var; } /*Función que se encarga de validar el email de registro para que sea correcto.*/ function validar_email($email){ $mail_correcto = 0; //compruebo unas cosas primeras if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@")) { if ((!strstr($email,"'")) && (!strstr($email,""")) && (! strstr($email,"")) && (!strstr($email,"$")) && (!strstr($email," "))) {//miro si tiene caracter . if (substr_count($email,".")>= 1) {//obtengo la terminacion del dominio $term_dom = substr(strrchr ($email, '.'),1); //compruebo que la terminaci?n del dominio sea correcta if (strlen($term_dom)>1 && strlen($term_dom)<5 && (! strstr($term_dom,"@")) ) {//compruebo que lo de antes del dominio sea correcto $antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1); $caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1); if ($caracter_ult != "@" && $caracter_ult != ".") { $mail_correcto = 1; } } } } } if ($mail_correcto) return 1; else return 0; } /*Funcion que se encarga de validar si el usuario esta registrado en el sistema*/ function user_login() { if(!$_SESSION['id']) { exit ("Solo usuarios registrados, <a href='javascript:history.back(- 1)'>Volver</a>");
  • 3. } } ?> Ya tenemos nuestro archivo de conexión con la base de datos entonces continuamos con el archivo "registro.php" que como su nombre lo indica se encargara de almacenar los usuarios en la base de datos. Código: <?php include("conexion.php"); //Sistema de registro --HiperAcme.net-- if(isset($_POST['registro']))//Vallidamos que el formulario fue enviado { /*Validamos que todos los campos esten llenos correctamente*/ if(($_POST['nick'] != '') && ($_POST['mail'] != '') && ($_POST['pass'] != '') && ($_POST['conf_pass'] != '')) { if($_POST['pass'] != $_POST['conf_pass']) { echo '<br />Las contrase&ntilde;as no coinciden'; } else { $date= time(); $nick= limpiar($_POST['nick']); $mail= limpiar($_POST['mail']); $pass= md5(md5(limpiar($_POST['pass']))); $ipuser= $_SERVER['REMOTE_ADDR']; $b_user= mysql_query("SELECT nick FROM usuarios WHERE nick='$nick'"); if($user=@mysql_fetch_array($b_user)) { echo '<br />El nombre de usuario o el email ya esta registrado.'; mysql_free_result($b_user); //liberamos la memoria del query a la db } else { if(validar_email($_POST['mail'])) { mysql_query("INSERT INTO usuarios (fecha,nick,mail,pass,ip) values ('$date','$nick','$mail','$pass','$ipuser')"); echo '<br />Te has registrado Correctamente, ahora podras iniciar sesi&oacute;n como usuario registrado.'; } else { echo '<br />El email no es valido.'; } } } } else { echo '<br />Deberas llenar todos los campos.'; } } ?>
  • 4. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>Registro de Usuarios</title> </head> <body> <h2>Sistema de Registro</h2> <div align="center"> <form name="registrar" action="registro.php" method="post" onsubmit="return validar()" /> <dt><label>Nick:</label></dt> <input type='text' name='nick' /><br /><br /> <dt><label>E-mail:</label></dt> <input type='text' name='mail' /><br /><br /> <dt><label>Contraseña:</label></dt> <input type="password" name='pass' /><br /><br /> <dt><label>Confirmar Contraseña:</label></dt> <input type="password" name='conf_pass' /><br /><br /><br /><br /> <input type="submit" name="registro" style="width:100px;" tabindex="6" value="Registrar" /> <input type="reset" name="Limpiar" style="width:100px;" tabindex="6" value="Limpiar" /> </form> <a href="login.php">Identificarse</a> </div> </body> </html> Hasta aquí nuestro sistema de registro ya funciona y va perfectamente. 4. Ahora procedemos a crear el archivo de conexión de los usuarios , el "login.php". Este archivos es el encargado de guardar la sesión se los usuarios para que el sistema los reconozca como usuarios registrados y logueados. Código: <?php include("conexion.php"); if(isset($_POST['login'])) { $nick= $_POST['nick']; $pass= md5(md5($_POST['pass'])); $b_user=mysql_query("SELECT * FROM usuarios WHERE nick='$nick'"); $ses = @mysql_fetch_assoc($b_user) ; if(@mysql_num_rows($b_user)) { if($ses['pass'] == $pass) { $_SESSION['id']= $ses["id"]; $_SESSION['fecha']= $ses["fecha"]; $_SESSION['nick']= $ses["nick"]; $_SESSION['mail']= $ses["mail"]; $_SESSION['ip']= $ses["ip"]; } else { echo 'Nombre de usuario o Contrase&ntilde;a incorrecta.';
  • 5. } } else { echo 'Nombre de Usuario o contrase&ntilde;a incorrecta.'; } } if(isset($_GET['modo']) == 'desconectar') { session_destroy(); echo '<meta http-equiv="Refresh" content="2;url=login.php"> '; exit ('Te has desconectado del sistema.'); } if(isset($_SESSION['id'])) { echo 'Bienvenido <b>' . $_SESSION['nick'] . '</b><br /><br />'; echo '<b>Fecha registro:</b> ' . date("d-m-Y - H:i", $_SESSION['fecha']) . '<br />'; echo '<b>Email:</b> ' . $_SESSION['mail'] . '<br />'; echo '<b>IP:</b> ' . $_SESSION['ip'] . '<br /><br />'; echo '<a href="login.php?modo=desconectar">Salir</a>'; } else { ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>Login</title> </head> <body> <h2>Conetarse - Desconectarse</h2> <div align="center"> <form name="login_user" action="login.php" method="post" /> <dt><label>Nick:</label></dt> <input type='text' name='nick' /><br /><br /> <dt><label>Contraseña:</label></dt> <input type="password" name='pass' /><br /><br /> <input type="submit" name="login" style="width:100px;" tabindex="6" value="Entrar" /> <input type="reset" name="Limpiar" style="width:100px;" tabindex="6" value="Limpiar" /> </form> <a href="registro.php">Registrarse</a> </div> <?php } ?> </body> </html> Aquí no solo tenemos el encargado de iniciar la sesión de los usuarios, sino que también se cumplen dos funciones mas: • Mostrar algunas opciones del perfil del usuario luego de verificar que esta logueado. • Terminar la sesión de usuario [Desconectarse]. Que podrán verlas funcionando a la hora de implementar el código o en el ejemplo
  • 6. funcional que dejare al final. Hasta este momento, ya tienes todo el registro el logueo de usuarios totalmente funcional, así que hasta aquí ya tienes tenemos completo nuestro sistema de información. 5. El ultimo de nuestros archivos, simplemente es un archivo de ejemplo para mostrar como proteger nuestra paginas de invitados que solo sena accesibles para usuarios registrados, en este caso crearemos el archivo "perfil.php". Código: <?php include("conexion.php"); user_login(); echo '<h2>Pagina solo para usuarios registrados</h2><br />'; echo '<b>Nombre de Usuario:</b> ' . $_SESSION['nick'] . '<br />'; echo '<b>Fecha de registro:</b> ' . date("d-m-Y - H:i", $_SESSION['fecha']) . '<br />'; echo '<b>Email de registro:</b> ' . $_SESSION['mail'] . '<br />'; echo '<b>IP:</b> ' . $_SESSION['ip'] . '<br /><br />'; echo '<a href="login.php?modo=desconectar">Salir</a>'; ?> La función user_login() (que pueden encontrar en el archivo conexion.php) es la encargada de verificar que el usuario este logueado, de lo contrario le mostrara un aviso diciéndole que no lo esta y no le dejara ver el contenido de la pagina que esta visitando. Así que las paginas que quieran proteger deberán agregarle la linea: Código: user_login(); Al principio luego de incluir el archivo de conexión. Y luego de estos sencillos pasos tenemos nuestro sistema de registro de usuarios funcionando. Cualquier duda me la pueden preguntar y estaré dispuesto a ayudarles, el archivo con todo el script lo pueden descargar desde aquí: Descarga Script Completo Y lo pueden ver funcionando en Login