php memcache保存session的一个设置

php中,使用memcache作为session的save handler 一般会使用如下设置:

php.ini里:

session.save_handler = memcache
session.save_path = “localhost:11211″

项目配置里:

ini_set(“session.save_handler”, “memcache”);
ini_set(“session.save_path”, “127.0.0.1:11211″);
Defines a comma separated of hostname:portentries to use for session server pool, for example “sess1:11211, sess2:11211″.

If you want to use ‘memcacheD’ extention not ‘memcache’ (there are two diffrent extentions) for session control, you should pay attention to modify php.ini

Most web resource from google is based on memcache because It’s earlier version than memcacheD. They will say as following

But it’s not valid when it comes to memcacheD

you should modify php.ini like that

 

Look, there is no protocol indentifier

原文链接:http://hi.baidu.com/tianhuimin/item/242902026c11d6e1ff240dce

MYSQL之数据结构修改—-MySQL大数据表结构更改手记

核心表 2亿多数据量,索引+数据大小超80G,需要对该表结构作调整——drop两字段,然后新增5字段
在测试服务器上测试drop 两个字段,花费了30多分钟,并且内存占用率持续99.9%,其中3个cpu core占用80%以上(硬件16核,50G内存);虽然两列是drop掉了,但这么长的时间难以接受,基于此查看了官方文档中表结构修改处理流程以查找更佳解决办法: 继续阅读“MYSQL之数据结构修改—-MySQL大数据表结构更改手记”

mysql_real_escape_string

mysql_real_escape_string ——转义 SQL 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集

说明

本函数将 unescaped_string 中的特殊字符转义,并计及连接的当前字符集,因此可以安全用于 mysql_query()

Note:        mysql_real_escape_string() 并不转义 % 和 _

Example #1 mysql_real_escape_string() 例子

以上例子将产生如下输出:

以上摘自:http://php.net/manual/zh/function.mysql-real-escape-string.php

若想在执行SQL语句时转义传入的 ‘ % ’和‘  _  ’字符即MYSQL不把它们当做通配符处理,需在该字符前加 ‘   ‘ (backlash)或用 ‘ [   ] ‘(bracket)包裹。可使用以下PHP函数处理:

str_replace('%', '%', $haystack);

str_replace('_', '_', $haystack);

str_replace('%', '[%]', $haystack);

str_replace('_', '[_]', $haystack);

 

bgcolor/bgColor/backgroundColor/background/background-color区别

bgcolor 是HTML标签的属性,不区分大小写;

bgColor是JScript语法,区分大小写;

backgroundColor 是JavaScript语法,区分大小写;

background 是CSS样式属性,不区分大小写;

background-color 是CSS样式属性,不区分大小写;

以上特性均可更改指定元素的背景色,其中,background在更改背景色的同时也可更改背景图片。

Working with RESTful Services in CodeIgniter

Part 1 – Creating a RESTful API

Step 1: Setting up the Demo

Firstly you need to download the codeigniter-restserver code from GitHub and extract it and move the code to your server.

When you open the folder, you will see an entire CodeIgniter install, which is there to power the demo. This allows people to have a play with the REST demo before integrating with your existing application.

Open up “application/config/config.php” and set the base_url to get links working. This base_url will be different for everyone and depends entirely on where you uploaded your files.

Step 2: The URLs

With the files extracted and the base_url set, we are ready to load up our RESTful CodeIgniter installation, and have a look at the demo supplied with it. Browse the base URL, which by default is: 继续阅读“Working with RESTful Services in CodeIgniter”

多服务器session共享之memcache(d)共享

为了使多服务器共享SESSION,最简单的方法是将它们的SESSION保存在它们所链接的Memcached服务器上。

目前我所使用的memcache PECL 版本中,可以直接设置 php.ini 来设定自己的 session.save_handler,大致如下:

或者,你也可以在需要链接Memcached服务器的web程序头文件中使用如下类似的代码:

其中,将192.168.1.1替换成你的Memcached服务器的IP地址,11211替换成Memcached服务器监听的端口号(默认是11211)。

这样,只要提供sessionID,就可从Memcached服务器中取出该sessionID所存储的session信息了。 继续阅读“多服务器session共享之memcache(d)共享”

Cross domain PHP Sessions:跨站点Session共享

所谓Cross domain PHP Sessions,即不限于同一域名,不限于同一服务器,不限于同一IP的多个网站共享Session。
这种情况之下的Session共享,是一种极端情况,但却经常遇到。这是因为,我们常常有多站点单点登录,或共用用户数据库。一次登录多站可访问的通行证模式,是普遍受欢迎的方式。
实现的方法如下:
1、首先,你要使用memcache,memcached保存session, 从而能够使得session数据能够保存到不同域名,不同IP的服务器上。
2、其次,保证多站点使用同一SESSIONID。这个方法很简单,只要把源站点的$_COOKIE[‘PHPSESSID’]传给目标站点即可。我们清楚,PHP网站,总会在COOKIE中保存一个名为$_COOKIE[‘PHPSESSID’]变量。所以,只要将这个传给目标站点即可。所以,接下来就是如何传的问题了。
3、建议的方法是,每一个网站建一个专用于跳转的PHP文件。此文件接收GET参数为目标跳转的URL。PHP只要根据参数生成象如下这样的代码即可:
header(‘Location: http://domain.com?sessid=’.urlencode($_COOKIE[‘PHPSESSID’]));
当然,这个PHP页面中,要对跳转的URL有所检测,是不是允许传入$_COOKIE[‘PHPSESSID’]的域名。如果这个PHP文件我们称为siteurl.php,那么,页面中的链接就成了:
http://thisdomain.com/siteurl.php?url=newdomain.php
这样,页面中也就没有$_COOKIE[‘PHPSESSID’]。
4、接受跳转的站点,可以通过以下途径读取这个共享的session.
在session_start()运行之前处理:
if ($_GET[‘sessid’]){
session_id($_GET[‘sessid’]);
}
这样,接受跳转的站点就可以读到已保存的session了

原文链接:http://bardo.iteye.com/blog/916316

MYSQL复习整理(一)

1.NULL

在创建表时,表设计人员可以指定其中的列是否可以不包含值。在一个列不包含值时,称其为包含空值NULL。

 

ex.     SELECT   cust_id   FROM  customers   WHERE  cust_email  IS   NULL;

 2.正则表达式 继续阅读“MYSQL复习整理(一)”

How to be an Excellent Programmer for Many Years

(Excellent==Successful. Money & fame are more difficult to control.)

1. Choose a small subset of available technology, learn it intimately, and embrace it. Then evolve that subset.

2. Understand the pros and cons of various data structures, both in memory and on disk.

3. Understand the pros and cons of various algorithms.

4. Understand your domain. Get away from your computer and do what your users do. 继续阅读“How to be an Excellent Programmer for Many Years”