Si te sirve te pego una clase que he desarrollado yo mismo y que utilizo en
las páginas de algunos clientes, muy sencilla que te servirá para
reestringir páginas, modifícala a tu gusto e incluyela en todas las páginas
mediante un include global.
Lo único que debes añadir a la páginas que deeses restringir es la siguiente
línea y antes que cualquier salida al navegador, y si no está validado lo
enviará al login.html (o lo que tu definas):
Página restringida:
<?php
Acceso::Restringir();
?>
... Resto del contenido
La clase:
<?php
class Acceso
{
function Logged ()
{
return $_SESSION ['autorizado'];
}
function Login ($usuario, $password)
{
$id = mysql_query ("SELECT id, nombre, password FROM usuarios WHERE
usuario = '{$usuario}'");
if ($rs = mysql_fetch_array ($id))
{
if ($rs ['password'] == sha1($password))
{
$_SESSION ['autorizado'] = 1;
$_SESSION ['usuario'] = $rs['id'];
$_SESSION ['nombre'] = $rs ['nombre'];
return true;
}
}
return false;
}
function Logout ()
{
// Elimina la cookie de sesión.
if (isset($_COOKIE[session_name()]))
{
setcookie(session_name(), '', time()-42000, '/');
}
// Finalmente, destruye la sesión.
session_destroy();
// Reestablece variables de sesión.
$_SESSION = array();
$_SESSION ['autorizado'] = 0;
// Redirige a la página anterior si HTTP_REFERER ha sido usada por
el navegador
$url = !empty($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] :
"index.html";
header ("Location: {$url}");
exit;
}
function Restringir ()
{
if (!Acceso::Logged ())
{
header ("Location: login.html");
exit;
}
}
}
?>
Para habilitar el acceso a un usuario para que se identifique, basta que
crees un formulario que envíe el usuario y la contraseña a otro archivo que
ejecutará "Acceso::Login ($_POST['usuario'], $_POST['password']);". Recuerda
que la contraseña la valida con SHA1. Usa como ejemplo la consulta SQL para
crearte la tabla (quizás necesitas adaptar una conexión MySQL a tus
necesidades, lo que hay es sólo un ejemplo)
Por otro lado, si quieres puedes registrar en la $_SESSION más variables que
te puedan ser útiles para mostrar información del usuario (en mi caso con el
campo nombre me basta).
Espero te sirva, disfrutala!
El día 24/10/07, Juan Jorge Muñoz Herrero <[EMAIL PROTECTED]> escribió:
>
> si de verdad no tienes ni idea de php esa es la mejor opción, otra cosa es
> que veas que en un futuro te puedan seguir saliendo proyectos que
> requieran
> esa funcionalidad y ya te convenga aprender, en ese caso necesitas saber
> manejo de sesiones y algo de tratamiento de bases de datos, para poder
> gestionar a los usuarios y esas cosas. Por otro lado también puedes pedir
> presupuesto a algún programador php, aunque no le ganes tanto dinero
> tampoco
> pierdes el tiempo, que al final es lo mismo...
> saludos ;D
>
> El día 24/10/07, LDG. Sergio Espinosa <[EMAIL PROTECTED]> escribió:
> >
> > Hola, saludos a todos los participantes de esta lista.
> > Tengo un pequeño problema, y es que necesito hacer un sitio que tenga
> unas
> > secciones restringidas sólo para usuarios. El problema es que no tengo
> > idea
> > de php (con xhtml y css me llevo bastante bien) y me han sugerido que lo
> > haga por medio de Mambo, Joomla o algún otro cms. Alguna sugerencia? De
> > antemano, gracias!
> > _______________________________________________
> > Lista de distribución Ovillo
> > Para escribir a la lista, envia un correo a [email protected]
> > Puedes modificar tus datos o desuscribirte en la siguiente dirección:
> > http://lists.ovillo.org/mailman/listinfo/ovillo
> >
>
>
>
> --
> Juan Jorge Muñoz Herrero
> http://www.taarq.com
> (0034) 635 10 7142
> _______________________________________________
> Lista de distribución Ovillo
> Para escribir a la lista, envia un correo a [email protected]
> Puedes modificar tus datos o desuscribirte en la siguiente dirección:
> http://lists.ovillo.org/mailman/listinfo/ovillo
>
Saludos,
--
Philipp Keweloh
[EMAIL PROTECTED]
_______________________________________________
Lista de distribución Ovillo
Para escribir a la lista, envia un correo a [email protected]
Puedes modificar tus datos o desuscribirte en la siguiente dirección:
http://lists.ovillo.org/mailman/listinfo/ovillo