php - Yii session 数据不为 CCaptcha 保留

标签 php session yii

要在 Yii 中启用 session ,您需要做什么特别的事情吗?

我在使用 Yii 的 CCaptcha 包时遇到了问题。我遇到的最终问题是验证码验证每次都失败,因为之前的验证码字符串没有在页面浏览之间保留。在我的本地环境中一切正常,但在生产服务器上却失败了。

我已将所有内容追溯到 session 。

如果我清除我的 cookie,我可以看到设置了 PHPSESSION cookie,所以 PHP 正在执行它的工作。

但是如果我把这段代码放到页面中...

$session=new CHttpSession;
$session->open();
header("X-Session: " . $session['testval']. ' at ' . time());
$session['testval'] = time();

...我在我的(工作中的)开发服务器上得到了这个结果:

  • 页面 View 1:X session :1341416149
  • 页面 View 2:X session : 1341416149 在 1341416152
  • 页面 View 3:X session :1341416152 at 1341416163

但是在生产服务器上我得到了这个:

  • 页面 View 1:X session :1341415456
  • 页面 View 2:X session :位于 1341415518
  • 页面 View 3:X session :1341415530

很明显 session 数据没有被保留。有什么想法吗?

最佳答案

我讨厌回答我自己的问题,但就我而言,问题是生产服务器上的 CHttpSession 配置不正确。我不确定 savePath 指向哪里,但是当我将它明确设置为 /tmp 时,我可以看到 session 数据在页面 View 中得到了保留。这是我最终在 /protected/config/main.php 中使用的内容:

// application components
'components'=>array(
    'session'=>array(
        'autoStart'=>true,
        'sessionName'=>'session',
        'savePath'=>'/tmp', // this is the default, but still needs to be explicitly set
        'timeout'=>1440
    ),
    ...

关于php - Yii session 数据不为 CCaptcha 保留,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11332200/

相关文章:

ruby-on-rails - Rails 3 中的 SqlSessionStore

yii - 如何禁用 CGridView 中列的排序?

php - laravel 5.1 中的 PDF 图像缩略图预览?

php - 想在 javascript 函数中将 php 变量作为参数传递?

java - Tomcat - 自定义 session Cookie 处理

javascript - Yii CJuiAutoComplete - 在 php 中将用户选择的值存储到数据库的最简单方法?

php - 使用 CDbCriteria 根据值数组查询数据库

php - 选项值未提交到 MySQL 数据库 PHP

php - 如何将本地 Laravel Web 项目上传到服务器?

java - Spring session bean管理