未来往事
最怕的东西你就应该去突破。 [2017年 第30周/共52周]

整合服务器驱动程序到系统光盘ISO文件中

整合驱动程序到系统安装盘-图片多是因为适应不同用户的需求,其实操作过程很简单,也就是点几下鼠标的事。当我们在使用SATA、SCSI硬盘或磁盘阵列的电脑安装系统,需要在安装程序检测磁盘设备时按下F6键,插入软盘为操作系统提供 磁盘设备的驱动程序,如果你的电脑上没有软盘驱动器则无法开始安装。要避免类似的麻烦,可以将磁盘设备的驱动程序整合到操作 系统的安装光盘上,又或者整合更多驱动程序,让操作系统在安装时自动安装。

......
+阅读全文

Windows系统下访问Linux系统格式分区

linux系统下大多数都是用ext3/ext4文件系统系统,许多流行的linux发行版默认的文件系统就是ext3/ext4,正常我们在windows下是无法识别ext3/ext4分区.导致我们想要提取一些数据的时候而有心无力.Ext2Fsd可以让你在Windows系统中挂在linux的分区。

这里推荐两款可以在windows系统下识别linux分区格式的软件
1、Ext2Read 是一个能够读取etc2/etx3/ext4文件系统的工具。他支持LVM2和Ext4.可以查看和复制文件和文件夹,递归复制整个文件夹。
......
+阅读全文

谷歌Google创新9原则

想知道是什么让 Google 成为生产力与创造力的圣杯?当然不是喝山景城脚下的神水。而是贯彻其首席社会布道师 Gopi Kallayil 所谓的 Google 创新九原则。任何企业,无论规模大小,均可从 Google 的创新文化中偷师。

1、创新无所不在

......
+阅读全文

js获取页面URL地址并判断URL是否包含具体值

js/jquery获取当前页面URL地址并判断URL字符串中是否包含某个具体值
本文介绍jquery/js获取当前页面url地址的方法,在jquery与js中获取当前页面url方法是一样的,因为jquery没有自己相关的函数,使用js 的windows方法来获取,相关方法如下:
window.location.pathname //设置或获取对象指定的文件名或路径
window.location.href //设置或获取整个 URL 为字符串
window.location.port //设置或获取与 URL 关联的端口号码
window.location.protocol //设置或获取 URL 的协议部分
......
+阅读全文

CI框架去index.php Nginx rewrite规则

CodeIgniter去除index.php Nginx规则范例:
server
  {
    listen       80;
    server_name  ci.fity.cn;
    index index.html index.htm index.php;
    root  /htdoc/web/citest;
  
    location / {
        try_files $uri $uri $uri/ /index.php?s=$uri&$args;
        index &nb
......
+阅读全文

Thinkpad E430/E431 Win8改为Win7系统

本文主要介绍Thinkpad E430/431 Win8系统改为Win7系统的步骤:
自微软公司发布Win8系统以后,越来越多的电脑厂商都把Win8系统出厂预装到笔记本当中,联想Thinkpad E430系列笔记本也不例外,由于Win8系统的操作界面发生了很多改变,有很多人还不太喜欢使用电脑出厂预装的Win8系统,所以想要把Thinkpad E431笔记本中出厂预装的Win8换成Win7系统。

......
+阅读全文

网页倒计时/网站已运行时间JS代码(收藏)

网页倒计时代码 倒计时代码 网站运行时间代码 网站已运行天数代码
1、jQuery.countdown插件
显示格式:50 周 01 天 07 小时 18 分 41 秒(秒为跑秒)
一个页面可以有多个倒计时实例,可以停止和开始,它没有提供太多的功能,但时间格式和输出的尺寸都可以自定义。
目前最新版v2.0.4,官方地址http://hilios.github.io/jQuery.countdown/
例如:
  1. <div id="getting-started"></div>  
  2. <script src="http
......
+阅读全文

Tmail登录失败问题

......
+阅读全文

CSS样式优先级

一、CSS样式选择器优先级

ID选择器(形如#divMain{}) > 类(形如.divSpecial{}) > 标签(形如body{})

二、CSS文件的优先级

1、标有”!important”的规则有最高优先级
一个样式规则可以有一个”important”附带标签,表示该样式规则具有最高优先级。例如下面例子中,前景色被标为important。

  1. h1<

......
+阅读全文

MySQL子查询常见格式

MySQL常见的几种子查询形式

mysql从4.1版开始支持子查询功能,在此版本前,可以用join写连表查询来进行替代,但不推荐这么写,相当的麻烦。mysql子查询的几种常见写法:

  1. select * from xxx where col =
......
+阅读全文

浅析HTTP会话控制: php session与cookie

本文介绍了PHP会话控制,主要阐述以下几点内容:
会话控制的产生背景/概念
cookie的维护与生命周期(有效时间)
session的维护与生命周期(回收机制)
cookie与session之间的区别与联系
问题1:禁用cookie后session为什么会失效?
问题2:IE浏览器下丢失session,每次刷新页面,都会生成新的sessionID(Firefox浏览器正常)
session、cookie简单实例

▶ 本文最后更新:2014-01-23(更新内容‘问题2’

● 理解会话控制的概念

理解一个概念就需要理解他的背景及产生的原因,这里引入WEB环境及其HTTP协议。会话控制产生的背景:
阅读过HTTP协议相关资料的同学都会知道HTTP协议是WEB服务器与客户端(浏览器)相互通信的协议,它是一种无状态协议,所谓无状态,指的是不会维护http请求数据,http请求是独立的,不持久的。也就是说HTTP协议没有一个内建的机制来维护两个事务之间的状态或者说是关系吧。当一个用户在请求一个页面后再去请求另外一个页面时,HTTP将无法告诉我们这两个请求是否来自同一个用户。

由此我们就会觉得很奇怪了,平时我们在论坛逛帖子或电商网站购物时,只要我们在这个站点内,不论我们怎么跳转,从一个页面跑到另一个页面,网站总会记得我是谁,比如告诉你购买了哪些东西。这是怎么做到的呢,估计大家猜到了,这就是运用了HTTP会话控制。在网站中跟踪一个变量,通过对变量的跟踪,使多个请求事物之间建立联系,根据授权和用户身份显示不同的内容、不同页面。

PHP Session会话控制:
PHP的session会话是通过唯一的会话ID来驱动的,会话ID是一个加密的随机数字,由PHP生成,在会话的生命周期中都会保存在客户端。我们知道客户端(也就是浏览器)保存数据的地方只有cookie,所以PHP的会话ID一般保存在用户机器的cookie中。了解cookie后我们知道,浏览器是可以禁用cookie的,这样会话就会失效。所以PHP会话控制还有一种模式,就是在URL中传递会话ID。如果在浏览网站时我们稍加留心的话,有些URL中有一串看起来像随机数字的字符串,那么其实很有可能就是URL形式的会话控制。

讲到这里,有些人可能会有疑问了,客户端只是保存一个会话ID,那么会话控制中保存的会话变量比如你购物时买的物品列表等,它们是存放在哪个地方的呢?很显然,会话变量是在服务器端使用的,那么这些会话变量必定存放在服务器端。默认情况下,会话变量保存在服务器的普通文件中(也可以自己配置使用数据库来保存,可以Google一下),会话ID的作用就像是一把钥匙,在服务器端保存会话的文件中找到该会话ID对应的会话变量,比如购买物品的列表。

那么会话控制的整个过程可能就像这个样子,用户登录或者第一次浏览某个站点的页面时,该站点会生成一个PHP的会话ID并通过cookie发送到客户端(浏览器)。当用户点击该站点的另一个页面时,浏览器开始连接这个URL。在连接之前,浏览器会先搜索本地保存的cookie,如果在cookie中有任何与正在连接的URL相关的cookie,就将它提交到服务器。而刚好在登陆或第一次连接时,已经产生了一个与该网站URL相关的cookie(保存的会话ID),所以当用户再次连接这个站点时,站点就可以通过这个会话ID识别出用户,从服务器的会话文件中取出与这个会话ID相关的会话变量,从而保持事务之间的连续。


接下来我们了解下两个重要的概念:cookie和session

● 关于cookie的维护与生命周期

cookie是在服务器端被创建并写回到客户端浏览器,浏览器接到响应头中关于写cookie的指令则在本地临时文件夹中
创建了一个cookie文件,其中保存了你的cookie内容,cookie内容的存储是键值对的方式,键和值都只能是字符串。例如:
文件:Cookie:administrator@localhost/
内容格式:voteID100101localhost/15361167667230343893360385046430343691*

cookie的创建:
setcookie()函数设置cookie,函数原型如下
setcookie(name, value, expire, path, domain);
注释:cookie标题头必须在发送其他标题头之前发送,否则就无效(这是cookie的限制,而不是PHP的限制)。在发送 cookie 时,cookie 的值会自动进行 URL 编码,在取回时进行自动解码(为防止 URL 编码,请使用 setrawcookie() 取而代之)。

cookie的维护:
cooke有四个标识符:cookie的name,domain,path,secure标记。要想在将来改变这个cookie的值,需要发送另一个具有相同cookie name,domain,path的Set-Cookie消息头,这将以一个新

的值来覆盖原来cookie的值。然而,如果仅仅只是改变这些选项的某一个也会创建一个完全不同的cookie,如只是更改了name值。

cookie失效时间:
可以设置过期时间,如果不设置则是会话级别的,即关闭浏览器就会消失。当cookie创建时包含了失效日期,这个失效日期则关联了以name-domain-path-secure为标识的cookie。要改变一个cookie的失效日期,你必须指定同样的组合。当改变一个cookie的值时,你不必每次都设置失效日期,因为它不是cookie标识信息的组成部分。例如:
  1. setcookie(vote ,$id+1,time()+3600*24);  
  2. setcookie(vote,$id);  
在cookie上的失效日期并没有改变,因为cookie的标识符是相同的。实际上,只有你手工的改变cookie的失效日期,否则其失效日期不会改变。这意味着在同一个会话中,一个会话cookie可以变成一个持久化cookie(一个可以在多个会话中存在的),反之则不可。为了要将一个持久化cookie变为一个会话cookie,你必须删除这个持久化cookie,这只要设置它的失效日期为过去某个时间之后再创建一个同名的会话cookie就可以实现。

需要记得的是失效日期是以浏览器运行的电脑上的系统时间为基准进行核实的。没有任何办法来来验证这个系统时间是否和服务器的时间同步,所以当服务器时间和浏览器所处系统时间存在差异时这样的设置会出现错误。

cookie自动删除:
cookie会被浏览器自动删除,通常存在以下几种原因:
会话cooke(Session cookie)在会话结束时(浏览器关闭)会被删除
持久化cookie(Persistent cookie)在到达失效日期时会被删除,如:
  1. setcookie("vote""", time()-3600);  
如果浏览器中的cookie限制到达,那么cookies会被删除以为新建cookies创建空间。

● 关于session的维护与生命周期

+阅读全文