Как работает редирект после публикации?
Возможный дубликат:
Кнопка "Назад" повторно отправляет данные формы ($_POST)
некоторые парни предлагают мне вместо того, чтобы редактировать вопрос, поставить его как новый вопрос, поэтому я делаю это...
<?php
session_start();
if(isset($_POST['username']) && ($_POST['password']))
{
$con=mysql_connect("localhost","root","");
if(!$con)
{
die('Could Not Connect:'.mysql_error());
}
mysql_select_db("tcs",$con);
$usr=$_POST["username"]; //pick username from login page
$pwd=hash('sha1',$_POST['password']); //pick password from login page and use hash algorithm to encrypt it
$query="select * from employee where Username='$usr' and Password='$pwd'"; //serch that single row in which both r found
$result=mysql_query($query,$con);
if ($result)
{
$row=mysql_fetch_array($result);
if (($row["Username"]==$usr) && ($row["Password"]==$pwd))
{
$_SESSION['employee']['id']=$row['User Id'];
$_SESSION['employee']['username']=$row['Username'];
}
else
{
echo "Login Not Successfull";
}
}
}
else
{
echo 'Error! Username & Password were not sent!';
}
$_SESSION['user_authenticated'] = true;
?>
<html>
<body bgcolor="black">
<?php
if($_SESSION['user_authenticated'])
{
echo "<font color=red>"."<h3 align=center>"."Welcome ".$_SESSION['employee']['username']."</h3>"."</font>";
echo "<br />"."<a href='upload_file.php'>"."<font color='white'>"."<h4>"."Up-Load Files"."</h4>"."<font>"."</a>";
echo "<br />"."<br />"."<a href='list_files.php'>"."<font color='white'>"."<h4>"."List All Up-Loaded Files"."</h4>"."<font>"."</a>";
}
?>
</font>
<a href="logout_file.php"><font color="white"><h3 align="right">Sign Out</h3></font></a>
<font color="white">
</body>
</html>
Хорошо, теперь я понял. Но есть еще одна проблема. Предположим, я на странице входа в систему, на которой есть ссылка для выхода. Когда я нажимаю на кнопку выхода, меня перенаправляют на страницу входа. нет проблем, но опять же, если я снова нажму кнопку "Назад", меня попросят повторно отправить данные (даже после выхода из системы), и снова я нахожусь на странице входа в систему, почему так. Это неправильно. Что делать? Для всех остальных страниц, например, если я нажимаю кнопку выхода из кнопки загрузки -> перенаправляется на вход, и если я нажимаю кнопку возврата, это показывает, что вы вышли из системы. Я не знаю, как проверить выход переменной сеанса для подписи
как Феликс сэр сказал мне, чтобы проверить это http://www.thefutureoftheweb.com/blog/get-redirect-after-post
но на самом деле я не понимаю, что говорит этот парень. Извините, я не настолько механичен, потому что я начинающий, я знаю, с какой проблемой я сталкиваюсь...
насколько я знаю
if (count($_POST)) { //checking how many time data is being resend.
// process the POST data
add_comment($_POST); //what this function do i dont know
// redirect to the same page without the POST data
header("Location: ".$_SERVER['PHP_SELF']); //i think it is like
//refreshing without get input again from allpication form
die;
}
Пожалуйста, объясните, особенно что это $_server(;PHP_SELF)