Jump to content

Problème version php (7.4) et erreur 500 si php 7.3 - prestashop 1.7.7.2


Recommended Posts

Bonjour,

 

Je rencontre un problème avec une boutique.

Elle utilise ShoppingBo pour gérer ses commandes sauf que ces derniers temps cela ne fonctionne plus.

Voici l'erreur qui est retournée :

<error>
<message>
<![CDATA[ [PHP Unknown error #8192] array_key_exists(): Using array_key_exists() on objects is deprecated. Use isset() or property_exists() instead (/home/idXXX/public_html/src/Adapter/EntityMapper.php, line 99) ]]>
</message>
</error>

Après quelques recherches, je sais que c'est surement dû à la version de PHP et en effet, mon serveur n'est pas sur la bonne version.

Il utilise php 7.4 et pour prestashop 1.7 il faut php 7.3.

J'ai tenté de modifier la version php de mon serveur sauf que je me retrouve avec une erreur 500 sur mon site.

Est-ce que quelqu'un aurai une idée ?

Merci d'avance pour votre aide

Link to comment
Share on other sites

Bonjour,

 

Merci pour votre réponse.

Voici l'erreur que j'obtien :

 

[PrestaShopDatabaseException]

Unknown MySQL error<br /><br /><pre>SELECT s.id_shop, CONCAT(su.physical_uri, su.virtual_uri) AS uri, su.domain, su.main FROM by_shop_url su LEFT JOIN by_shop s ON (s.id_shop = su.id_shop) WHERE (su.domain = 'belym.com' OR su.domain_ssl = 'belym.com') AND s.active = 1 AND s.deleted = 0 ORDER BY LENGTH(CONCAT(su.physical_uri, su.virtual_uri)) DESC</pre>
at line 769 in file classes/db/Db.php

764.         if ($webservice_call && $errno) {
765.             $dbg = debug_backtrace();
766.             WebserviceRequest::getInstance()->setError(500, '[SQL Error] ' . $this->getMsgError() . '. From ' . (isset($dbg[3]['class']) ? $dbg[3]['class'] : '') . '->' . $dbg[3]['function'] . '() Query was : ' . $sql, 97);
767.         } elseif (_PS_DEBUG_SQL_ && $errno && !defined('PS_INSTALLATION_IN_PROGRESS')) {
768.             if ($sql) {
769.                 throw new PrestaShopDatabaseException($this->getMsgError() . '<br /><br /><pre>' . $sql . '</pre>');
770.             }
771. 
772.             throw new PrestaShopDatabaseException($this->getMsgError());
773.         }
774.     }

 

Comment je désactive le mode débug sans passer par le backoffice ? (je sais que c'est possible mais je me souviens plus dans quel fichier c'est)

Edit : pour désactiver le mode debug, c'est dans le fichier ./config/defines.inc.php puis à la 2ème ligne, passer de true à false

if (!defined('_PS_MODE_DEV_')) {
	define('_PS_MODE_DEV_', false);
}

 

Edited by Arnaud Laborde (see edit history)
Link to comment
Share on other sites

  • 2 weeks later...
Il y a 12 heures, Arnaud Laborde a dit :

Bonjour,

J'ai testé en désactivant le cache, vider le cache et recompiler mais j'ai toujours la même erreur.

 

Voici une capture d'écran de l'erreur.

 

capture-error500-belym.PNG

Met PHP version 7.3

Il y a 12 heures, Arnaud Laborde a dit :

Bonjour,

J'ai testé en désactivant le cache, vider le cache et recompiler mais j'ai toujours la même erreur.

 

Voici une capture d'écran de l'erreur.

 

capture-error500-belym.PNG

Si tu change la version php il faut penser à aller supprimer tous les fichiers dans ROOT/var/cache/

Edited by hshaker (see edit history)
Link to comment
Share on other sites

il y a 53 minutes, Mediacom87 a dit :

Bonjour,

cette erreur est strictement lié à votre version PHP donc mettez PHP 7.2 convenablement en validant bien que votre espace d'hébergement l'utilise bien sur votre boutique.

Tout-à-fait correcte. 

Et penser à contrôler les accès datas bases 

Et que toute les tables elles sont présents dans la db

Link to comment
Share on other sites

il y a 57 minutes, Mediacom87 a dit :

Bonjour,

cette erreur est strictement lié à votre version PHP donc mettez PHP 7.2 convenablement en validant bien que votre espace d'hébergement l'utilise bien sur votre boutique.

Bonjour, qu'entendez vous par "convenablement" et par "votre hébergement l'utilise bien sur votre boutique" ?

J'ai fait un fichier info.php avec dedans 

<?php phpinfo() ?>

Et quand je passe en 7.2 ça m'a l'air correct capture7.2.PNG.d1471a8b1b796d22663c35076a8a0c32.PNG

 

Link to comment
Share on other sites

il y a 20 minutes, hshaker a dit :

Tout-à-fait correcte. 

Et penser à contrôler les accès datas bases 

Et que toute les tables elles sont présents dans la db

Les tables _shop et _shop_url existent bien.

Comment vérifier les accès db ?

 

Mais après c'est effectivement un problème de quand je mets ma version PHP et les paramètres de l'hébergement, car étant donné que ça fonctionne avec php 7.4 et pas avec 7.3 ou 7.2, il ne devrait pas y avoir de raison que cela vienne des fichiers ?

 

Je vous remercie vraiment pour votre aide !

Link to comment
Share on other sites

il y a 38 minutes, Arnaud Laborde a dit :

Bonjour, qu'entendez vous par "convenablement" et par "votre hébergement l'utilise bien sur votre boutique" ?

c'ets exactement cela, en fonction de votre hébergeur et de la gestion de votre hébergement vous pouvez définir une version globale de PHP et une version spécifique par nom de domaine, ce qui fait que si vous changez que la version global sur votre boutique rien ne change, mais si vous vérifiez bien sur le domaine de la boutique alors pas de souci.

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...