A menudo sucede que es necesario dividir a los visitantes en deseables e indeseables, y dar la oportunidad de ver algunas páginas del sitio solo a aquellos que tienen un nombre de usuario y una contraseña. ¿Cómo hacer esto, por ejemplo, en el lenguaje de programación del lado del servidor PHP?
Instrucciones
Paso 1
Organicemos la forma más fácil de proteger sus páginas de visitantes no autorizados. El portador de la información sobre si el visitante está autorizado será la sesión. Una sesión es un análogo de las cookies en un navegador, con la única diferencia de que no se crean en nuestra computadora, sino en el servidor. Y se utilizan con el mismo propósito que las cookies: almacenar información diferente sobre nosotros mientras vamos de una página a otra de un sitio. Cuando cerramos el navegador, el servidor destruye esta sesión y la próxima vez que iniciamos sesión, crea una nueva. Usamos este mecanismo de servidor para registrar si el usuario ya inició sesión en la sesión o no. Al leer esta información, cuando un visitante solicita una página, el script php abrirá el acceso a páginas protegidas con contraseña u ofrecerá ingresar un nombre de usuario y contraseña.
Paso 1: Cree una página para ingresar el nombre de usuario y la contraseña. El código HTML del formulario de autorización en su forma más simple puede verse así:
Acceso:
Contraseña:
Aquí (al principio del archivo) agregaremos php-code que verificará la exactitud del nombre de usuario y la contraseña ingresados por el visitante. Al principio escribiremos:
session_start ();
Este comando inicia una nueva sesión si aún no se ha creado una para este visitante.
Luego, verifiquemos si la sesión tiene una variable llamada 'nombre de usuario'; almacenará el nombre si el visitante ya ha iniciado sesión. Si existe dicha variable, redirija al visitante a la página principal (index.php) y termine de ejecutar este script php:
if ($ _ SESSION ['userName']) {
encabezado ("Ubicación: index.php");
Salida;
}
El resto del código se ejecutará solo si el usuario aún no ha ingresado el nombre de usuario y la contraseña correctos. Indiquemos qué nombre de usuario y contraseña deben considerarse correctos:
$ validName = '¡Soy mío!';
$ validPass = 'contraseña secreta';
Luego, verificamos si los valores enviados desde el formulario coinciden con los correctos. Dado que hemos especificado el método de transferencia de datos POST en el formulario, deben leerse desde la variable superglobal $ _POST:
if ($ _ POST ['userName'] == $ validName && $ _POST ['userPass'] == $ validPass) {
$ _SESSION ['userName'] = $ validName;
encabezado ("Ubicación: index.php");
Salida;
}
Aquí el código entre llaves {} se ejecutará con los valores correctos del nombre de usuario y la contraseña. En la línea $ _SESSION ['userName'] = $ validName; ma escribimos en la sesión una variable llamada 'userName' que contiene el inicio de sesión del usuario ahora autorizado. Esta será la señal de que el acceso está abierto para él en todas partes mientras su sesión actual sea válida.
Y en caso de que se ingresen datos incorrectos en el formulario, agregue el mensaje correspondiente:
más echo"
¡El inicio de sesión o la contraseña son incorrectos!
;
Todo el código que debe guardarse en un archivo llamado login.php se verá así:
<? php
session_start ();
if ($ _ SESSION ['userName']) {
encabezado ("Ubicación: index.php");
Salida;
}
$ validName = '¡Soy mío!';
$ validPass = 'contraseña secreta';
if ($ _ POST ['userName'] == $ validName && $ _POST ['userPass'] == $ validPass) {
$ _SESSION ['userName'] = $ validName;
encabezado ("Ubicación: index.php");
Salida;
}
más echo"
¡El inicio de sesión o la contraseña son incorrectos!
;
?>
Acceso:
Contraseña:
Paso 2
Paso 2: Cree un bloque de autorización: un archivo separado que se conectará a cada página que necesite protección con contraseña. Este archivo contendrá sólo código php, por lo que su extensión será "php", y le daremos un nombre de acuerdo con la tradición para tales archivos - "auth", es decir, "auth.php". Y aquí, también, inmediatamente después de la etiqueta de apertura <? Php, debería haber una instrucción para iniciar una sesión:
session_start ();
Podemos leer todas las variables que están almacenadas en la sesión desde la matriz superglobal $ _SESSION. Necesitamos verificar el valor de la variable "userName"; si el visitante aún no ha iniciado sesión, entonces no estará en la matriz y lo redirigiremos a la página para ingresar su nombre de usuario y contraseña:
if (! $ _ SESSION ['autorizado']) {
encabezado ("Ubicación: login.php");
Salida;
}
Todo el código que debe guardarse en el archivo auth.php se verá así:
<? php
session_start ();
if (! $ _ SESSION ['admin']) {
encabezado ("Ubicación: enter.php");
Salida;
}
?>
Paso 3
Paso 3: después de guardar estos archivos en el servidor, permanecerán en todas las páginas php que deben protegerse de usuarios no autorizados para conectar el bloque de autorización. Es decir, al comienzo de cada archivo php, deberá insertar este código:
<? php
requiere "auth.php";
?>
Y para cambiar la contraseña de acceso, deberá cambiar los valores de estas variables en el archivo login.php:
$ validName = '¡Soy mío!';
$ validPass = 'contraseña secreta';
$ validName - inicio de sesión, $ validPass - contraseña.