从网址

时间:2016-01-04 17:28:15

标签: php

这是一个简单的登录系统,任何时候用户收到错误我将它们重定向到另一个页面(使用标题(位置:...))并将错误ID放在URL中,以便我知道哪个错误显示。

的login.php



<?php
if(isset($_GET[ 'status'])){
  if($_GET[ 'status']=='error' ){ 
?>
<p style='color:red;'>Incorrect Username/Password combination!</p>
<?php 
} }
?>
&#13;
&#13;
&#13;

Checklog.php

&#13;
&#13;
<?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);
?>
&#13;
&#13;
&#13;

在刷新时,错误消息仍然在这里,是否有一个解决方案如何将用户重定向到原始login.php而不刷新错误消息

2 个答案:

答案 0 :(得分:1)

您可以使用javascript window.history.pushState在文档完全加载后更改URL。这将更改地址栏中的URL并影响刷新时的地址。

或者,您可以在$_SESSION中存储消息,并在消息显示后清除消息。

答案 1 :(得分:0)

我同意henrys的回答。个人id使用$ _SESSIONS,但正如你的问题是删除url参数唯一的方法是js。

例如

history.pushState(null,null, window.location.href.split('?')[0]);

这是未经测试的,但应该在一行代码中执行您想要的操作。