2016-01-04 3 views
1

Это для простой системы входа в систему, когда пользователь получает сообщение об ошибке. Я перенаправляю их на другую страницу (используя заголовок (Location: ...)) и помещаю идентификатор ошибки в URL-адрес, чтобы Я знаю, какую ошибку отображать.Удалить переменную из 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); 
 
?>

На обновить MESSA ошибке ge все еще здесь, есть ли решение, как я могу перенаправить пользователя в исходный login.php без сообщения об ошибке, если он обновит

+0

Чтобы сделать это при обновлении, вам нужно как-то сохранить, что он уже просматривал его один раз. Таким образом, вы можете установить сеанс или обновить таблицу базы данных, в которой говорится, что ошибка уже просмотрена. – spencdev

ответ

1

Вы можете использовать javascript window.history.pushState, чтобы изменить URL-адрес после полной загрузки документа. Это изменит URL-адрес в адресной строке и повлияет на адрес, на который они были сделаны для обновления.

В качестве альтернативы вы можете сохранять сообщения в $_SESSION и очищать сообщение после его отображения.

0

Я согласен с ответом henrys. Лично ID использует $ _SESSIONS, но поскольку ваш вопрос заключается в удалении параметров URL, единственным способом будет js.

Например

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

Это тестировался, но должен делать то, что вы хотите в одной строке кода.

Смежные вопросы