预览模式: 普通 | 列表

用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");
分类:技术交流 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 3

php 加密大全

不看不知道,一看吓一跳!原来php有这么多加密函数,原来知道一个md5().哎自己见识太少啦

加密技术:
基本原理:是对原来为明文的文件数据按某种算法进行处理,使其成为不可读的一段代码,通过这样的途径来达到保护数据不被非法窃
取,阅读的目的.
PHP中对数据进行加密的函数有:crypt(),md5()和shal(),还有加密扩展库Mcrypt和Mhash.

crypt():可以完成单向加密功能,(无法解密).
格式:string crypt(string str[,string salt]);
str参数是需要加密的字符串,salt参数为加密时使用的干扰串.如省略掉第二个参数,则会随机生成一个干扰串.
说明:缺省情况下,PHP使用一个2个字符的DES干扰串,如果系统使用的是MD5,则会使用一个12个字符.可以通过CRYPT_SALT_LENCTH变量

来查看当前所使用的干扰串的长度
该函数支持4种算法和长度.

MD5函数:
格式:string md5(string str[,bool raw_output]);
其中str为要加密的明文,raw_output参数如果为真,则函数返回一个二进制形式的密文.默认为false.

sha1()
格式:string sha1(string str [,bool raw_output])
说明:函数返回一个40位的16进制数,如果参数raw_output为真,则返回一个20位的二进制数.默认为false
区别:相同字符串多次刷新,crypt()加密会出现多个不同效果;MD5()和sha1()效果不会改变!!

PHP加密扩展库:
Mcrypt()扩展库:既能加密又能解密.
安装Mcrypt()扩展库:首先把PHP目录下的libmcrypt.dll文件copy到系统目录下,然后在php.ini文件中找

到";extension=php_mcrypt.dll"将前面的分号去掉;最后重启服务器.
Mcrypt()扩展库常量:
   支持20多种加密算法和8种加密模式.可以通过函数mcrypt_list_algorithms()和mcrypt_list_modes()来查看
Mcrypt应用
初始化向量:mcrypt_create_iv(该向量的大小,向量的源(MCRYPT_RAND:取系统的随机数))
获取到初始化向量的大小:mcrypt_create_iv_size(加密算法,加密模式);
加密:mcrypt_encrypt(加密算法,密钥,需要加密的数据,算法模式,向量);
解密:mcrypt_decrypt(加密算法,密钥,需要解密的数据,算法模式,向量);

Mhash扩展库:
安装Mhash扩展库:首先把PHP目录下的libmhash.dll文件copy到系统目录下,然后在php.ini文件中找到";extension=php_mhash.dll"将

前面的分号去掉;最后重启服务器.
Mhash扩展库常量:
Mhash扩展库支持MD5,SHA1,CRC32等多种散列算法,可以使用mhash_count()和mhash_get_hash_name()函数输出支持的算法名称
Mhash扩展库应用:
获取文件的全部内容:file_get_contents(文件名);
例: <?php
   $filename='wenjm.txt';
   $str = file_get_contents($filename);
   $hash = 2;
   $password = '111';
   $salt = '1234';
   $key = mhash_keygen_s2k(1,$password,$salt,10);
   $str_mhash = bin2hex(mhash($hash,$str,$key));
   echo"文件的效验码是:".$str_mhash;
?>
$hash要使用的算法;
$str:要加密的文件;

Tags: php 加密

分类:技术交流 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 4

js 复制到剪切板上

<script>
function tianjia(obj)
    {
      var Result=document.getElementById(obj).innerHTML.replace(/<.*?>/g,"");;
      window.clipboardData.setData("Text",Result);
      window.alert('域名Whois查询结果已复制到剪切板上!');
    }
</script>

Tags: js

分类:技术交流 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1

一个可爱的一套简单而漂亮的图标

又是一个可爱的一套简单而漂亮的图标所创造幸福!

无意到外国网站转转看到又是一个可爱的一套简单而漂亮的图标!

所以忍不住就下下来啦

查看更多...

Tags: ps 小图标

分类:资源下载 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 13

《变形金刚2》bt下载

6月下旬,很多影迷期待的《变形金刚2》就将上映。不过,昨日记者在名为“影像日报”的影迷资讯博客上发现,将于下周面市的《变形金刚2》的电影小说《THELASTPRIME》已经提前泄露,由于电影小说本身就是根据剧本再创作的,这使得该片的剧情也遭提前曝光,据记者粗略统计,影片中大大小小的机器人打斗场面至少有7次。几乎所有网友都反映,这部的剧情比上一部更曲折。“如果说第一部是让全世界的变形金刚迷重新苏醒的话,那么第二部就是让全世界的变形金刚迷全部疯狂。”一名网友说。

查看更多...

分类:网络热点 | 固定链接 | 评论: 1 | 引用: 0 | 查看次数: 83

asp.net  DataList分页

DataList 没有自动分页!

必须自己手工写!所以就写的一段代码

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

查看更多...

Tags: c# asp.net

分类:技术交流 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 3