如何用php检测上次访问过的页面?

时间:2016-10-18 09:25:51

标签: php

我在我的页面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

4 个答案:

答案 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
)