Está bien, voy a explicar cómo el concepto básico va y una aplicación muy sencilla para poner las cosas en marcha.
PHP (y la mayoría de las aplicaciones web) confían en los servicios RESTful, lo cual nos preocupa que cada solicitud no esté vinculada remotamente a ninguna otra solicitud, ya sea por el mismo usuario u otros.
¿Qué significa eso?
Esto significa que para cada solicitud, debe hacer sus comprobaciones. Debe asegurarse de que el usuario tenga permisos para ejecutar esa página o, incluso con menos severidad, ver su contenido.
¿Cómo se consigue esto?
De muchas maneras, en realidad. Hay muchas técnicas utilizadas para aplicar la autorización en las aplicaciones web, pero básicamente se dividirían en dos, ya sea centralizadas o descentralizadas.
- centralizada
Esto significa que todas sus acciones (y controladores) están siendo manejados a través de un único archivo. Di index.php. Este archivo incluiría o delegaría sus tareas en otros archivos (que no son ejecutables por sí mismos a través de solicitudes normales) según los parámetros de solicitud. Este es un enfoque muy popular, pero no exactamente sencillo para los nuevos desarrolladores. Los ejemplos de aplicaciones que utilizan este enfoque tendrían URL del tipo: index.php? Do = register, index.php? Do = login, index.php? Do = showtopic & topic_id = 2, y así sucesivamente.
Una simple aplicación de esta técnica sería algo así:
<?php
// index.php
define('RUNNING_APP', true);
// 1. place your auth code here, or...
switch ($_REQUEST['do']) {
case 'register':
// 2. or here
include 'inc/register.php';
break;
case 'do_register':
// 2. and here, and before every include.. and so forth.
include 'inc/do_register.php';
break;
}
?>
<?php
// inc/register.php
defined('RUNNING_APP') or die('Cannot access this script directly'); // make sure to break direct access
?>
<form action="index.php?do=do_register">
<!-- form elements -->
</form>
y así sucesivamente.
He documentado a dónde debería ir el código de autenticación habitual.
- descentralizada
uso de este enfoque, sin embargo, su código de autorización debe ir al principio de cada archivo. Las URL de aplicaciones de este tipo suelen tener el siguiente aspecto: register.php, login.php, etc. El principal problema aquí es que debe realizar toda la lógica de autenticación por archivo, como se indicó anteriormente, y puede ser un trabajo agitado si sus archivos aumentan en cantidad. Una solución conveniente es tener esa lógica en un solo archivo, e incluir ese archivo (que mataría la solicitud de personal no autorizado) antes de cualquiera de su lógica. Un ejemplo sencillo sería:
<?php
// index.php
include('inc/auth.php');
// index logic
?>
<?php
// register.php
include 'inc/auth.php';
// register logic
?>
<?php
// inc/auth.php
$logged_in = false;
if (!$logged_in) {
die ('You do not have permission to access this page. Please login');
}
?>
este es el ive tutoral estado siguiendo hasta ahora y no creo que su trabajo http://www.phpeasystep.com/phptu/6.html – Crash893
Tal vez leí mal la pregunta, ¿necesita un sistema de inicio de sesión de usuario completo (por ejemplo, los diferentes usuarios necesitan ver cosas diferentes) o simplemente no desea que todos puedan ver su sitio? En mi opinión, .htaccess es el camino a seguir. – williamg
Me gustaría llegar al punto en el que puedo tener usuarios y administradores y usuarios avanzados – Crash893