将 CakePHP 网站升级到 PHP 7
Upgrading CakePHP web site to PHP 7
我接管了一个为 PHP 5.4 和 Cake2.x 编写的网站。我将 PHP 升级到 7.2,将 Cake 升级到 2.10。现在没有人可以登录了。我开始调试,但我觉得自己掉进了一个兔子洞。在 FormAuthenticate::authenticate(CakeRequest $request, CakeResponse $response)
中是语句 $fields = $this->settings['fields'];
之后我添加了 $ex = fopen('php://stderr', 'a');
fputs($ex, "fields=" . json_encode($fields) . "\n");
which output
fields={"username":"username","password":"password"}
而不是我在网页上输入的实际用户名和密码。我尝试用实际的用户名和密码重新分配 fields
但函数调用方法 _checkFields
调用 $request->data
其中 returns 一个空字符串。
显然我在这里采取了错误的方法。我在升级中做错了什么,或者没有做某事;不仅仅是改变 composer.json
和 运行 composer update
。有什么建议吗?
我通过将 CakePHP 降级到 2.9.9 版本解决了这个问题。
我接管了一个为 PHP 5.4 和 Cake2.x 编写的网站。我将 PHP 升级到 7.2,将 Cake 升级到 2.10。现在没有人可以登录了。我开始调试,但我觉得自己掉进了一个兔子洞。在 FormAuthenticate::authenticate(CakeRequest $request, CakeResponse $response)
中是语句 $fields = $this->settings['fields'];
之后我添加了 $ex = fopen('php://stderr', 'a');
fputs($ex, "fields=" . json_encode($fields) . "\n");
which output
fields={"username":"username","password":"password"}
而不是我在网页上输入的实际用户名和密码。我尝试用实际的用户名和密码重新分配 fields
但函数调用方法 _checkFields
调用 $request->data
其中 returns 一个空字符串。
显然我在这里采取了错误的方法。我在升级中做错了什么,或者没有做某事;不仅仅是改变 composer.json
和 运行 composer update
。有什么建议吗?
我通过将 CakePHP 降级到 2.9.9 版本解决了这个问题。