¿Cómo redirigir a un usuario al registro si no ha iniciado sesión?

No todo el contenido de un sitio web es accesible para todos los usuarios. Existen algunos contenidos confidenciales a los que solo pueden acceder los miembros autorizados.
Cuando un usuario busca un documento IEEE , IEEE.org muestra solo el resumen del documento. Para leer el documento completo, de acuerdo con el protocolo de la organización, el usuario requiere la autenticación de membresía de la organización. Por lo tanto, los no miembros serán redirigidos a la página de inicio de sesión. Es un acto de protección de la información y validación de los usuarios. 
Funciones y variables utilizadas: 
 

  • Sesión : la sesión es una base de datos temporal en una aplicación para capturar quién es el usuario y qué hace en cada página de la aplicación web. Esta información se almacena como variables a las que se puede acceder a través de varias páginas en una aplicación. Una vez que el usuario cierra el navegador, la base de datos se cancela.
  • Isset : función para verificar si una variable está configurada o no.
  • Encabezado : función utilizada para enviar información a través del encabezado HTTP al cliente o servidor.
  • Tiempo de espera: función de tiempo de espera en javascript utilizada para ejecutar una función después de un retraso de tiempo específico.

Ejemplo: tenemos que diseñar una resistencia, puede decir un filtro que evitará que el usuario que no inicia sesión visite el contenido confidencial.
Redirección de PHP a la página de inicio de sesión: el código basicpage.php muestra el contenido abstracto que cualquier usuario puede ver. Mientras que, cuando el usuario hace clic en leer más para ver todo el contenido, el programa verifica si el usuario ha iniciado sesión. En este programa, la variable de sesión inicio de sesión se usa para almacenar un token autenticado válido. La variable se valida si almacena un valor o no usando la función isset . Si no se establece un valor, se redirige al usuario a la página de inicio de sesión. El parámetro de ubicación dentro de la función de encabezado se usa para definir la página que se redirigirá cuando la condición se cumpla.
 

  • basicpage.php Código 
     

php

// To check if a user is logged in else,
// redirect to the login page.
<?php
 session_start();
 if(isset($_POST['read']))
{   
    if (!isset($_SESSION['loggedin']))
        {
                 header('Location: login.php');
            }
        else
            {
                 if (isset($_POST['read']))
                     {
                         header('location:https://www.geeksforgeeks.org/about/');       
                         session_destroy();
                     }
            }   
}
?>
<html>
 
<body>
    <img src="GFG.png" style="float:left;width:100px;height:100px;">
    <h1>GeeksForGeeks</h1>
    <h2>A computer science portal for geeks</h2>
     
<p>How many times were you frustrated while looking out for a</p>
 
     
<p>good collection of programming/algorithm/interview questions?
         
<p>What did you expect and what did you get?</p>
 
         
<p>This portal has been created to provide well written, </p>
 
         
<p>well thought and well explained solutions for selected questions.</p>
 
        <form action="basicpage.php" method="POST">
            <input type="submit" name="read" value="Read More..."
                   style="background-color:#4CAF50;
                          color:white;
                          padding:10px 25px;
                          text-align:center;
                          font-size:15px;
                          cursor:pointer;" />
        </form>
</body>
 
</html>
  •  

Página de inicio de sesión: La función session_start() utilizada aquí es transferir el contenido variable de una página (basicpage.php) a otra página.
Después del envío del formulario a través del método POST, si las credenciales de inicio de sesión son válidas, la variable se establece en TRUE. 
Usando la función de encabezado, la página se redirige a basicpage.php donde las variables de sesión se transfieren junto con la URI de solicitud HTTP. Esto permite al usuario ver todo el contenido cuando se vuelve a hacer clic en el botón Leer más en esa sesión. 
Con la función de tiempo de espera , la redirección de la página se ejecuta después de (1500 milisegundos) que se imprime el mensaje de validación de la página de inicio de sesión.
 

  • Código Loginpage.php 
     

php

// To Validate the user credentials and to sent
// session variables via HTTP request.
<?php
session_start();
if(isset($_POST['submit']))
{   
    if($_POST['password'] == "admin")
    {
        $_SESSION['loggedin'] = True;
        echo "Valid Token, GFG Authenticated User";?>
        <script>setTimeout(function(){window.location =
"http://localhost/GFG/basicpage.php";}, 1000);
        </script>
        <?php
    }
    else
    {
            echo "Not a Valid Token, Requires GFG Authentication to log in";?>
            <script>setTimeout(function(){window.location =
"http://localhost/GFG/basicpage.php";}, 4000);
            </script>
            <?php
    }
}
 
?>
<html>
 
<body>
    <h1 style="color:green">
      Requires Authentication Token to View Content
    </h1>
    <form method="POST" action="login.php">
        <strong>Password:</strong>
        <input type="password" name="password" id="password" />
        <input type="submit" name="submit" value="Log In"
               style="background-color:#4CAF50;
                      color:white;padding:10px 25px;
                      text-align:center;font-size:15px;
                      cursor:pointer;" />
        <br>
        <input type="checkbox" onclick="showPassword()">
          Show password
        <script>
            function showPassword() {
                var x = document.getElementById("password");
                if (x.type == "password") {
                    x.type = "text";
                }
            }
        </script>
    </form>
</body>
 
</html>
  • Durante la primera ejecución antes de iniciar sesión, se inició la sesión para esta aplicación. En ese caso, si el usuario hace clic en leer más en basicpage.php implica que la variable de sesión iniciada no está configurada (es decir, nulo). La página se redirige a loginpage.php. 
     
  • Si el usuario ingresa una contraseña incorrecta, la página se redirige a basicpage.php sin configurar la variable de sesión como verdadera y mostrando el mensaje de validación «No es un token válido, requiere autenticación GFG para iniciar sesión». 
    Ahora, si el usuario hace clic en leer más, nuevamente será redirigido a loginpage.php. 
     
  • En loginpage.php cuando el usuario ingresa la contraseña correcta admin . La variable de sesión, inicio de sesión se establece en verdadero y se redirige a basicpage.php después de mostrar el mensaje de validación «Token válido, usuario autenticado de GFG». Ahora, si el usuario hace clic en leer más, la página se redirige para ver todo el contenido.

Publicación traducida automáticamente

Artículo escrito por maha93427 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *