Issuu on Google+

DESCRIPCIÓN BREVE

PHP ORIENTADO A OBJETOS Inicio de sesión a través de php orientado a objetos

Programa en el cual vas a aprender a hacer un inicio de sesión para tu sitio web en php orientado a objetos, donde explicare paso a paso su funcionalidad

Por: Oscar Camacho Sánchez PHP orientado a objetos


Lo primero que tenemos que hacer es nuestra base de datos En este caso la vamos a llamar mi_blog y va a contener solo una tabla de usuarios /*Script*/ CREATE DATABASE mi_blog CREATE TABLE usuarios id INT NOT NULL, username VARCHAR (20), password VARCHAR(20), PRIMARY KEY (id);

Bien ahora que ya creamos nuestra base de datos con nuestra tabla de usuarios, vamos a crear primero un archivo php llamado nueva_sesion.php <?php require_once 'class_login.php'; $blog = new blog(); if (isset($_POST['grabar']) and $_POST['grabar']=='si') { $blog->nueva_sesion(); }else{ } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf8" /> <title>Registro de usuarios</title> </head> <body> <form name="form" action="" method="post"> <table style="width:400px; height:120px; background:#FFCC00"> <tr> <td> Nombre de usuario </td> <td> <input type="text" name="nom"> </td> </tr> <tr><input type='hidden' name='grabar' value='si'> <td> Password </td> <td> <input type="password" name="pass">


</td> </tr> <?php if(isset($_GET['usuario'])) { ?> <tr> <td colspan="2" style="background:#f00; color:#fff; text-align:center"> <?php switch($_GET['usuario']) { case 'no_existe': ?> Los datos introducidos no existen <?php } } ?> </td> </tr> <tr> <td> </td> <td> <input type="submit" value="Inicia sesion" onClick="validar()"> </td> </tr> </table> </form> </body> </html>

Con estas líneas de código <?php require_once 'class_login.php'; $blog = new blog(); if (isset($_POST['grabar']) and $_POST['grabar']=='si') { $blog->nueva_sesion(); }else{ } ?>

Primero llamamos al archivo class_login.php que a continuación crearemos, después creamos un nuevo objeto de la clase blog, y llamamos a la función nueva sesión de dicho objeto, todo esto se hará siempre que exista una variable post llamada grabar y siempre que su valor sea si, eso significará que sólo sucederá cuando se pulse el botón del formulario.


Ahora crearemos la clase para la conexión a nuestra base de datos <?php class Conectar { public static function con() { //Seleccionamos nuestro servidor local (localhost) $conexion = mysql_connect("localhost","root",""); mysql_query("SET NAMES 'utf8'"); //Linea que nos sirve para conectano a la base de datos mysql_select_db("mi_blog"); return $conexion; } } ?>

Después tenemos que crear class_login.php aquí van las funciones necesarias para procesar el login de los usuarios, lo primero que debemos hacer es el sesion_start(), esto siempre debe ir en la primera línea del código, después llamamos al archivo conexion.php que es el que nos crea la conexión con la base de datos. <?php session_start(); require_once("conexion.php"); class blog { public function nueva_sesion() { //recogemos las variables post del formulario $nombre = $_POST['nom']; $password = $_POST['pass']; //realizamos la consulta sql //colocamos script_tags para eliminar las etiquetas html y php, por si vienen $query = "SELECT * FROM usuarios WHERE username='".strip_tags($nombre)."' AND password='".strip_tags($password)."';"; //ejecutamos la consulta y guardamos el resultado en la variable resultado $resultado = mysql_query($query,Conectar::con()); //si el número de filas devuelto por la variable resultado es 1, //lo que significa que en la base de datos mi_ blog, en la tabla usuarios //existe una fila que coincide con los datos ingresados //nos envíe a logueado.php, que sería como el home de nuestra página, //en otro caso, nos deja en nueva_sesion, con una variable get llamada usuario //y con el valor no_existe if ($reg=mysql_num_rows($resultado) == 0)


{ header("Location:nueva_sesion.php?usuario=no_existe"); }else{ } if($reg=mysql_fetch_array($resultado)) { $_SESSION['oscar'] = $reg['username']; header("Location:logueado.php"); } } } ?>

Creamos el archivo logueado.php Si los datos son correctos redirigimos al usuario a la página logueado.php, un dato, por cada campo de la base de datos de la tabla usuarios en este caso, podemos asignar las sesiones que necesitemos, nosotros sólo hemos sacado el valor del campo username, pero podríamos hacerlo con todos los campos que podamos tener, la fecha de registro, la edad, y lo mismo para otras tablas que estén relacionadas, ahora sí, creamos el archivo logueado.php e introducimos el siguiente código. <?php require_once("class_login.php"); if(!isset($_SESSION["oscar"])) { ?> Debe iniciar session para acceder a este contenido <a href='nueva_sesion.php'>Página principal</a>"; <?php }else{ ?> <h2>Bienvenido de nuevo <?php echo $_SESSION['oscar']?></h2> <a href="cerrar_sesion.php">Cerrar sesión</a> <?php } ?>

Ya por ultimo vamos a crear el archivo cerrar sesión para terminar el login de usuarios <?php session_start(); session_destroy(); echo"<script type='text/javascript'> alert('La sesión fué cerrada correctamente'); window.location='nueva_sesion.php'; </script>"; ?>



Login