落后就要挨打,爱拼才会赢。有限的生命也可以创造奇迹,只要每天都有进步!
有一种拼博叫坚持...

首页>>ZEN-CART>>如何在zen-cart中使用自定义session

如何在zen-cart中使用自定义session

最近在给zen cart添加图片验证码功能的时候同时碰到了一个问题,自己定义的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保存方式就是文件存储,而保存目录就在系统的临时目录。

经过测试,有两种方式可以使用自定义session:

一,修改存储方式为文件存储。

这里我们要想zen cart 读取到我们自己定义的 session变量,就需要我们在自己的程序里把session的存储目录设置到同一个地方,比如可以放到:根目录下的cache文件夹下,也可以是其它任意可写目录,例如 session_save_path(‘e:/zc/cache’),然后修改 include/configure.php文件中

define(‘STORE_SESSIONS’, ‘db’); 修改为 define(‘STORE_SESSIONS’, ”);这样就让zen cart的session也以文件形式存储,就可以实现自定义session的共享了!

二,调用application_top.php

由于zen-cart中seseeion是在application_top.php中初始化,所有调用此文件,就可以实现与全站同样的session环境. application_top.php中加载了 includes/init_includes/init_sessions.php 实现了初始化。

对于验证码的实际情况,可以在显示验证码的页面顶部加上 includes/application_top.php 即可。

值得一提的是,有些验证码生成类中可能用到了 ob_clean() 函数, 如果出现加上面的文件出现页面无法打开或者验证码无法显示,请注释掉此函数。

 

« 上一篇:

相关文章:



One Comment (我要评论)

发表评论

You must be logged in to post a comment.