Crear área restringida con php en nuestra web.
Hola, ¿Cómo están? Aquí les dejo una forma sencilla de crear un area de nuestra web restringida con usuario y password hacia una página personal de nuestro usuario. Este tuto lo hago despues de pasar lo mio para llegar a este fin, a si que espero que les sirva.
Antes de nada debo decir que para realizar una web en php es necesario tener algún interprete de éste para poder ejecutarlo.
Materiales a utilizar:
- bloc de notas
- interprete de php (en mi caso AppServ con php5)
Archivos a utilizar:
-página de ingreso: (en nuestro ejemplo se llamará ingreso.php) ingreso.php
-página de control: (donde se verifica si el user y password están restringidos) control.php
-página privada: (area restringida personal para nuestro usuario) user1.php// user2.php// user3.php
Para seguridad ingresaremos un par de códigos en las páginas que a continuación explicaré y tomaremos algunas precauciones más.
Es hora de comenzar, guardaremos este formulario de inscripción en un bloc de notas o lo insertaremos en la página de inicio que nosotros queramos, ojo, siempre con la extensión .php (en este caso ingreso.php):
Código
<html> <head> <title>Acceso Restringido</title> </head> <body> <h1>Autentifíquese</h1> <form action="control.php" method="POST"> <table align="center" width="225" cellspacing="2" cellpadding="2" border="0"> <tr> <td colspan="2" align="center" <?if ($_GET["errorusuario"]=="si"){?> bgcolor=red><span style="color:ffffff"><b>Datos incorrectos</b></span> <?}else{?> bgcolor=#cccccc>Introduce tu clave de acceso <?}?></td> </tr> <tr> <td align="right">USER:</td> <td><input type="Text" name="usuario" size="8" maxlength="50"></td> </tr> <tr> <td align="right">PASSWD:</td> <td><input type="password" name="contraseña" size="8" maxlength="50"></td> </tr> <tr> <td colspan="2" align="center"><input type="Submit" value="ENTRAR"></td> </tr> </table> </form> </body> </html>
Bien, ahora abrimos otro bloc de notas e insertaremos el siguiente código para validar los usuarios que estén registrados y mandarlos a su página privada.
Código
<? //vemos si el usuario y contraseña es váildo if ($_POST["usuario"]=="user1" && $_POST["contraseña"]=="xxxx"){ //usuario y contraseña válidos //defino una sesion y guardo datos $_SESSION["autentificado"]= "SI"; }else { //si no existe le mando otra vez a la portada if ($_POST["usuario"]=="user2" && $_POST["contraseña"]=="asdfg"){ //usuario y contraseña válidos //defino una sesion y guardo datos $_SESSION["autentificado"]= "SI"; }else { //si no existe le mando otra vez a la portada if ($_POST["usuario"]=="user3" && $_POST["contraseña"]=="pepe69"){ //usuario y contraseña válidos //defino una sesion y guardo datos $_SESSION["autentificado"]= "SI"; }else { //si no existe le mando otra vez a la portada } } } ?>
Pues bien, ya estamos finalizando. Abrimos otro bloc de notas, o bien seleccionamos la web que tengamos creada de nuestro user1.php // user2.php // user3.php e inserteremos el siguiente código:
Código
<?php if(!($_SERVER["HTTP_REFERER"]==" ingreso.php")){ echo "No puedes entrar, debes registrarte"; } ?> <html > <head> <META NAME = "ROBOTS" CONTENT = "NOARCHIVE"> <title>USER1</title> </head> <body> Estas autentificado, este es tu espacio personal. <a href="salida.php" target="_top">Salir de forma segura</a> </body> </html>
<?php
if(!($_SERVER["HTTP_REFERER"]=="ingreso.php" )){
echo "No puedes entrar, debes registrarte";
exit();
}
?>
El código éste, el que se situa al inicio del todo de la web sirve para que nadie pueda acceder a la zona restringida sin poner en la pagina ingreso.php los datos.
Asegurense de no dejar espacio entre el código de php y el <html>
Fijense en esta etiqueta: <META NAME = "ROBOTS" CONTENT = "NOARCHIVE">
Esto evita que la web sea registrada por los motores de búsqueda de tipo google. Aumentando algo más la seguridad.
Con este propósito, y con el fin de que no puedan acceder a el sitio donde tengamos ubicadas las páginas privadas (o mejor dicho que se les complique más) es introducir un archivo index.html en blanco en la carpeta que queramos ocultar.
Esto fue todo, creo que esto tiene suficiente seguridad (a no ser que vayamos a albergar cuentas de crédito o cosas así, jaja) como para poder proteger un área (si estoy equivocado por favor díganmelo, no soy un experto pero creo que esto para mis necesidades me sobra). Claro que es mucho mejor con bases de datos, este será mi próximo objetivo.
Saludos y díganme si les gustó, si tiene algún error, si no les funciona(a mi me va perfecto), etc.
--permito su publicación otro sitio siempre que se cite la fuente o autor.
PD: Este tuto ha sido elaborado completamente por mi, los codigos los he cogido de algunas web´s que no cito porque ni recuerdo cuantas miré para hacer lo que era mi proposito, por lo que en gran medida tube que ingeniarmelas para sin saber casi nada de php adaptarlo a mi caso. No creo que esto viole nada contra la propiedad o derechos de autor, si es así. diganmelo.