Javascript 使用php禁止用户在注销后返回上一页,而不禁用浏览器上的“后退”按钮
我正在为我的作业创建一个简单的登录和注销,我正在使用$\u会话显示当前登录用户数据库中的用户名。登录和注销正在工作,但当按下浏览器的“后退”按钮时,它将返回到我以前注销的页面。因为在我注销时它已经被破坏了,当按下后退按钮时它会输出一个错误 尝试禁用“后退”按钮,但效果不佳,用户可能认为网页已损坏 samp.phpJavascript 使用php禁止用户在注销后返回上一页,而不禁用浏览器上的“后退”按钮,javascript,php,html,Javascript,Php,Html,我正在为我的作业创建一个简单的登录和注销,我正在使用$\u会话显示当前登录用户数据库中的用户名。登录和注销正在工作,但当按下浏览器的“后退”按钮时,它将返回到我以前注销的页面。因为在我注销时它已经被破坏了,当按下后退按钮时它会输出一个错误 尝试禁用“后退”按钮,但效果不佳,用户可能认为网页已损坏 samp.php <?php session_start(); if(isset($_POST['botLogin'])) { $host = 'localhost'; $u
<?php
session_start();
if(isset($_POST['botLogin']))
{
$host = 'localhost';
$user = 'root';
$pass = '';
$db = 'db_name';
$conn = new mysqli($host, $user, $pass, $db);
$username = $_POST['username'];
$password = $_POST['password'];
$result = $conn->query("SELECT * FROM tbl_name WHERE col_userName = '$username' AND col_custPass = '$password' ");
if(mysqli_num_rows($result)==1)
{
$_SESSION['session_var_user'] = $username;
header('Location:samp2.php');
}
else
{
echo "Username or password mismatch";
}
}
?>
<form action = "samp.php" method="post">
<input type = "text" name = "username" placeholder="username">
<input type = "text" name = "password" placeholder="password">
<input type = "submit" name = "botLogin" value = "login">
</form>
解决方案很简单,在samp2.php中替换“session_start();”用下面的代码
此代码将检查会话是否存在,如果不存在,则将用户重定向到登录页面谢谢回答cg先生的问题。我刚刚创建了一个没有导航栏的登录页面,甚至我按下了后退按钮,它也不会显示错误未定义的索引,它只会返回到登录页面
记录它的过程
if($row['col_userName'] == $username AND $row['col_custPass'] = $password){
$_SESSION['session_var_user'] = $username; // I created the session variable
echo "
<script>
window.location.href = 'index.php';
</script>
";
}else{echo "failed";}
if($row['col\u userName']=$userName和$row['col\u custPass']=$password){
$\u SESSION['SESSION\u var\u user']=$username;//我创建了SESSION变量
回声“
window.location.href='index.php';
";
}否则{echo“失败”;}
导航栏中的代码
<li class="nav-item">
<a class = "justtextstyle" href="#">
<?php
if(!isset($_SESSION['session_variable']))
{
echo "<a class = 'justtextstyle' href='login.php'>Log In Here</a>";
}
else
{
echo "Hi," . $_SESSION['session_variable'];
}
?>
</a>
</li>
";
}
其他的
{
回显“Hi,.$”会话[“会话变量];
}
?>
我问题中的代码是不同的,但想法相同,因为那是实验性的php文件,这是我的实际任务。我总是先做实验性文件,因为我不想弄乱原始文件lol
或者尝试将其放在导航栏中,表示如果未设置会话,它将重定向到索引,因为会话只有在成功登录后才会设置,如果您注销会话,即使您按下“上一步”按钮,它也不会返回到上一页,因为会话仍然未设置。您可以重定向它们if(empty($\u SESSION['SESSION\u var\u user']){header(…)
。您应该散列用户密码并参数化该查询。它是sql可注入的,使用纯文本密码是一个很大的安全漏洞。
if($row['col_userName'] == $username AND $row['col_custPass'] = $password){
$_SESSION['session_var_user'] = $username; // I created the session variable
echo "
<script>
window.location.href = 'index.php';
</script>
";
}else{echo "failed";}
<li class="nav-item">
<a class = "justtextstyle" href="#">
<?php
if(!isset($_SESSION['session_variable']))
{
echo "<a class = 'justtextstyle' href='login.php'>Log In Here</a>";
}
else
{
echo "Hi," . $_SESSION['session_variable'];
}
?>
</a>
</li>