对于简单的登录系统,每当用户收到错误时,我都会将它们重定向到另一个页面(使用标题(Location:.))并将错误ID放在URL中,以便我知道要显示哪个错误。
login.php
<?php
if(isset($_GET[ 'status'])){
if($_GET[ 'status']=='error' ){
?>
<p style='color:red;'>Incorrect Username/Password combination!</p>
<?php
} }
?>
Checklog.php
<?php
include('../dbconnect.php');
$username =$_POST['form-username'];
$pwd =$_POST['form-password'];
$result = mysql_query("SELECT * FROM member WHERE email='$username' and password='$pwd'") or die ('Query failed:'.mysql_error());
//$admin=mysql_query("SELECT * FROM admin where user='$username' and code='$pwd'") or die ('Query failed:'.mysql_error());
if (mysql_num_rows($result)>0){
session_start();
$_SESSION['user']=$username;
//echo "hello $username";
header("Location:../homepage.html");
}
/*else if (mysql_num_rows($admin)>0){
session_start();
$_SESSION['admin']=007;
header("Location:add1.php");
}*/
else
{
header("Location:login.php?status=error");
}
mysql_free_result($result);
mysql_close($con);
?>
在刷新错误消息时,是否有一种解决方案:如果用户刷新,我可以将用户重定向到原始的login.php而不需要错误消息。
发布于 2016-01-04 17:40:00
您可以在文档完全加载后使用javascript window.history.pushState来更改URL。这将改变地址栏中的URL,并在刷新时影响到它们被带到的地址。
或者,您可以将消息存储在$_SESSION中,并在消息显示后清除它。
发布于 2016-01-04 18:09:56
我同意亨利的回答。就个人而言,id使用$_SESSIONS,但正如您的问题是删除url参数一样,惟一的方法是js。
例如
history.pushState(null,null, window.location.href.split('?')[0]);这是未经测试的,但应该在一行代码中执行您想要的操作。
https://stackoverflow.com/questions/34596561
复制相似问题