Избегать видеть страницу, не происходя из-за index.php

У меня есть один index.php что является формуляром login, и который в правильное существо пользователь и password direcciona в другую страницу. Проблема состоит в том, что, если я вхожу в другую страницу, я могу видеть ее, не сойдя раньше за login и хочу, чтобы, чтобы видеть эту страницу, его потребовали, если, или если происходить из-за index.php какая-то идея, чтобы это осуществлять?

Я оставляю им index.php

<?php
    require('conexion.php');

    session_start();

    if(isset($_SESSION["id_usuario"])){
        header("Location: welcome.php");
    }

    if(!empty($_POST))
    {
        $usuario = mysqli_real_escape_string($mysqli,$_POST['usuario']);
        $password = mysqli_real_escape_string($mysqli,$_POST['password']);
        $error = '';

        $sha1_pass = sha1($password);

        $sql = "SELECT * FROM tbl_login WHERE email = '$usuario' AND password = '$sha1_pass'";
        $result=$mysqli->query($sql);
        $rows = $result->num_rows;

        if($rows > 0) {
            $row = $result->fetch_assoc();
            $_SESSION['email'] = $row['email'];
            $_SESSION['password'] = $row['password'];

            header("location: descargar_excel.html");
            } else {

            $error = "Inicio de cuenta ha fallado. Verifique su nombre de usuario y clave.";
        }
    }
?>
<html>
    <head>
        <title>Iniciar sesión</title>
               <link rel="stylesheet" type="text/css" href="css2.css">
    </head>

    <body style="background-color:#FFFFFF;">
                          <center>
                          <img src="ic_launcher.png">



        <form action="<?php $_SERVER['PHP_SELF']; ?>" method="POST" > 

                        <div id="h1">Iniciar sesión</div>
                         <section>
            <div><input class="form-element form-field" id="usuario" name="usuario" placeholder="Usuario" type="text" ></div>

                          </section>

                          <section>
            <div><input class="form-element form-field" id="password" name="password"  placeholder="Contraseña" type="password"></div>

                         </section>

                          <section>
            <div><input class="form-element form-button" name="login" type="submit" value="Siguiente" id="button"></div> 
                           </section>
        </form> 

        <div style = "font-size:16px; color:#00695C;"><?php echo isset($error) ? utf8_decode($error) : '' ; ?></div>



</center>

    </body>
</html> 

Я оставляю их где direcciona, если правилен login

<!DOCTYPE html>
<html>

    <head>
        <meta charset="utf-8" />

        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />

        <title>REPORTE EXCEL</title>
        <meta name="description" content="" />
        <meta name="author" content="Swnk" />

        <meta name="viewport" content="width=device-width; initial-scale=1.0" />

           <link rel="stylesheet" type="text/css" href="css2.css">
    </head>

    <body  style="background-color:#FFFFFF;">
              <center>
        <div>
            <header>

            </header>
                              <center>
                                      <div id="h1">Reporte encuesta en excel</div> 
             <section>           
            <div>
                    <a href="reporteexcel.php"><FONT COLOR="#004D4">Haz clic para descargar el reporte</FONT></a>
            </div>
                         </section>

                          <section>
                         <a href="logout.php"><FONT COLOR="#004D4">Salir</FONT></a>
                         </section>
        </div>


                </center>

    </body>
</html>
1
задан 24.01.2017, 21:08
0 ответов

Чтобы защищать твою страницу descargar_excel.html ты должен подтверждать, существует ли сеанс тот, который создается, когда пользователь инициализирует сеанс, в случае, что не существовал сеанс, мы пересылаем index.php (login).

descargar_excel.html

//Arrancamos la sesión
session_start();
//Comprobamos existencia de sesión
if (!isset($_SESSION['email']) && !isset($_SESSION['password'])) {
   header('loacation:index.php');
}
<!DOCTYPE html>
<html>
//Etc.
4
ответ дан 03.12.2019, 17:31
  • 1
    Я добавляю твою подсказку, но оно не функционирует... я это поместил наверху HTML, который содержит другую страницу –  24.01.2017, 21:06
  • 2
    @FelixBeeb ой, что añ adir session_start();, чтобы загружать sesió n, я забываю себе в моем примере, обновляю тебя ответ. –  24.01.2017, 21:12
  • 3
    ах функционировавший, спасибо! –  24.01.2017, 21:14
  • 4
    ¡ Я радуюсь друг, приветствие! –  24.01.2017, 21:15
  • 5
    @D.Bulten, если моя страница, в которую они могут входить из-за url, и которую я не хочу, что они вошли, не раньше инициализируя сеанс, - .html, как я могу делать ему?? этот код, где я должен помещать это? –  05.09.2018, 23:50