我在我的页面index.php。从这里开始我链接到myform.php。
myform.php:
<?php
echo "My last visited page is:".$_SERVER['HTTP_REFERER'];
?>
<form action="success.php" method="post">
<p>Your name: <input type="text" name="name" /></p>
<p><input type="submit" /></p>
</form>
我在页面上看到的结果是:
My last visited page is http://www.mypage.com/index.php
现在我提交表格并成功.php。在这里,我点击“后退”按钮,然后再次访问myform.php。 我看到的结果现在是:
My last visited page is http://www.mypage.com/index.php
但我期望的是:
My last visited page is http://www.mypage.com/success.php
答案 0 :(得分:3)
您可以使用会话..
success.php的底部可以为会话分配页面名称
$_SESSION['page'] = $_SERVER['HTTP_REFERER'];
单击后退按钮时,您可以使用sessions(index.php)
获取该值echo $_SESSION['page'];
在底部的该页面上,您可以将当前页面名称分配给会话,然后它可以在下一页上进行跟踪
答案 1 :(得分:1)
后退按钮通过变量和页面刷新来做奇怪的事情。尝试在浏览器中输入http://www.mypage.com/myform.php地址,看看会发生什么。
N.B。我知道这只是一个评论,但声誉很痛苦。
答案 2 :(得分:1)
因为您需要将之前的信息带到转发页面。那么如果你使用session会更好。当您访问页面时,将此当前页面存储在会话变量中。在每页的底部添加此行。
$_SESSION['page'] = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
回应
<?php
echo "My last visited page is:".$_SESSION['page'];
?>
所以整个文字看起来像:
<?php
echo "My last visited page is:".$_SESSION['page'];
?>
<form action="success.php" method="post">
<p>Your name: <input type="text" name="name" /></p>
<p><input type="submit" /></p>
</form>
<?php
$_SESSION['page'] ="http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
?>
编辑:使用多个标签时要小心。仅存储最新信息。
答案 3 :(得分:1)
一种方法是,您可以通过使用PHP的_SERVER
全局来处理此问题,如果用户第一次访问您的网站,则不会有上一页,除此之外,上一页将被上次访问的页面标识为_SERVER
,请查看此脚本,
isset($_SESSION['current']) || $_SESSION['current'] = '';
// check for first visit to any page, initialize
if($_SERVER['SCRIPT_NAME'] != $_SESSION['current']){
// check if current page != previously recorded page
// order is important here in two lines, check it yourself
$_SESSION['previous'] = isset($_SESSION['current']) ? $_SESSION['current'] : '';
$_SESSION['current'] = $_SERVER['SCRIPT_NAME'];
}
您可以制作类似这样的内容,如果用户刷新页面,则会忽略相同的页面,忽略GET或POST方法。
您可以将此脚本包含在公共文件中以记录活动。
Array
(
[current] => /session/index.php
[previous] => /session/submit.php
)