Jump to content

problem dacce apres mise a jour derniere version 1.7.7


Recommended Posts

  • razaro changed the title to problem dacce apres mise a jour derniere version 1.7.7

Merci c'est bon j'ai accés mais j'ai un autre souci si je me connecte j'ai ce message d'erreur "Notice à la ligne 101 du fichier /home2/indica4c/public_html/vendor/symfony/symfony/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/StrictSessionHandler.php
[8] SessionHandler::gc(): ps_files_cleanup_dir: opendir(/var/cpanel/php/sessions/ea-php71) failed: Permission denied (13)"

et si je clique sur l'un des boutons

(1/1) ContextErrorException

Notice: SessionHandler::gc(): ps_files_cleanup_dir: opendir(/var/cpanel/php/sessions/ea-php71) failed: Permission denied (13)

in StrictSessionHandler.php line 101

at StrictSessionHandler->gc(1440)in SessionHandlerProxy.php line 83

at SessionHandlerProxy->gc(1440)

at session_start()in NativeSessionStorage.php line 149

at NativeSessionStorage->start()in NativeSessionStorage.php line 299

at NativeSessionStorage->getBag('attributes')in Session.php line 256

at Session->getBag('attributes')in Session.php line 280

at Session->getAttributeBag()in Session.php line 73

at Session->get('_security_main')in ContextListener.php line 91

at ContextListener->handle(object(GetResponseEvent))in WrappedListener.php line 46

at WrappedListener->handle(object(GetResponseEvent))in TraceableFirewallListener.php line 35

at TraceableFirewallListener->handleRequest(object(GetResponseEvent), object(Generator))in Firewall.php line 84

at Firewall->onKernelRequest(object(GetResponseEvent))in FirewallListener.php line 48

at FirewallListener->onKernelRequest(object(GetResponseEvent), 'kernel.request', object(TraceableEventDispatcher))in WrappedListener.php line 115

at WrappedListener->__invoke(object(GetResponseEvent), 'kernel.request', object(TraceableEventDispatcher))in EventDispatcher.php line 214

at EventDispatcher->doDispatch(array(object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener)), 'kernel.request', object(GetResponseEvent))in EventDispatcher.php line 44

at EventDispatcher->dispatch('kernel.request', object(GetResponseEvent))in TraceableEventDispatcher.php line 143

at TraceableEventDispatcher->dispatch('kernel.request', object(GetResponseEvent))in HttpKernel.php line 127

at HttpKernel->handleRaw(object(Request), 1)in HttpKernel.php line 68

at HttpKernel->handle(object(Request), 1, false)in Kernel.php line 200

at Kernel->handle(object(Request), 1, false)in index.php line 82

Link to comment
Share on other sites

Bonjour,

De mon coté, j'ai également un problème avec un écran qui ressemble fort a ceux montré par jobbamba.

J'étais sous Prestashop 1.7.6.8 et j'ai fais la mise à jour vers la dernière version 1.7.7.0, et du coté PHP, je suis sous 7.3.

Le Problème qui se produit réapparait à chaque nouvelle commande.

Lorsqu'une nouvelle commande arrive, dans le backoffice, si on veut cliquer sur la commande pour en voir le contenu, on arrive sur la page d'erreur (voir code ci-dessous). Depuis le Backoffice, si on va dans Client>Clients, puis qu'on ouvre la fiche client (du client qui a passé la commande qu'on ne peut visualiser), et qu'ensuite, on clique sur le petit crayon "Modifier" l'adresse, dans la grand espace en bas de la fiche client, on arrive sur la même page d'erreur.

JE me suis donc rendu dans la table "address" vie phpmyadmin, et j'ai constaté que certains champs de l'adresse du client avec la case à cocher "Null" qui était cochée, là où le client a laissé dans champs non renseignés. Pourtant, dans le backoffice de Prestashop, ces champs ne sont pas coché obligatoires et bien marqués "optionnels"

Qu'il y ait inscription d'un nouveau client, ou qu'un ancien client passe une commande provoque la même conséquence : les champs vides se retrouve cochés "Null"

Et je dois, manuellement rentrer dans la base de données mysqsl, dans la table "address" sur la ligne correspondant à l'adresse du client concerné, et décocher manuellement toutes les cases de la colonne "Null" pour pouvoir retrouver un accès à la commande dans le backoffice.

En résumé, j'ai l'impression que Prestashop décide lui même de rendre ces champs obligatoires sans obliger le client à les remplir, ce qui provoque des valeurs interdites dans les champs laissés vides.

Et je n'ai aucune idée de comment résoudre ce problème en dehors d'aller faire les modifications manuellement dans la base de donnée. Ce qui est tout simplement invivable.

Donc, si quelqu'un avait une bonne idée à me suggérer, ça serait super!

Voici le code d'erreur de la page en mode Debug - j'ai anonymisé certaines données qui sont liées aux données structurelles personnalisées du site (comme le nom des répertoire que j'ai remplacé par XXX) et les données du client que j'ai remplacé par les intitulés des champs (par exemple, s'il y avait "Lucien", j'ai écris "Prénom")


Type error: Argument 4 passed to PrestaShop\PrestaShop\Core\Domain\Order\QueryResult\OrderShippingAddressForViewing::__construct() must be of the type string, null given, called in /homepages/46/XXXXXXXX/htdocs/XXXXXXXXXXXXX/src/Adapter/Order/QueryHandler/GetOrderForViewingHandler.php on line 269

    Exception Logs 2 Stack Trace 

Symfony\Component\Debug\Exception\ FatalThrowableError
in src/Core/Domain/Order/QueryResult/OrderShippingAddressForViewing.php (line 90)

        /**
         * @var string
         */
        private $mobilePhoneNumber;
        public function __construct(
            int $addressId,
            string $firstName,
            string $lastName,
            string $companyName,
            string $address1,

OrderShippingAddressForViewing->__construct(161, 'Prénom', 'Nom', null, 'adresse1', '0', '', 'ville', 'France', 'codepostal', 'telephone', null) in src/Adapter/Order/QueryHandler/GetOrderForViewingHandler.php (line 269)

                $stateName,
                $address->city,
                $country->name[$order->id_lang],
                $address->postcode,
                $address->phone,
                $address->phone_mobile
            );
        }
        /**
         * @param Order $order

GetOrderForViewingHandler->getOrderShippingAddress(object(Order)) in src/Adapter/Order/QueryHandler/GetOrderForViewingHandler.php (line 186)

                $order->hasBeenDelivered(),
                $order->hasBeenShipped(),
                $invoiceManagementIsEnabled,
                new DateTimeImmutable($order->date_add),
                $this->getOrderCustomer($order),
                $this->getOrderShippingAddress($order),
                $this->getOrderInvoiceAddress($order),
                $this->getOrderProducts($query->getOrderId()),
                $this->getOrderHistory($order),
                $this->getOrderDocuments($order),
                $this->getOrderShipping($order),

GetOrderForViewingHandler->handle(object(GetOrderForViewing)) in vendor/league/tactician/src/Handler/CommandHandlerMiddleware.php (line 71)

                    $command,
                    "Method '{$methodName}' does not exist on handler"
                );
            }
            return $handler->{$methodName}($command);
        }
    }

CommandHandlerMiddleware->execute(object(GetOrderForViewing), object(Closure)) in vendor/league/tactician/src/CommandBus.php (line 62)

                if (! $middleware instanceof Middleware) {
                    throw InvalidMiddlewareException::forMiddleware($middleware);
                }
                $lastCallable = function ($command) use ($middleware, $lastCallable) {
                    return $middleware->execute($command, $lastCallable);
                };
            }
            return $lastCallable;
        }

CommandBus->League\Tactician\{closure}(object(GetOrderForViewing)) in src/Core/CommandBus/Middleware/CommandRegisterMiddleware.php (line 79)

            $commandName = $this->commandNameExtractor->extract($command);
            $handler = $this->handlerLocator->getHandlerForCommand($commandName);
            $this->executedCommandRegistry->register($command, $handler);
            return $next($command);
        }
    }

CommandRegisterMiddleware->execute(object(GetOrderForViewing), object(Closure)) in vendor/league/tactician/src/CommandBus.php (line 62)

                if (! $middleware instanceof Middleware) {
                    throw InvalidMiddlewareException::forMiddleware($middleware);
                }
                $lastCallable = function ($command) use ($middleware, $lastCallable) {
                    return $middleware->execute($command, $lastCallable);
                };
            }
            return $lastCallable;
        }

CommandBus->League\Tactician\{closure}(object(GetOrderForViewing)) in vendor/league/tactician/src/CommandBus.php (line 42)

            if (!is_object($command)) {
                throw InvalidCommandException::forUnknownValue($command);
            }
            $middlewareChain = $this->middlewareChain;
            return $middlewareChain($command);
        }
        /**
         * @param Middleware[] $middlewareList
         *

CommandBus->handle(object(GetOrderForViewing)) in src/Core/CommandBus/TacticianCommandBusAdapter.php (line 54)

        /**
         * {@inheritdoc}
         */
        public function handle($command)
        {
            return $this->bus->handle($command);
        }
    }

TacticianCommandBusAdapter->handle(object(GetOrderForViewing)) in src/PrestaShopBundle/Controller/Admin/Sell/Order/OrderController.php (line 401)

         */
        public function viewAction(int $orderId, Request $request): Response
        {
            try {
                /** @var OrderForViewing $orderForViewing */
                $orderForViewing = $this->getQueryBus()->handle(new GetOrderForViewing($orderId));
            } catch (OrderException $e) {
                $this->addFlash('error', $this->getErrorMessageForException($e, $this->getErrorMessages($e)));
                return $this->redirectToRoute('admin_orders_index');
            }

OrderController->viewAction(4969, object(Request)) in vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php (line 151)

            $this->dispatcher->dispatch(KernelEvents::CONTROLLER_ARGUMENTS, $event);
            $controller = $event->getController();
            $arguments = $event->getArguments();
            // call controller
            $response = \call_user_func_array($controller, $arguments);
            // view
            if (!$response instanceof Response) {
                $event = new GetResponseForControllerResultEvent($this, $request, $type, $response);
                $this->dispatcher->dispatch(KernelEvents::VIEW, $event);

HttpKernel->handleRaw(object(Request), 1) in vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php (line 68)

        public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true)
        {
            $request->headers->set('X-Php-Ob-Level', (string) ob_get_level());
            try {
                return $this->handleRaw($request, $type);
            } catch (\Exception $e) {
                if ($e instanceof RequestExceptionInterface) {
                    $e = new BadRequestHttpException($e->getMessage(), $e);
                }
                if (false === $catch) {

HttpKernel->handle(object(Request), 1, false) in vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php (line 200)

            $this->boot();
            ++$this->requestStackSize;
            $this->resetServices = true;
            try {
                return $this->getHttpKernel()->handle($request, $type, $catch);
            } finally {
                --$this->requestStackSize;
            }
        }

Kernel->handle(object(Request), 1, false) in admin006z8kx1f/index.php (line 82)

    $request = Request::createFromGlobals();
    Request::setTrustedProxies([], Request::HEADER_X_FORWARDED_ALL);
    try {
        require_once __DIR__.'/../autoload.php';
        $response = $kernel->handle($request, HttpKernelInterface::MASTER_REQUEST, false);
        $response->send();
        $kernel->terminate($request, $response);
    } catch (NotFoundHttpException $exception) {
        define('ADMIN_LEGACY_CONTEXT', true);
        // correct Apache charset (except if it's too late)

 

Edited by JeromeGD
Ajout de précisions (see edit history)
Link to comment
Share on other sites

Bonjour et merci pour les commentaires d'aide, mais le problème semble être résolu.

Et je pense qu'il devait s'agir d'un problème dans la version non mise à jour des modules natifs, parce que lorsque j'ai rédigé mon post, j'étais à jour de tous les modules, et il y avait les problèmes dont je vous ai parlé, et depuis, Prestashop à relâché une mise à jour de 11 modules (rien que ça!) et a priori, le problème est résolu. Le propriétaire du site m'a dit avoir pu utiliser tout ce qui ne fonctionnait plus.

J'espère que pour ceux qui ont des problèmes, ils vont se résoudre de la même façon. encore une démonstration de l'importance des mises à jours des modules, aussi bien pour le coté fonctionnel du site que pour sa sécurité.

J'en profite pour parler d'un module de Sécurité pour Prestashop qui est tout simplement incroyable : SecurityPro (disponible dans sur le site prestashop.addons.com. A l'heure actuelle, c'est tout simplement le meilleur outil de protection disponible, le plus complet (et très très loin d'être le plus cher!), et ceux qui ne sont pas des développeurs aguerris, capables de mettre en place toutes les sécurités nécessaire sur un Prestashop, vont y trouver une foule d'outils qui feront leur bonheur : des outils de protection, de sauvegarde des fichiers du site et des base de donnée avec possibilité de les faire en local (répertoire du site), sur votre Dropbox (et une version avec le stockage sur GoogleDrive est en cours de réalisation), mais si j'en parle ici, c'est parce qu'il comporte des outils d'analyse du script, et du serveur pour déterminer les critères php à activer ou à désactiver, ou encore à régler et qui peuvent permettre de résoudre beaucoup de problèmes fonctionnels et c'est en ca que ce paragraphe a sa place ici : pour ceux que ca intéresseraient, voici un lien vers la fiche produit sur Prestashop addons : https://addons.prestashop.com/fr/securite-access/44413-security-pro-all-in-one.html).

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...