你现在的位置:首页 > PHP网站建设知识库 > ZenCart > 正文

zencart中使用自定义session

定义的session在Zen Cart程序中读取不到值,后来分析了一下得出如下结论。 Zen Cart自定义了session的处理函数,session_save_path设在了/cache/文件夹,在

include/configure.php

里有个选项
define(’STORE_SESSIONS’, ‘db’);
// use ‘db’ for best support, or ” for file-based storage
设置session的保存方式。

不同的程序间要想共享session数据,至少要遵循以下几个条件:

session_save_path 相同,session_id相同,当然session的保存方式肯定要一样,php默认的session保存方式就是文件存储,而保存目录就在系统的临时目录。 这里我们要想Zen Cart 读取到我们自己定义的 session变量,就需要我们在自己的程序里把session的存储目录放到zc目录下的cache文件夹,例如 session_save_path(’e:/zc/cache’),
然后修改zc/include/configure.php文件中
define(’STORE_SESSIONS’, ‘db’);
修改为 define(’STORE_SESSIONS’, ”);
这样就让Zen Cart的session也以文件形式存储,就可以实现自定义session的共享了! 以上的原理适用于其他类似的不同程序间session共享的问题,其实 Zen Cart中使用自定义 session的最简单的方法是直接在自己的程序最顶部 require进来Zen Cart 的application_top.php即可,简单固然简单,但了解原理更重要!