Uso de sesiones en php (creando un sistema de registro y login)
Bienvenidos a este tutorial donde mostraremos como usar variables de sesion en php para que se pueda manejar un sistema de registro, logueo y sesiones en sus paginas web.
Cabe aclarar que este no es el mejor metodo para seguridad puesto que no explicaremos encriptacion con MD5 y otras cosas que harian mas seguro nuestro sistema.
Lenguaje de Programacion: PHP.
Motor de Base de Datos: Mysql.
Conocimientos previos necesarios: Manejo de Base de datos, conocimientos Medios de php y HTML.
Nivel del Tutorial: Medio-Avanzado.
Comenzamos creando una base de datos mysql que llamaremos proyecto y dentro de ella una tabla llamada usuarios con 3 campos: id_usa, nomb_usua, pass_usua.
Codigo SQL:
- CREATE DATABASE `proyecto` ;
- CREATE TABLE `usuarios` ( `id_usua` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
- `nomb_usua` VARCHAR( 100 ) NOT NULL ,
- `pass_usua` VARCHAR( 50 ) NOT NULL );
Listo con nuestra tabla creada ya estamos listos para comenzar a programar.
Crearemos los siguientes archivos:
conexion.php
registro.php
procesador.php
login.php
logout.php
index.php
Ahora si Manos a la obra:
Paso 1 Creando la conexion
Abriremos el archivo conexion.php y vamos a conectarnos con nuestra base de datos.
- <?php
- $host = "localhost";
- $user = "root";
- $pass = "";
- $db = "proyecto";
- $conexion = mysql_connect($host, $user, $pass);
- mysql_select_db($db,$conexion);
- ?>
Listo esto es lo unico que contendra el archivo, las variables cambian de acuerdo a las configuraciones de tu servidor.
Paso 2 Creando la pagina de Registro
Ahora editaremos el archivo registro.php donde crearemos nuestro formulario de registro:
- <form action="procesador.php?accion=registrar" method="post">
- Registrate en Nuestro Sistema<br /><br />
- Nombre: <input type="text" name="nombre" /><br /><br />
- Contraseña: <input type="password" name="pass" /><br /><br />
- <input type="submit" value="Registrar" />
- </form>
Si notan pasamos los valores por post y un parametro por get para que el archivo procesador.php sepa que accion debe realizar.
Paso 3 Creando la pagina de Ingreso
Este paso es bastante parecido al anterior y solo vamos a crear un formulario para la identificacion de usuarios.
- <form action="procesador.php?accion=identificar" method="post">
- Accede a Nuestro Sistema<br /><br />
- Nombre: <input type="text" name="nombre" /><br /><br />
- Contraseña: <input type="password" name="pass" /><br /><br />
- <input type="submit" value="Entrar" />
- </form>
Esta vez cambiamos el parametro que enviamos al procesador como ven.
Paso 4 Creando el Procesador
Vamos ahora a crear el archivo mas importante de nuestro sistema y es el procesador.
No me detendre a explicar algunas cosas pero explicare la parte importante que es el manejo de sesiones.
- <?php
- session_start();
- include_once("conexion.php");
- $nombre = $_POST["nombre"];
- $pass = $_POST["pass"];
-
- if($_GET["accion"] == "identificar"){
- $sql = "SELECT * FROM usuarios WHERE nomb_usua ='".$nombre."' AND pass_usua ='".$pass."'";
- $consulta = mysql_query($sql);
- if(mysql_num_rows($consulta)> 0){
- $_SESSION["usuario"] = 1;
- ?>
- <script language="javascript" type="text/javascript">
- document.location.href = "index.php";
- </script>
- <?php
- }
- else{
- ?>
- <script language="javascript" type="text/javascript">
- alert('Sus Datos son Incorrectos');
- document.location.href = "login.php";
- </script>
- <?php
- }
- }
-
- else if ($_GET["accion"] == "registrar"){
-
- $sql = "INSERT INTO usuarios (nomb_usua, pass_usua) VALUES ('".$nombre."', '".$pass."')";
- $consulta = mysql_query($sql);
- if($consulta){
- ?>
- <script language="javascript" type="text/javascript">
- alert('Su Registro ha sido exitoso');
- document.location.href = "login.php";
- </script>
- <?php
- }
- else{
- ?>
- <script language="javascript" type="text/javascript">
- alert('Ha ocurrido un error al registrar por Favor intentelo de nuevo');
- document.location.href = "registro.php";
- </script>
- <?php
-
- }
-
- }
- ?>
Como ven toda pagina que use sesiones debe comenzar con la instruccion session_start(); estrictamente en la primera linea.
Podemos crear variables de sesion y asignarlas como en el ejemplo $_SESSION["usuario]=1; Estas variables son globales y estaran accesibles en cualquier archivo que use sesiones en nuestro proyecto.
Ahora veremos como leer estas variables editando el archivo index.php
Paso 5 Verificando si el usuario esta o no logueado.
Abramos el archivo index.php y editemos el codigo.
- <?php
- session_start();
- if($_SESSION["usuario"] != "1"){
- ?>
- Usted no esta Logueado por favor <a href="login.php">identifiquese</a> en nuestro sistema.<br />
- Sino esta registrado puede hacerlo dando clic <a href="registro.php">Aqui</a>
- <?php
- }
- else {
- ?>
- Bienvenido Usted esta logueado en nuestro sistema.
- <a href="logout.php">Salir</a>
- <?php
- }
-
- ?>
Podemos ver que se puede acceder y comparar el valor actual de la sesion de manera sencilla.
Paso 6 Cerrando Sesion
Como ultimo paso vamos a editar el archivo logout.php que sera el que cerrara nuestra sesion.
- <?php
- session_start();
- session_destroy();
- header("location:index.php");
- ?>
Con la instruccion session_destroy(); destruimos las sesiones activas y salimos del sistema Correctamente.
Notas Finales
Cabe destacar como al principio que este sistema no es muy recomendable pues es muy fragil en cuanto a seguridad.
Simplemente queria mostrar el uso de sesiones en php.
Ustedes pueden mejorarlo agregandole encriptacion y muchas cosas mas que no competen a este tema.
 |
Clic para descargar... |
Espero que les pueda servir.
Testeado en Wampserver2
Fuente:
Debe registrarse para ver este enlace. Gracias por su visita.