首页 > 解决方案 > PHP:如何防止用户在登录后单击返回按钮时进入登录页面?

问题描述

基本上,我不希望用户在成功登录系统后通过单击后退按钮访问登录页面。

下面是登录 check.php 的代码:-

<?php


include 'database.php'; 
session_start();                                            

if (isset ($_POST['namaPengguna']))
{                   
$kataLaluan = $_POST['kataLaluan'];
$namaPengguna = $_POST['namaPengguna'];

$query = "SELECT * FROM pengguna 
        WHERE namaPengguna='$namaPengguna' && kataLaluan = '$kataLaluan' ";

$result = $mysqli->query($query) or die($mysqli->error._LINE_);
$row = $result->num_rows; 
$info = $result->fetch_assoc(); 
$_SESSION['PenggunanoKP']=$info['PenggunanoKP'];

    if($row<1)  
    {
       header("Location:login design.php");
    }
    else{
         header("Location:pilihAction.php");
    }

}

?>

下一页:

<?php include 'database.php';
include 'session.php'; 
?>


<?php

echo $_SESSION['PenggunanoKP'];
?>
/*html code

标签: phpmysqllogin

解决方案


您的欢迎页面(登录后)应如下所示

<?php
  session_start();
  if(isset($_SESSION['directaccess']))
  {
    if(isset($_POST['logoutbtn']))
    {
        session_destroy();
        header("location: loginform.php");
    }
  /* Your code goes here */

  }
  else{
     exit('Access denied');
   }
  ?>

 <form class="myform" action="" method="post">  
 <input name="logoutbtn" type="submit" value="logout" class="sbbtn" 
  id="logout_btn" class="test"/>
 </form>
  </div>
 </body>
  </html>

Explanation : 在您的主登录/签入页面上:(in my example its $_SESSION['directaccess'])在调用标头函数之前在 $_SESSION 中设置一个标志(成功登录欢迎页面)。. 然后在您成功的欢迎页面上,使用上面的代码片段。检查是否设置了该标志,然后只允许访问您的页面代码 else exit('Access Denied')

注销按钮action应该在同一个欢迎页面上。如果单击按钮,则销毁会话,然后将标头函数调用回主登录/签入页面。


推荐阅读