Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Empezaremos esta pequea guia, de como crear una zona para usuarios registrados
usandos sesiones, explicando lo que son realmente las sesiones:
Las sesiones son un identificador creado para cada usuario, en el que se acumula
informacin en forma de variables. Seguramente habras visto en muchas urls variables
del tipo ids=Asd212saj100Xssdawggs esto es el identificador que guarda las variables.
Existen dos formas de propagar las sesiones, mediante cookies o mediante la url. El
sistema de cookies es menos fiable, ya que si el visitante no tiene habilitadas las
cookies, no funcionara. Personalmente prefiero este sistema, aunque tenga estos
inconvenientes, pero el propagar sesiones por la URL es un problema para los
buscadores... aunque eso es otro tema.
<?
//iniciamos la sesin
session_start();
Realmente hemos asignado dos variables a la sesin: nick y password, los dos
parametros que usaremos para identificar a nuestros usuarios.
Lo primero que queremos son usuarios registrados, para ello, empezaremos creando la
base de datos donde almacenaremos su informacin:
Ahora que ya tenemos nuestra tabla creada, empezaremos por crear el formulario de
alta, para nuevos usuarios:
Para ello tendras que incluir los campos que se indican en la tabla, y al final del archivo
incluir un script php que aada los valores en la tabla, algo asi (recuerda que esto es
solo una idea que debes desarrollar):
formulario_alta.php
<?php
//conexion MySQL
$host="localhost";
$user="user";
$pass="password";
$db="nombre base de datos";
//Cerramos la conexin
mysql_close();
?>
//Conexin Mysql.
//Validacion
if (mysql_db_query ($db, $sql, $link))
{
echo ("Alta exitosa");
}
else
{
echo ("Alta erronea. Intentalo otra vez");
}
//Cerramos la conexin
mysql_close();
?>
Ya tenemos a los usuarios en la base de datos, ahora nos toca identificarlos y dejarlos
entrar por la zona de suarios.
Acceder.php
codifica.php
<?
//iniciamos la sesin
session_start();
Con este codigo, hemos creado la variable de sesin que incluir el nick y el
password, y que se propagar por todas las paginas hasta que terminemos la sesin,
por lo que nuestro visitante no tendr que ir identificndose en cada seccin.
El codigo creo que se comprende muy bien con las explicaciones que van el el codigo,
tal vez solo matizar que la ultima sentencia del codigo, es una redireccin hacia el
archivo: ingresar.php, modifica esto y adapta la ruta al archivo en funcin de tu
situacin. El el siguiente capitulo explicaremos como crear el archivo: ingresar.php.
Ya tenemos el usuario creado, este esta intentando ingresar en la zona de usuarios mediante
el formulario de acceso, este formulario ha creado las variables... ahora solo queda
identificar al usuario comparando esas variables con la base de datos: lo haremos mediante
el arhivo: ingresar.php
ingresar.php
<?php
//conexion MySQL
$host="localhost";
$user="usuario";
$pass="password";
$db="base de datos";
$tabla="usuarios";
$conseguir_informacion=@mysql_fetch_array($resultado);
$usuario_id=$conseguir_informacion[id];
$usuario_nick=$conseguir_informacion[nick];
$usuario_pass=$conseguir_informacion[password];
?>
Esta es una zona para usuarios registrados. No tienes acceso.
<?
}
else
{
?>
Bien venido a la zona de usuario.
//Tambien puedes poner una redireccin con javascript hacia la pagina de usuarios
registrados
<?
//cerramos la conexion
mysql_close ($link);
?>
Este seria un ejemplo para una sola pagina de acceso restringido (yo la usaria como
menu principal de la zona de usuarios), pero ahora queremos desarrollar toda una
seccin de usuarios registrados con muchas subpaginas con control de acceso. Para
ello usuaremos el siguiente codigo, que no solo permitira que solo nuestros usuarios
entren en nuestras paginas, sino que crearemos una medida de seguridad ocultando la
url final:
<?php
//conexion MySQL
$host="localhost";
$user="usuario";
$pass="password";
$db="base datos";
$tabla="usuarios";
$conseguir_informacion=@mysql_fetch_array($resultado);
$usuario_id=$conseguir_informacion[id];
$usuario_nick=$conseguir_informacion[nick];
$usuario_pass=$conseguir_informacion[PASSWORD];
?>
<font size="2" face="Verdana, Arial, Helvetica, sans-serif"> <font face="Verdana,
Arial, Helvetica, sans-serif">
<div align="center">
<p><font color="#FF0000" face="Verdana, Arial, Helvetica, sans-
serif"><strong>Estas intentando
entrar en una zona de nivel superior al tuyo<font
size="2">.</font></strong></font></p>
<p><font face="Verdana, Arial, Helvetica, sans-serif"><font size="2">Tu nivel
es de: <strong>USUARIO</strong>, para poder entrar a esta zona tienes que
ser: <strong>ADMINISTRADOR</strong><br>
</font></font> </p>
</div>
<?
}else {
require ("pagina_para_usuarios.php");
//cerramos la conexion
mysql_close ($link);
}
?>
Que hace este codigo? Pues simplemente, incluye en esta pagina un archivo remoto
(que debes ocultar en una carpeta lejos de los archivo de la zona de usuarios, y que
solo tu conozcas) que en teoria solo es para usuarios. En el requiere final deberas
poner la ruta hacia el archivo SOLO PARA USUARIOS que deseas llamar. Recuerda,
oculta el archivo en una carpeta segura, por ejemplo:
http://www.midominio.com/ocultar/secciones/pagina_para_usuarios.php
Una de las cosas fundamentales en este tipo de script, es que los datos del cliente se
borren, y no se almacenen. Queremos sobre todo que nuestro sistema de usuarios sea
seguro. Para ello, daremos la opccin de terminar la sesin al usuario, de forma que
sus datos permanezcan de forma segura. Lo haremo en el archivo logout.php
logout.php
<?
session_start();
session_unset();
session_destroy();
header("Location: logout_confirmacion.php");
exit();
?>
En resumen: Creamos una sesin, destruimos las variables que almacena y borramos
la sesin. En este ejemplo he usado una variante (muy utilizada por los webmasters)
que lo que hace es redirigir al usuario a la pagina principal del web, usando un pagina
de enlace: logout_confirmacion.php. Esta pagina lo unico que hace es informandonos
de que la sesin se esta cerrando y que seremos redirigidos a la pagina principal
(muchos foros usan este sistema).
logout_confirmacion.php
Para utilizar el logout.php solo tienes que poner un enlace hacia el archivo, algo asi:
<a href="http://www.tudominio.com/logout.php"> Logout - terminar sesion
</a>
Espero que este pequeo tutorial de como crear un sistema de usuarios mediante
sesiones, te sea realmente til. En el siguiente capitulo te explicaremos como mejorar
un poco el codigo, y dar diversos permisos a los usuarios.
Este codigo no hace distincin entre usuarios normales y administradores. Como hacemos
para que a las paginas de administracin solo puedan entrar los administradores?
Hemos aadido el campo nivel, con el valor 0. Este sera el valor por defecto para
usuarios normales.
Para asignar privilegios de administracin, solo tendras que cambiar este valor a por
ejemplo 1. Este puede ser el valor de administrador. Puedes cambiarlo usando tu
phpadmin o creando un script que lo cambie directamente.
Ahora en todas las paginas que queramos que solo vean los administridores,
tendremos que poner el siguiente codigo en el archivo: ingresar.php
ingresar.php
Con esto aadimos la condicin de que el usuario tiene que tener nivel 1. Este es un
pequeo ejemplo de uso, recuerda que los limites los pones tu. Desarrolla la idea y
adaptala a tus necesidades.