未来往事
当你站在今天,是否能看到明天、明年、乃至下一个三年的你? [2017年 第30周/共52周]

谷歌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的维护与生命周期

+阅读全文

如何面对生活

  人活在这个世上,不可能都是一帆风顺的,有时遇到困难,有时遇到挫折,有时遇到变故,有时遇到不顺心的人和事,这些都是人生前进中的正常现象。但是,有的人遇到这些现象时,心烦意乱,痛苦不堪,悲观失望,甚至失去面对生活的勇气。
  
  当你遇到不顺时,它会让你的头脑更加理性,让你面对不顺时,不是悲观失望,而是反思自己的做事方法,做人原则,让你有则改之,无则加勉,更上一层楼。
  
......
+阅读全文

PHP将数组元素组合为字符串函数:implode

版本:PHP4, PHP5
string implode ( string $glue , array $pieces )
string implode ( array $pieces )
implode() 函数将一个一维数组元素合为一个字符串,并返回该字符串。其内容为由 glue 分割开的数组的值。

参数说明:
glue:默认为空的字符串
pieces:你想要转换的数组
备注:4.3.0开始glue 变为可选参数。

范例:
  1. $park = Array  
  2. (  
......
+阅读全文

输入内容过滤 PHP

PHP内容过滤方法,过滤没用的信息比较严格,有用的可能也输入不进去,可以从网上找找其他的过滤方法:
  1. function checkHtml($data){  
  2.   $ret  = preg_match("/['.,:;*?~`!@#$%^&+=)(<>{}]|\]|\[|\/|\\\|\"|\|/",$data);  
  3.  &
......
+阅读全文

iframe高度自适应 高度随内容动态缩放

iframe高度随页面内容自适应高度,当页面高度变动时iframe高度也自动变化

浏览器兼容:IE6++、Firefox全系列、Chrome全系列、(其他版本浏览器未做测试,期待你测试评论反馈以完善本文,谢谢)

同域环境下实现方法:

方法一:仅修改iframe父页面(iframeA.php),iframe子页面内容(iframeB.php)不用添加其他js或额外代码
iframe父页面(iframeA.php)添加代码如下:


    ......
+阅读全文

discuz楼层错乱一楼不显示处理

discuz楼层错乱1楼主题内容不显示问题解决


任何数据库应用都存在分页性能问题,mysql的性能问题似乎更大些。Discuz7.2(以下简称dz7.2)和Discuz X2(简称X2)的抢楼机制基本相同,抢楼与普通帖子(盖楼)是不同的处理机制。到了Discuz X2.5(简称X2.5)就把抢楼与盖楼机制统一。
引用来源:X2.5的新程序架构

由以上信息可以看出Discuz!X2.0及更早版本与Discuz!X2.5对抢楼及盖楼的机制并不相同、数据结......
+阅读全文

高级CSS样式选择器

CSS选择器,CSS样式选择器,CSS选择器详解,高级CSS选择器,高级CSS选择器参考手册,CSS选择器参考指南

我们知道CSS 2 开始引入了属性选择器。属性选择器可以根据元素的属性及属性值来选择元素。简单的说即在 CSS 中,选择器是一种模式,用于选择需要添加样式的元素。本文主要描述CSS样式表中选择器的一些用法,当然你可能已经对CSS样式选择器不在生疏,但是通过本文你将能更好的掌握CSS样式的一些高级选择器使用。





......
+阅读全文