Php 如何在单击“刷新”按钮后保持登录状态
我是php新手,我想添加一个功能,这样每当用户填写表单并登录时,php代码都可以正常运行,但刷新页面后,用户必须再次填写表单。我不懂代码,也不知道进一步的知识。我尝试过谷歌搜索,但我只看到以下几种解决方案: 标题(刷新:5,url:url); 或 元标记 它会自动刷新,但不会在单击“刷新”按钮后刷新 这是我的php代码:Php 如何在单击“刷新”按钮后保持登录状态,php,html,Php,Html,我是php新手,我想添加一个功能,这样每当用户填写表单并登录时,php代码都可以正常运行,但刷新页面后,用户必须再次填写表单。我不懂代码,也不知道进一步的知识。我尝试过谷歌搜索,但我只看到以下几种解决方案: 标题(刷新:5,url:url); 或 元标记 它会自动刷新,但不会在单击“刷新”按钮后刷新 这是我的php代码: <html> <head> <link rel="stylesheet" type="text/css" href="services.c
<html>
<head>
<link rel="stylesheet" type="text/css" href="services.css"/>
<link rel="stylesheet" type="text/css" href="bootstrap-css/bootstrap.css"/>
<link rel="stylesheet" type="text/css" href="bootstrap-3.3.5-dist/css/bootstrap.min.css">
<script type="text/javascript" src="validate.js"></script>
<style>
a{
color: dodgerblue;
}
a:hover{
color: dodgerblue;
font-size: 101%;
}
span{
font-size: 110%;
line-height: 8px;
font-style: bold;
margin-left: 50px;
}
body{
background-color: #F0F0F0 ;
}
button{
margin-left: 15px;
}
</style>
</head>
<body link="slateblue">
<div id="LogIn"><b>Log In</b></div><br>
<form method="post" onsubmit="return logInPass()" action="log.php">
<div class="col-xs-4"/>
<label for="usr">Email:</label>
<input id="usrEmail" name="usrEmail" type="email" class="form-control" size="25%" placeholder="sample@example.com"/>
</div>
<br><br><br><br>
<div id="PasswordField" class="col-xs-4"/>
<label for="u_pswd">Password:</label>
<input id="u_pswd" type="password" class="form-control" size="25%" placeholder="Enter alteast 8 characters" />
</div>
<br><br><br><br>
<button id="submit" name="checkout" class="btn btn-primary" type="submit" value="submit">Log In</button>
</form>
<br><br>
<a href="SignUpForm.html" target="form"><span>Not a part of GameRangers? Click here for Sign Up!</span></a>
<br>
</body>
</html>
<?php
echo "<style>body{font-family: segoe ui; font-size: 110%;}</style>";
session_start();
$_SESSION['username'] = $_POST['usrEmail'];
echo"Welcome ".$_SESSION['username']."<br><br>";
echo "Today is ".date("Y-m-d")."<br>".date("h:i:sa")."<br>";
?>
a{
颜色:淡蓝色;
}
a:悬停{
颜色:淡蓝色;
字体大小:101%;
}
跨度{
字体大小:110%;
线高:8px;
字体风格:粗体;
左边距:50像素;
}
身体{
背景色:#f0;
}
钮扣{
左边距:15px;
}
登录
电邮:
密码:
登录
使用会话或cookie存储登录状态
成功登录后,设置会话变量或cookie
然后检查会话变量或cookie是否已设置且为预期值,然后将用户保持在页面上。否则,重定向到登录 同时将会话_start()保留在页面的开头
编辑以使OP更清晰 在页面开头添加
session\u start()
。验证用户名和密码后,如果是现有用户,请使用以下代码设置会话
$_SESSION['u_name'] = $_POST['usrEmail'];
session_start();
if(!isset($_SESSION['u_name']))
{
header('location:login.php?redirect='.$_SERVER['REQUEST_URI']);
exit;
}
否则,重定向到登录页面
然后在所有特定于用户的页面(只有登录用户才能访问的页面)上粘贴以下代码
$_SESSION['u_name'] = $_POST['usrEmail'];
session_start();
if(!isset($_SESSION['u_name']))
{
header('location:login.php?redirect='.$_SERVER['REQUEST_URI']);
exit;
}
希望这会有所帮助。使用
会话
:
session_start(); // in top of PHP file
...
$_SESSION["userName"] = $userName;
在您的页面中
session_start();
if(isset($_SESSION["userName"]) && $_SESSION["userName"] != ''){
//redirect to logged in page
}
首先,您要在标题前输出
session_start()的位置代码>
当您使用会话存储用户名时,请将其作为第一行放在您的开头下。此会话可以在if条件下使用,就像我在这里使用的一样:
<div id="nav1">
<?php session_start();
if($_SESSION['id']=='')
{
?>
<font style="font-size:16px; font-weight:bold; color:#063443;">Welcome, Guest <a href="Login.php" >SignIn</a></font>
<?php }
else
{ ?>
<font style="font-size:16px; font-weight:bold; color:#063443;">Welcome, <?php echo $_SESSION['name'];?> <a href="signout.php" >SignOut</a> <a href="accinfo.php">My Account</a></font>
<?php }
?></div>
欢迎光临,客人
欢迎
在这里,我在会话[Id]中存储了用户Id,这将成为显示用户登录或不登录的条件。根据您的编辑,此处没有足够的代码:您在标题之前输出。我实际上已删除了标题。它不正确。有什么强烈的建议吗?您需要向我们显示所有页面的完整代码,包括html表单。我还发布了一个答案(20多分钟前,截至此评论),但你还没有对此发表评论,我也不知道这对你是否有效。log.php:logInForm.html:这真的是一个评论,那么我能留在mypage.php上吗?是的。确保将该值存储到正确的会话变量或cookie中,然后检查其是否已设置且不为null。否则,重定向到登录页面。“如果会话变量或cookie设置为isset且为预期值,则将用户保留在页面上…”这就是我不知道如何做到的。我已使用会话变量的方法更新了我的答案。请检查。我使用了与您在我的代码中看到的完全相同的代码,但在刷新之后,php代码表单将被加载。显然,我不想再次填写详细信息。
<div id="nav1">
<?php session_start();
if($_SESSION['id']=='')
{
?>
<font style="font-size:16px; font-weight:bold; color:#063443;">Welcome, Guest <a href="Login.php" >SignIn</a></font>
<?php }
else
{ ?>
<font style="font-size:16px; font-weight:bold; color:#063443;">Welcome, <?php echo $_SESSION['name'];?> <a href="signout.php" >SignOut</a> <a href="accinfo.php">My Account</a></font>
<?php }
?></div>