THELIA Forum

Welcome to the THELIA support and discusssion forum

Offline


Bonjour à tous,

Suite à l'incendie chez OVH de la semaine dernière, j'ai du mettre en place en express un nouveau serveur pour la copie d'une boutique qui tourne sur 1.5.4.3.

Le soucis c'est qu'en MySQL 5.7 (à priori la version minimum sur une Debian 10), Thelia ne fonctionne pas correctement.
Plus précisément les INSERT et DELETE ne passent pas (nouveau client, codes promo ...).

Une solution qui fonctionne (sans doute pas du tout optimale ni sécurisée !) : mettre le sql_mode de MySQL sur ''.
Plutôt que de modifier cette variable dans la config de MySQL on peut la changer à la connexion PHP pour la session en cours.

Dans le fichier classes/Cnx.class.php, remplacer :

mysql_select_db(THELIA_BD_NOM, self::$db_handle) or die('Echec de selection de la base de données.');

Par :

mysql_select_db(THELIA_BD_NOM, self::$db_handle) or die('Echec de selection de la base de données.');
mysql_query("SET SESSION sql_mode = ''"); // On désactive le mode strict pour cette session PHP (compatibilité MySQL 5.7)

Avec ça tout est fonctionnel chez moi smile

Pour info sur mon installation toute fraiche de MySQL 5.7 mon sql_mode ressemble à ça :

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

---

Autre info, sur une base de donnée de type CloudDB la fonction PASSWORD est désactivée, il faut donc la remplacer (une solution a été donnée sur un autre topic il me semble.

Si besoin, ma solution :

Remplacer les occurances de PASSWORD('%s') dans les fichiers Client.class.php et Administrateur.class.php par :

CONCAT('*', UPPER(SHA1(UNHEX(SHA1('%s')))))

En espérant que ça puisse vous aider.

Last edited by tosave (15-03-2021 17:22:06)

Offline


Merci pour ce retour


OpenStudio Toulouse