首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP 5.3.3和kirby的会话

PHP 5.3.3和kirby的会话
EN

Stack Overflow用户
提问于 2014-06-02 09:10:15
回答 1查看 571关注 0票数 0

情况

我已经在客户端网站上实现了kirby Auth插件的修改版本,它基本上是这样工作的。

  • 用户帐户是简单的kirby内容文件,标题充当登录名,密码字段包含用户密码的bcrypt加密版本。
  • 在网站上,访问者可以点击"Customer Area",这将进入一个由修改后的auth插件管理的模板(该插件重定向到“登录”表单)。
  • 该网站使用多种语言。所以这个帐户文件看起来像content/extranet/login/login.fr.txt,或者作为一个例子,content/extranet/bastian/bastian.fr.txt,这是修改后的Auth插件所要寻找的,它找到这个文件并读取它,检查密码和用户登录。
  • 此系统要求帐户页标题与其URL相同,并且始终是不可见页面
  • 用户已登录,只能在安全模板中看到他文件夹中的文件。

这一切在我的本地MAMP服务器上都很好,就像你在屏幕截图中看到的那样,但是在生产服务器http://www.driving-evolution.com上,这不起作用,我不知道为什么,我已经在很多地方看过了,我不明白发生了什么。(它在暂存服务器上也不工作)

在生产服务器上,无论输入一个好的还是坏的登录,表单都不会显示任何错误消息,也不会记录用户。一开始我以为这可能是因为我的bcrypt安装,但事实并非如此,因为我禁用了它(并且使用了普通的密码),而且它仍然没有工作。

问题似乎不是来自这里的插件,而是来自我的活动PHP堆栈和本地php堆栈之间的区别(我猜是在php会话处理上)。

远程PHP为5.3.3

以下是两个安装的CURL示例输出:

工作(当地)

代码语言:javascript
复制
curl -d "username=test&password=test" -i devo.loc/fr/login

HTTP/1.1 302 Found
Date: Tue, 27 May 2014 12:59:49 GMT
Server: Apache/2.2.25 (Unix) mod_ssl/2.2.25 OpenSSL/0.9.8y DAV/2 PHP/5.5.3
X-Powered-By: PHP/5.5.3
Set-Cookie: PHPSESSID=9249a942248a2382d8eb10090bf5d825; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: authFrontend=mc06csp25; expires=Wed, 28-May-2014 12:59:49 GMT; Max-Age=86400; path=/
Set-Cookie: PHPSESSID=b38ec0b342356c2c38778e4a6925f085; path=/
Set-Cookie: authFrontend=8qyyn; expires=Wed, 28-May-2014 12:59:49 GMT; Max-Age=86400; path=/
Location: http://devo.loc/fr/extranet
X-UA-Compatible: IE=edge
Vary: Accept-Encoding
Content-Length: 0
Content-Type: text/html; charset=utf-8

失败(远程)

代码语言:javascript
复制
curl -d "username=test&password=test" -i www.driving-evolution.com/fr/login

HTTP/1.1 200 OK
Date: Tue, 27 May 2014 13:01:32 GMT
Server: Apache
X-Powered-By: PHP/5.3.3
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: PHPSESSID=6j9o1i4djetojtbg444i51efm7; path=/
Vary: Accept-Encoding
X-UA-Compatible: IE=edge
Connection: Keep-Alive, close
Transfer-Encoding: chunked
Content-Type: text/html

有用LINKS

远程PHPVER:http://www.driving-evolution.com/phpver.php

当它在本地工作时的截图

希望有人能帮我这个忙!如果想要更多的信息,我会给你的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-02 09:33:08

事实证明,这是CMS的一个问题,文件缓存是打开的,而不是忽略“登录”、“注销”和“外联网”文件(所有这些文件都与客户区域相关),必须添加:

代码语言:javascript
复制
c::set('cache.ignore', array('api', 'sitemap', 'extranet', 'account', 'login', 'logout'));

我的kirby配置(api和sitemap是不相关的)。

这解决了登录表单缓存时的问题,因此不会触及服务器上的任何内容。现在表单没有缓存。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23990954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档