标签归档:session

CodeIgniter相关配置分析

core/controller 49行 $this->load->initlialize() 包含autoload设置的 加载类 1.active_group 导入database.php 配置文件 active_group =’default’ 如果使用load->database(‘xx’) 指定了key active_group 就为key session类 87行 连接默认数据库  $this->CI->load->database(); active_group default 就会连接default指定的数据库 如果配置文件把active_group 改成ask_ext 则会连接ask_ext 错误。  2.active_record active_record=false CI_DB_driver::insert_string() active_record=true CI_DB_active_record::insert()  也有父类的CI_DB_driver::insert_string() 都调用CI_DB_mysql_driver::_insert()获取最终的sql DB.php 120行  定义类CI_DB 继承CI_DB_active_record 或 CI_DB_driver,CI_DB_active_record 本身继承了CI_DB_driver,mysql_driver.php (CI_DB_mysql_driver)继承 … 继续阅读

发表在 Php | 标签为 , , , | 留下评论

php session

今天抽时间好好把php session相关的知识看了一下,受益匪浅。 参考链接: 1.PHP会话Session使用入门 http://bbs.phpchina.com/viewthread.php?tid=50716&highlight=php%BB%E1%BB%B0 2.php5中session详解 对php.ini 配置项的详解 http://sqlnet.blog.51cto.com/343343/130274 3.PHP中的SESSION详解 http://hi.baidu.com/chendezh2/blog/item/16059a37aa0dc985a71e1227.html 4.如何去除URL中的SESSION ID  http://blog.163.com/yageeart@126/blog/static/4960228201010610471978/ 5.http中cookie与session的分析 http://www.22455.com/index.php/posts/_42   杂记: session_name()   默认在配置为PHPSESSID  有参数就是设置  (记录sessionid的cookie变量名,firefox 装个firecookie看比较直观。) session_id()   32位串 有参数就是设置 $_SESSION['TEST'] = time(); $_SESSION['TEST3'] = time(); 若为文件存储session.save_handler = files   在session.save_path设置的目录下生成文件 名为 sess_跟session_id() 文件内容形如 TEST|i:1318069225;TEST3|i:1318069259; … 继续阅读

发表在 Php | 标签为 , , | 留下评论

【转】关于session中的session_write_close

今天在做框架里面的 session的memcache存储,碰到了一些问题。 当在执行 session_set_save_handler 中设定的 write 时候,memcache的对象被释放了。 很是奇怪的问题。 搞了很久,最后还是在手册上看到问题的原因和解决办法。 在手册 session_set_save_handler 函数里面: http://www.php.net/manual/en/function.session-set-save-handler.php 有这样的警告。大概意思是“” 解决办法是:在设置 session_set_save_handler 时候 添加 register_shutdown_function是在程序结束前来执行,抢先提交session zwj说搞明白原理才能有判断。有道理。

发表在 默认分类 | 标签为 , , | 留下评论

【转】linux下的/dev/shm/

/dev/shm/是linux下一个非常有用的目录,因为这个目录不在硬盘上,而是在内存里。因此在linux下,就不需要大费周折去建ramdisk,直接使用/dev/shm/就可达到很好的优化效果。 /dev /shm/需要注意的一个是容量问题,在linux下,它默认最大为内存的一半大小,使用df -h命令可以看到。但它并不会真正的占用这块内存,如果/dev/shm/下没有任何文件,它占用的内存实际上就是0字节;如果它最大为1G,里头放有 100M文件,那剩余的900M仍然可为其它应用程序所使用,但它所占用的100M内存,是绝不会被系统回收重新划分的,否则谁还敢往里头存文件呢? 默认的最大一半内存大小在某些场合可能不够用,并且默认的inode数量很低一般都要调高些,这时可以用mount命令来管理它。 mount -o size=1500M -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shm 在2G的机器上,将最大容量调到1.5G,并且inode数量调到1000000,这意味着大致可存入最多一百万个小文件。   为当/dev/shm空间不够时可以占用swap的空间,所以不用担心存储空间不够用。想想看,从磁盘IO操作到内存操作,php读写SESSION的速度会快多少?只是需要注意,存储在/dev/shm的数据,在服务器重启后会全部丢失。   默认系统就会加载/dev/shm ,它就是所谓的tmpfs,有人说跟ramdisk(虚拟磁盘),但不一样。象虚拟磁盘一样,tmpfs 可以使用您的 RAM,但它也可以使用您的交换分区来存储。而且传统的虚拟磁盘是个块设备,并需要一个 mkfs 之类的命令才能真正地使用它,tmpfs 是一个文件系统,而不是块设备;您只是安装它,它就可以使用了。  tmpfs有以下优势:  1,动态文件系统的大小。  2,tmpfs 的另一个主要的好处是它闪电般的速度。因为典型的 tmpfs 文件系统会完全驻留在 RAM 中,读写几乎可以是瞬间的。  3,tmpfs 数据在重新启动之后不会保留,因为虚拟内存本质上就是易失的。所以有必要做一些脚本做诸如加载,绑定的操作。  好了讲了一些大道理,还是讲讲应用吧:  首先在/dev/stm建个tmp文件夹,然后与实际/tmp绑定  mkdir /dev/shm/tmp  chmod 1777 /dev/shm/tmp  mount –bind /dev/shm/tmp /tmp(–bind )  在使用mount … 继续阅读

发表在 默认分类 | 标签为 , , , | 留下评论

【转】通过设置P3P头来实现跨域访问COOKIE

欢迎访问火丁笔记:http://huoding.com/ 火丁的订阅地址:http://huoding.com/feed 作者:老王 网上看了别人介绍的一片文章,说使用P3P可以完成跨域COOKIE操作,感觉很COOL,不过没有提供源代码,我胡乱写了一下,大家看看。 实际工作中,类似这样的要求很多,比如说,我们有两个域名,我们想实现在一个域名登录后,能自动完成另一个域名的登录,也就是PASSPORT的功能。 我只写一个大概,为了测试的方便,先编辑hosts文件,加入测试域名(C:WINDOWSsystem32driversetchosts) 127.0.0.1        www.a.com127.0.0.1        www.b.com 首先:创建 a_setcookie.php 文件,内容如下: <?php //header(‘P3P: CP=”CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR”‘); setcookie(“test”, $_GET['id'], time()+3600, “/”, “.a.com”); ?> 然后:创建 … 继续阅读

发表在 Javascript | 标签为 , | 留下评论

【转】Yii PHP 框架分析(三)

Yii PHP 框架分析(三)作者:wdy http://hi.baidu.com/delphiss/blog/item/357663d152c0aa85a1ec9c44.html Yii应用的入口脚本引用出了Yii类,Yii类的定义: class Yii extends YiiBase{} 由yiic创建的应用里Yii类只是YiiBase类的“马甲”,我们也可以根据需求定制自己的Yii类。 Yii(即YiiBase)是一个“helper class”,为整个应用提供静态和全局访问入口。 Yii类的几个静态成员:$_aliases : 存放系统的别名对应的真实路径$_imports : $_classes :$_includePaths php include paths$_app : CWebApplication对象,通过 Yii::app() 访问到$_logger : 系统日志对象 $_app 对象由 Yii::createWebApplication() 方法创建。 类自动加载 Yii基于php5的autoload机制来提供类的自动加载功能,自动加载器为YiiBase类的静态方法autoload()。 当程序中用new创建对象或访问到类的静态成员,php将类名传递给类加载器,由类加载器完成类文件的include。 autoload机制实现了类的“按需导入”,就是系统访问到类时才include类的文件。 YiiBase类的静态成员$_coreClasses 里预先存放了Yii自身的核心类名于对应的类文件路径。其他的Yii应用中用到的类可以用Yii::import() 导入,Yii::import()将单类的与对应类文件存放于$_classes中,以*通配符表示的路径加入到php include_path中。被Yii::import()导入的类文件或目录都记入$_imports中,避免多次导入。 /* … 继续阅读

发表在 Php | 标签为 , | 留下评论

【转】Yii PHP 框架分析 (一)

Yii PHP 框架分析 (一)作者:wdy http://hi.baidu.com/delphiss/blog/item/f7da86d787adb72506088b4b.html 基于yii1.0.8的代码分析的。用了一个下午整理的,流水账,感兴趣的凑合着先看,国庆期间推出个整理修改版,然后再完成后两个部分(MVC和Yii的整体结构分析)。 1. 启动 网站的唯一入口程序 index.php : $yii=dirname(__FILE__).’/../framework/yii.php’;$config=dirname(__FILE__).’/protected/config/main.php’; // remove the following line when in production modedefined(‘YII_DEBUG’) or define(‘YII_DEBUG’,true); require_once($yii);Yii::createWebApplication($config)->run(); 上面的require_once($yii) 引用出了后面要用到的全局类Yii,Yii类是YiiBase类的完全继承: class Yii extends YiiBase{} 系统的全局访问都是通过Yii类(即YiiBase类)来实现的,Yii类的成员和方法都是static类型。 2. 类加载 Yii利用PHP5提供的spl库来完成类的自动加载。在YiiBase.php 文件结尾处 spl_autoload_register(array(‘YiiBase’,’autoload’)); 将YiiBase类的静态方法autoload 注册为类加载器。 PHP autoload … 继续阅读

发表在 Php | 标签为 , , | 留下评论

button和submit

好长时间没写登陆了,不会写了。。。首先不希望是页面跳动,所以用了jQuery。然后想到用Ajax验证就不需要form表单提交了,所以直接干掉了form的action, method ,后来做完了。用的是button的onclick事件,但是老大说要按了enter就登录!晕。。。然后又想着怎么响应enter键的事件 什么if(window.event.keyCode==13) {}反正瞎搞了几次发现不好,又还不知道什么时候触发调用这段js代码。。。按我想是不是应该跟body onload 一个级别的。。。算了。。如果把button或者input的type由button改成submit,按enter键会跳走的!但是不成功的信息呈现出来马上就跳回当前页面了,这个过程应该是:显示错误 ==》跳转到home.php ==》判断后再跳回登录页面!因为我在验证文件login.php里设定的验证成功返回1且设定session[uid]=xx什么的,不成功就返回2.然后在回调函数里判断的。而home.php里判断session[uid]不存在就跳回登录页面了。咋办呢?后来又想到了用form 的onsubmit 事件,但是回调方法里怎么return 都接收不到,听说因为是异步操作。。我也不知道,之前弄Google地图时候在回调想改变全局变量也出现过问题。发现onsubmit只要不是FALSE 就要跳走。。。干脆搞了个损招,方法里不管是if 还是else的 都让它return FALSE。只有在回调里成功的情况用js提交表单跳转。这样没用到onsubmit=true 的情况了。。。也不需要用    document.login_form.submit();来提交了!又得把表单数据发一次,累,直接跳走算了!用window.location.href="home.php";  不知道一个好的登录应该怎样实现!费劲啊。。。    function check_login(url,tip){ var username=$("#username").val(); var password=$("#password").val(); if(username==”||password==”){ $(‘#’ + tip).html(‘<font color="red">用户名和密码都不能为空!</font>’); return false; }else{ $.post(url, {username: username, password: password},function(data){ //alert(data); if(data==1){ … 继续阅读

发表在 Ajax | 标签为 , , | 留下评论

Hibernate增删改

package com.cstp.hibernate; import java.util.Date; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; public class UpdatetUser { public static void main(String[] args) {       //读取hibernate.cfg.xml文件    //Configuration cfg = new Configuration().configure();       //if use hibernate.propperties file ,use 2 statements … 继续阅读

发表在 Hibernate | 标签为 , , | 留下评论

Hibernate查询

大概就这5种查询方式: package com.cstp.hibernate; import java.util.List; import java.util.logging.Logger; import org.hibernate.Criteria; import org.hibernate.Query; import org.hibernate.SQLQuery; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; import org.hibernate.criterion.DetachedCriteria; import org.hibernate.criterion.Restrictions; public class QueryUser { @SuppressWarnings("unchecked") public static void main(String[] args) {      Logger log = Logger.getAnonymousLogger();    … 继续阅读

发表在 Hibernate | 标签为 , | 留下评论