精华内容
下载资源
问答
  • PHP实现页面后退的两种方法
    2021-03-26 12:34:34

    在php编程中,往往因为表单出错而返回页面的时候填写的信息都不见了,为了支持页面回跳,可以通过两种方法实现。

    第一,使用Header方法设置消息头Cache-control

    复制代码 代码示例:

    header('Cache-control: private, must-revalidate');  //支持页面回跳

    第二,使用session_cache_limiter方法

    复制代码 代码示例:

    //注意要写在session_start方法之前

    session_cache_limiter('private, must-revalidate');

    补充:

    Cache-Control消息头域说明

    Cache-Control指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。请求时的缓存指令包括no-cache、no-store、max-age、max-stale、min-fresh、only-if- cached,响应消息中的指令包括public、private、no-cache、no-store、no-transform、must- revalidate、proxy-revalidate、max-age。各个消息中的指令含义如下:

    Public指示响应可被任何缓存区缓存。

    Private指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效。

    no-cache指示请求或响应消息不能缓存

    no-store用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。

    max-age指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。

    min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应。

    max-stale指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。

    关于表单刷新

    问:为什么在点击浏览器的后退按钮后,所有字段的信息都被清空了?

    答:这是由于你在你的表单提交页面中使用了 session_start 函数。该函数会强制当前页面不被缓存。解决办法为,在你的 Session_start 函数后加入 header("Cache-control: private"); 注意在本行之前你的PHP程序不能有任何输出。

    补充:还有基于session的解决方法,在session_start前加上

    复制代码 代码示例:

    session_cache_limiter('nocache');// 清空表单

    session_cache_limiter('private'); //不清空表单,只在session生效期间

    session_cache_limiter('public'); //不清空表单,如同没使用session一般

    可以在session_start();前加上 session_cache_limiter("private,max-age=10800");

    更多相关内容
  • (实现操作的前进后退)和discuz论坛登录后查看帖子(可以前进后退查看过的帖子,还有帖子查看历史记录)和windows资源管理器地址栏前进后退功能一样。根据这种需要,实现了一个数据结构。写了一个通用的类,暂叫历史...

    和撤销,反撤销功能类似的一个功能。(实现操作的前进后退)

    和discuz论坛登录后查看帖子(可以前进后退查看过的帖子,还有帖子查看历史记录)

    和windows资源管理器地址栏前进后退功能一样。

    根据这种需要,实现了一个数据结构。写了一个通用的类,暂叫历史记录类吧。

    【原理和时钟类似。实例化对象时可以构造长度为N(可以根据需要定长度)个节点的环】

    然后整合各种操作。前进、后退、插入、修改插入。

    类可以构造一个数组。或者传入数组参数构造一个对象。 每次操作之后可以取得操作后的数组。 操作完的 数据可以根据自己的需要以合适的方式保存。 放在cookie,session里面,或者序列化,或转为json数据保存在数据库里,或者放在文件里面都可以。 方便下一次使用。

    为了便于扩展,存放更多的数据。具体每一条数据也是一条数组记录。

    比如根据需要进行扩展:array('path'=>'D:/www/','sss'=>value)

    include 'debug.php';

    /**

    * 历史记录操作类

    * 传入或者构造一个数组。形如:

    array(

    'history_num'=>20, //队列节点总共个数

    'first'=>0, //起始位置,从0开始。数组索引值

    'last'=>0, //终点位置,从0开始。

    'back'=>0, //从first位置倒退了多少步,差值。

    'history'=>array( //数组,存放操作队列。

    array('path'=>'D:/'),

    array('path'=>'D:/www/'),

    array('path'=>'E:/'),

    array('path'=>'/home/')

    ……

    )

    )

    */

    class history{

    var $history_num;

    var $first;

    var $last;

    var $back;

    var $history=array();

    function __construct($array=array(),$num=12){

    if (!$array) {//数组为空.构造一个循环队列。

    $history=array();

    for ($i=0; $i < $num; $i++) {

    array_push($history,array('path'=>''));

    }

    $array=array(

    'history_num'=>$num,

    'first'=>0,//起始位置

    'last'=>0,//终点位置

    'back'=>0,

    'history'=>$history

    );

    }

    $this->history_num=$array['history_num'];

    $this->first=$array['first'];

    $this->last=$array['last'];

    $this->back=$array['back'];

    $this->history=$array['history'];

    }

    function nextNum($i,$n=1){//环路下n一个值。和时钟环路类似。

    return ($i+$n)history_num ? ($i+$n):($i+$n-$this->history_num);

    }

    function prevNum($i,$n=1){//环路上一个值i。回退N个位置。

    return ($i-$n)>=0 ? ($i-$n) : ($i-$n+$this->history_num);

    }

    function minus($i,$j){//顺时针两点只差,i-j

    return ($i > $j) ? ($i - $j):($i-$j+$this->history_num);

    }

    function getHistory(){//返回数组,用于保存或者序列化操作。

    return array(

    'history_num'=> $this->history_num,

    'first' => $this->first,

    'last' => $this->last,

    'back' => $this->back,

    'history' => $this->history

    );

    }

    function add($path){

    if ($this->back!=0) {//有后退操作记录的情况下,进行插入。

    $this->goedit($path);

    return;

    }

    if ($this->history[0]['path']=='') {//刚构造,不用加一.首位不前移

    $this->history[$this->first]['path']=$path;

    return;

    }else{

    $this->first=$this->nextNum($this->first);//首位前移

    $this->history[$this->first]['path']=$path;

    }

    if ($this->first==$this->last) {//起始位置与终止位置相遇

    $this->last=$this->nextNum($this->last);//末尾位置前移。

    }

    }

    function goback(){//返回从first后退N步的地址。

    $this->back+=1;

    //最大后退步数为起点到终点之差(顺时针之差)

    $mins=$this->minus($this->first,$this->last);

    if ($this->back >= $mins) {//退到最后点

    $this->back=$mins;

    }

    $pos=$this->prevNum($this->first,$this->back);

    return $this->history[$pos]['path'];

    }

    function gonext(){//从first后退N步的地方前进一步。

    $this->back-=1;

    if ($this->back<0) {//退到最后点

    $this->back=0;

    }

    return $this->history[$this->prevNum($this->first,$this->back)]['path'];

    }

    function goedit($path){//后退到某个点,没有前进而是修改。则firs值为最后的值。

    $pos=$this->minus($this->first,$this->back);

    $pos=$this->nextNum($pos);//下一个

    $this->history[$pos]['path']=$path;

    $this->first=$pos;

    $this->back=0;

    }

    展开全文
  • php实现禁止浏览器后退的方法发布时间:2020-08-29 09:26:05来源:亿速云阅读:70作者:小新这篇文章将为大家详细讲解有关php实现禁止浏览器后退的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完...

    php实现禁止浏览器后退的方法

    发布时间:2020-08-29 09:26:05

    来源:亿速云

    阅读:70

    作者:小新

    这篇文章将为大家详细讲解有关php实现禁止浏览器后退的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。php实现禁止浏览器后退的方法:1、混合运用客户端脚本和服务器端脚本;2、在头部加【】标签,代码为【】。

    695187cb7c9fcf168d205eb35add23dd.png

    php实现禁止浏览器后退的方法:

    流程

    1.php<?php

    header("Cache-control:no-cache,no-store,must-revalidate");

    header("Pragma:no-cache");

    header("Expires:0");

    if($_COOKIE['resetpw_success_v']){

    //echo '密码已更改';exit();

    header("Location: ****");

    }

    .........

    ?>

    2.php        例:密码修改最后一步修改成功时,如果点击浏览器后退到1.php<?php

    setcookie('resetpw_success_v','true',time()+600);

    ..........

    ?>

    曾经有许多人问起,“怎样才能‘禁用’浏览器的后退按钮?使后退页面失效”,或者“怎样才能防止用户点击后退按钮返回以前浏览过的页面?”在找到的许多方案中,其中有一种建议禁止页面缓存。但都说得很片面,只能禁止IE,像Chrome浏览器就无能为力了,下面是一篇比较全面禁用所有浏览器缓存的文章,对提交表单后不让客户返回提交页面,防止重复提交表单,防止用户后退非常有用

    由于不存在能够完全禁用后退按钮的方法,所以最好的方案应该是:混合运用客户端脚本和服务器端脚本。

    最简单的方法是在头部加标签

    如果使用上面的方法强制浏览器不再缓存web页面,必须注意以下几点:

    只有在使用安全连接时“pragma: no-cache”才防止浏览器缓存页面。

    对于不受安全保护的页面,“pragma: no-cache”被视为与“expires: -1”相同,此时浏览器仍旧缓存页面,但把页面标记为立即过期。

    在ie 4或5中,cache-control”meta http-equiv标记将被忽略,不起作用。在实际应用中我们可以加上所有这些代码。

    然而,由于这种方法不能适用于所有的浏览器,所以是不推荐使用的。但如果是在intranet环境下,管理员可以控制用户使用哪种浏览器,我想还是有人会使用这种方法。

    关于php实现禁止浏览器后退的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

    展开全文
  • php实现禁止浏览器后退的方法:1、混合运用客户端脚本和服务器端脚本;2、在头部加【】标签,代码为【】。【相关学习推荐:php图文教程】php实现禁止浏览器后退的方法:流程1.php...

    php实现禁止浏览器后退的方法:1、混合运用客户端脚本和服务器端脚本;2、在头部加【】标签,代码为【】。

    【相关学习推荐:php图文教程】

    php实现禁止浏览器后退的方法:

    流程

    1.php<?php

    header("Cache-control:no-cache,no-store,must-revalidate");

    header("Pragma:no-cache");

    header("Expires:0");

    if($_COOKIE['resetpw_success_v']){

    //echo '密码已更改';exit();

    header("Location: ****");

    }

    .........

    ?>

    2.php 例:密码修改最后一步修改成功时,如果点击浏览器后退到1.php<?php

    setcookie('resetpw_success_v','true',time()+600);

    ..........

    ?>

    曾经有许多人问起,“怎样才能‘禁用’浏览器的后退按钮?使后退页面失效”,或者“怎样才能防止用户点击后退按钮返回以前浏览过的页面?”在找到的许多方案中,其中有一种建议禁止页面缓存。但都说得很片面,只能禁止IE,像Chrome浏览器就无能为力了,下面是一篇比较全面禁用所有浏览器缓存的文章,对提交表单后不让客户返回提交页面,防止重复提交表单,防止用户后退非常有用

    由于不存在能够完全禁用后退按钮的方法,所以最好的方案应该是:混合运用客户端脚本和服务器端脚本。

    最简单的方法是在头部加标签

    如果使用上面的方法强制浏览器不再缓存web页面,必须注意以下几点:

    只有在使用安全连接时“pragma: no-cache”才防止浏览器缓存页面。

    对于不受安全保护的页面,“pragma: no-cache”被视为与“expires: -1”相同,此时浏览器仍旧缓存页面,但把页面标记为立即过期。

    在ie 4或5中,cache-control”meta http-equiv标记将被忽略,不起作用。在实际应用中我们可以加上所有这些代码。

    然而,由于这种方法不能适用于所有的浏览器,所以是不推荐使用的。但如果是在intranet环境下,管理员可以控制用户使用哪种浏览器,我想还是有人会使用这种方法。相关学习推荐:php编程(视频)

    展开全文
  • 实现浏览器的前进后退功能 使用两个栈 X 和 Y,把首次浏览的页面依次压入栈 X,当点击后退按钮时,再依次从栈 X 中出栈,并将出栈的数据依次放入栈 Y。当点击前进按钮时,依次从栈 Y 中取出数据,放入栈 X 中。当栈...
  • PHP阻止页面后退如何用PHP实现禁用浏览器的后退,使后退的页面失效或链接到别的地方?使用php禁止浏览器缓存?流程1.php --> 2.php1.phpheader("Cache-control:no-cache,no-store,must-revalidate");header(...
  • 流程1.php-->2.php1.phpheader("Cache-control:no-cache,no-store,must-revalidate");header("Pragma:no-cache");header("Expires:0");if($_COOKIE['resetpw_success_v']){//echo'密码已更改';exit();header(...
  • 用javascript实现禁止页面后退返回上一页的代码:有时候我们需要用户在点击了如下一步的按钮时,页面跳转到了下一个页面,这时想不允许用户返回后退到上一页,可以采用下面的方法:在需要跳转的页面(上一个页面),添加如下...
  • PHP实现弹出消息提示框的两种方法方法一:复制代码 代码如下:echo "alert('提示内容')";方法二:复制代码 代码如下:echo ';alert("这是";location.href="index.htm";;';里面的location.href="index.htm"表示你点击...
  • PHP,HTML,js弹窗返回上一页 PHP弹窗返回上一页 <?php echo "<script>alert('暂无数据');window.history.back(-1);...返回上一步</a> <a href="<%=Request.ServerVariables
  • 论坛上用户注册的步骤分为几部: 第一步 \ 协议页面, 只有同意这个协议才可以进入下一步注册第二步 \ 表单输入页面, 输入用户的注册信息第三步 \ 注册结果页面,提示注册成功在实际工作中,如果我们要开发实现这种注册...
  • Ctrl+E Ctrl+E可以调用出最近访问的文件列表,第一个就是你跳转过来的页面。...同时按这三个键,就能一步一步的退回到之前的地方。 这个是个快捷键。 也可以使用编辑器导航栏中的:Navigate > Back ...
  • 论坛上用户注册的步骤分为几部:第一步 协议页面, 只有同意这个协议才可以进入下一步注册第二步 表单输入页面, 输入用户的注册信息第三步 注册结果页面,提示注册成功在实际工作中,假如我们要开发实现这种注册页面,要...
  • PHP XML Expat 解析器

    2021-04-13 13:56:17
    PHPXML Expat 解析器内建的 Expat 解析器使在 PHP 中处理 XML 文档成为可能。XML 是什么?XML 用于描述数据,其焦点是数据是什么。XML 文件描述了数据的结构。在 XML 中,没有预定义的标签。您必须定义自己的标签。...
  • 当在错误页面的时候,点击返回或者Android物理按键上一步的时候,将关闭页面。在微信、支付宝、百度钱包中,他们对页面关闭进行了封装,传统的window.close()是无效的,必须要使用它们的js代码才能关闭。下面是三种...
  • 当在a.php勾选是,然后点击一步,将数据提交给b.php,显示“1”。 这时候点击一步,返回将是的勾选去掉,然后再点下一步,还是会显示“1”。 再点上一步,然后再点下一步,这是才会显示“0”。 这种不同步...
  • 例如,我们当前位置处于以下页面: //www.jb51.net/articles/6?author=eagle 如果我们在该页面点击了某个操作,那么在我们的控制器中,我们输出 echo url()->previous(); 会发现输出的结果与我们之前操作的页面的...
  • 流程1.php --> 2.php 1.php header("Cache-control:no-cache,no-store,must-revalidate"); header("Pragma:no-cache"); header("Expires:0"); if($_COOKIE['resetpw_success_v']){  //echo '密码已更改'...
  • php笔记

    2019-06-28 10:06:41
    php简要札记 了解php基本使用,是方便后期理解node的使用,而不是主要技能,前端开发不写这个 了解php基本使用,是方便后期理解node的使用,而不是主要技能,前端开发不写这个 了解php基本使用,是方便后期理解...
  • <p>Update: I figured out that it has something to do with the PHP Session, however I dont know why its working correctly now: <p>This is the PHP code I had at the beginning of page: <pre><code>`<...
  • PHP 面试总结(持续更新) --小丑

    千次阅读 2019-03-18 21:15:02
    cookie数据存放在客户的浏览器上,session数据放在服务器上,以文件的形式存放,可以从php.ini里面的session.save_path找到存放位置 cookie不是很安全 ,cookie可以进行cookie欺骗,别人可以获取cookie中的session ...
  • PHP面试题总结

    2021-03-28 15:12:44
    $router.push(‘url’) 跳转到指定的URL,在history栈中添加一个记录,点击后退会返回上一个页面 router-link 【实现跳转最简单的方法】 ,浏览器在解析时,将它解析成一个类似于a标签。 this. r o u t e r . r e p...
  • 每一位PHP开发者或多或少的都掌握一些JavaScript知识,本文写在《云客Drupal8源码分析》前端相关章节发布前,意在帮助沉浸在后端世界的phper快速进入前端js世界(推荐phper关注学习Drupal,那是php世界的珠峰...
  • 2.0.63-win32-x86-no_ssl.msi 或apache_2.0.63-win32-x86-no_ssl.exemysql-5.0.81a-win32jdk-1_5_0_15-windows-i586-p.exeapache-tomcat-5.5.26.exeapache-tomcat-5.5.26-admin.zipphp-4.4.8-win32...
  • 在实际的应用中,我们常常需要实现在移动app和浏览器中点击返回、后退、上一页等按钮实现自己的关闭页面、调整到指定页面或执行一些其它操作的需求。那在代码中怎样监听当点击微信、支付宝、百度糯米、百度钱包等app...
  • 另外,说明一下,我使用的是64位的操作系统,所以我选择安装的软件基本都是64位版本。如果你使用的是32位的操作系统,请勿使用64位软件进行安装。当然如果你使用的是操作系统是64位的,你可以安装64位或者32位的软件...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,616
精华内容 646
关键字:

php点击一下后退一步