New question

Question:

Date: 11-09-2020 11:00:52 (In Spanish)

¿Cómo puedo ocultar una página si la buscan directo desde la url?[Unresolved]

Estoy haciendo un sistema para validar las personas que ingresan a un modulo especifico.
El sistema solicita una clave de acceso que yo les genero, por ejemplo la página del formulario es el index.html y cuando completan e introducen la clave correcta los lleva a view.html, el problema está en que si una persona pone en la url directamente view.html, pueden ingresar sin pasar por el formulario.
Como puede hacer para si alguien conoce la URL view.html, al ingresarla en el navegador lo redirija al index.html

Gracias por su ayuda

Tags: Namespace php - Nginx - PHP - Question - Start in Programming Votes: 0 - Answers: 3 - Views: 8 Share on: Google Facebook Twitter LinkedIn Link
 

Answers:

  • Date: 14-09-2020 13:03:13 Hola Jonathan te recomiendo usar session_start() en PHP.
    Igualmente te dejo este link espero que te ayude.
    ¿Comó restringir el acceso por URL a una página? [cerrada]
    Saludos
      Votes: 3 - Link answer
     
  • Date: 14-09-2020 18:54:07 Hola Jonathan, voy a tratar de darte una forma simple de hacerlo con PHP.

    Básicamente tenes que cambiar la extensión de los archivos .html por .php (para que sean parseados por el modulo php), y despues hacer una validación de sesión desde php... veamos algo de código:

    Al momento de loguear al usuario podes guardar en sesión un flag de "usuariologueado" en true, algo como:
    session_start();
    $_SESSION['usuariologueado'] = true;
    


    Y dentro de cada página que tiene que estar restringida por el login, puedes poner algo como lo siguiente. Si NO esta seteado el valor en sesión, ó NO tiene el valor de login "true", asumo que no esta logueado, entonces lo envio al login.php con el "header location".
    <?php
    session_start();
    if(!isset($_SESSION['usuariologueado']) || !$_SESSION['usuariologueado']){
        header('Location: /login.php');
        exit;
    }
    //a partir de aquí tu página html solo visible para quien esté logueado....
    


    Nota: recuerda que antes de hacer uso de la sesión de php debe inicializar la sesión o retomar la existente con session_start(); https://www.php.net/manual/es/function.session-start.php
    Nota 2: recuerda siempre que luego de hacer un header location debes cortar el script con un "exit;" porque sino se seguirá ejecutando el script actual (cosa que no quieres).

    Espero que mi respuesta te ayude.

    Saludos y buen código!
      Votes: 3 - Link answer
     
  • Date: 19-09-2020 06:35:15 Esta opción sirve aunque no uses sesiones (digamos que no es un sistema con login o que debes ocultar una página que existe ANTES del login). Si escriben directamente el nombre de la página:
    //Digamos que tu pagina se llama pagina.php
    if (preg_match("/pagina.php/i", $_SERVER['PHP_SELF'])) {
        Header("Location: index.html");
        die();
    }

    La redirección es hacia index.html, Es importante incluir el die() para que no se siga ejecuntando nada de esa página.
      Votes: 0 - Link answer
     
To actively participate in the community first must authenticate, enter the system.Sign In