PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了php-Presta Shop注册时出错大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

最近,我为我的客户端进行了SEO优化,我不得不更改服务器上的某些功能,例如使用PHP 7和Presta Shop管理面板中的功能,以启用缓存和SEO链接.
我不使用Presta Shop,也不熟悉它,但是其中一些更改破坏了代码.
新用户尝试注册时,会收到该错误

Fatal error: Uncaught Error: Access to undeclared static property: Validate::$data in /home/unikalna/public_html/classes/ObjectModel.PHP:1032 Stack trace: #0 /home/unikalna/public_html/controllers/front/AuthController.PHP(406): ObjectModelCore->validateController() #1 /home/unikalna/public_html/controllers/front/AuthController.PHP(252): AuthControllerCore->processSubmitAccount() #2 /home/unikalna/public_html/classes/controller/Controller.PHP(171): AuthControllerCore->postProcess() #3 /home/unikalna/public_html/classes/Dispatcher.PHP(373): ControllerCore->run() #4 /home/unikalna/public_html/index.PHP(28): DispatcherCore->dispatch() #5 {main} thrown in /home/unikalna/public_html/classes/ObjectModel.PHP on line 1032

并且如果它已经注册并尝试购买东西.

版本:PrestaShop™1.6.0.6

解决:Presta Shop 1.6不能与PHP 7一起使用

解决方法:

/home/unikalna/public_html/classes/ObjectModel.PHP:1032

代码

if (!empty($value) || $value === '0' || ($field == 'postcode' && $value == '0')) {
    if (isset($data['validate']) && !Validate::$data['validate']($value) && (!empty($value) || $data['required'])) {
                $errors[$field] = '<b>'.self::displayFieldName($field, get_class($this), $htmlentities).'</b> '.Tools::displayError('is invalid.');
            } else {
                if (isset($data['copy_post']) && !$data['copy_post']) {
                    conTinue;
                }
                if ($field == 'passwd') {
                    if ($value = Tools::getValue($field)) {
                        $this->{$fielD} = Tools::encrypt($value);
                    }
                } else {
                    $this->{$fielD} = $value;
                }
            }
        }

替换为以下代码

新密码

if (!empty($value) || $value === '0' || ($field == 'postcode' && $value == '0')) {
   if (isset($data['validate']) && !call_user_func('Validate::'.$data['validate'],$value) && (!empty($value) || $data['required'])) {
    $errors[$field] = '<b>'.self::displayFieldName($field, get_class($this), $htmlentities).'</b> '.Tools::displayError('is invalid.');
            } else {
                if (isset($data['copy_post']) && !$data['copy_post']) {
                    conTinue;
                }
                if ($field == 'passwd') {
                    if ($value = Tools::getValue($field)) {
                        $this->{$fielD} = Tools::encrypt($value);
                    }
                } else {
                    $this->{$fielD} = $value;
                }
            }
        }

大佬总结

以上是大佬教程为你收集整理的php-Presta Shop注册时出错全部内容,希望文章能够帮你解决php-Presta Shop注册时出错所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: