Problème lors de commande avec le ecommerce
Autor: Ba NaBonjour,
lors de commande sur mon ecommerce, par exempe cette page https://www.templenergetique.ch/oeuf-de-jade-oeuf-de-yoni.html
- le client peut cliquer "ajouter" un produit, cela ouvre la page du panier, jusque la tout ok
- dès que le client clique sur "procéder" pour passer à la prochaine étape de la commande, la page "données du client" s'ouvre avec en en-tête les messages d'erreur ci-dessous (et les infos de paiement ne sont pas données).
Que puis-je faire pour régler ce problème, qui est apparu récemment (auparavant tout fonctionnais bien, il me semble que c est depuis une mise à jour)
avec mes remerciements,
Nathalie
Warning: Undefined array key "auto_increment" in /home/clients/760ab99f3cd115f1337bc2bc8dacac9f/web/res/x5engine.php on line 6580
Warning: Undefined array key "auto_increment" in /home/clients/760ab99f3cd115f1337bc2bc8dacac9f/web/res/x5engine.php on line 6580
Warning: Undefined array key "auto_increment" in /home/clients/760ab99f3cd115f1337bc2bc8dacac9f/web/res/x5engine.php on line 6580
Warning: Undefined array key "auto_increment" in /home/clients/760ab99f3cd115f1337bc2bc8dacac9f/web/res/x5engine.php on line 6580
Hello Nathalie,
Cela ressemble fort à une erreur du PHP activé sur le serveur qui héberge le site. Le panneau d'administration en ligne affiche aussi des erreurs : https://www.templenergetique.ch/admin/login.php
Quelle est la version actuellement activée sur le serveur ? Est-ce que tout est au vert sur le panneau d'administration en ligne (PASS) ?
Il semble exister deux versions du projet sur le serveur. Une en version 16.3.1 avec un index.html, et une en version 2023.3.5 avec un index en PHP :
<meta name="generator" content="Incomedia WebSite X5 Professional 16.3.1 - www.websitex5.com" />
<meta name="generator" content="Incomedia WebSite X5 Pro 2023.3.5 - www.websitex5.com" />
https://www.templenergetique.ch/index.html ---- https://www.templenergetique.ch/
Solution... Nettoyer complètement le serveur des deux versions existantes, puis Exporter la bonne version dans sa totalité. Attention toutefois à ne pas effacer certains fichiers créés par l'hébergeur s'il en existe (dossier log, fichier .htaccess, etc... Questionner le support de l'hébergeur si besoin...).
ATTENTION... Faire, avant toute manipulation, une sauvegarde IWZIP du projet, absolument nécessaire en cas de plantage ou mauvaise manipulation...
@Suivre,
J.P.
Autor
Merci J.P. pour votre retour et vos conseils,
j'ai donc fait de l'ordre et retiré la 2eme version
le PHL était à 8.0, lorsque je le descend à 7.4, cela semble fonctionner. Le PASS du panneau admin est au vert, également lorsque le PHP est à 8.0, mais à 8.0, cela met des lignes d'erreur au-dessus (Warning: Undefined array key "auto_increment" in /home/clients/760ab99f3cd115f1337bc2bc8dacac9f/web/res/x5engine.php on line 6580)
L'hébergeur déconseille de rester avec la version à 7.4 "obsolète et vulnérable". Que me conseillez-vous pour que mon site WebSiteX5 Pro 2023.3.5 soit compatible avec une version plus récente 8.0, 8.1 ou même 8.2?
je vous mets en pce jointe les infos sous l indicateur PHP, peut-être dois-je modifier qqchose?
Merci pour vos infos,
cordialement,
Nathalie
Hello Nathalie,
Avec grand plaisir ! MAIS.....
Je vois toujours en ligne le site en version 16.3.1 : https://www.templenergetique.ch/index.html
Sur le code source de la page, on voit l'URL principale sous cette forme :
<meta property="og:url" content="https://www.templenergetique.ch/error-404-not_found.html.html" />
Si on clique sur https://www.templenergetique.ch/error-404-not_found.html.html/admin , on a un affichage des plus bizarres...
et l'URL https://www.templenergetique.ch/error-404-not_found.html.htmlamène sur le bon site...
Pourquoi conserver l'ancienne version 16 du projet alors que l'URL du nouveau site est la même ? Sauf que l'ancienne version est en index.html et la nouvelle en index.php...
Le mélange des fichiers des deux versions sur le serveur peut causer des soucis d'affichage et/ou de fonctionnalités...
Une recherche Google sur "templenergetique" affiche le bon site + le site "online...":
Pour le PHP, la dernière version du logiciel supporte la version 8.2... A tester peut-être pour voir ce que ça donne ?
@+, J.P.
Suite... Une petite dernière... ;o)
Je vois que le bouton "Login" du site en version 2023.3.5 amène sur le site "online"... Normal ?
J.P.
Autor
Hello,
le bouton "login" du site amène sur la page login du site de formation, c est fait exprès.
"Pourquoi conserver l'ancienne version 16 du projet alors que l'URL du nouveau site est la même ? Sauf que l'ancienne version est en index.html et la nouvelle en index.php..." --> ce n est pas fait exprès, je pensais que la nouvelle version écrasait l ancienne et qu une seule version était sur le serveur. J ai effacé et reloader. j espère que c est ok cette fois-ci...
par contre, je vois 2 folder pour le blog par exemple, surement il doit y en avoir qu un? même lorsque je les efface les 2 et que je reloade le site, ils reviennent les 2.
j ai retesté le PHP version 8.0, mais il y a tjs le message d erreur avec les commandes, j ai remis à 7.4 pour l instant, car je ne sais tjs pas comment régler cela ;-/
2023.3.5 est bien la dernière version du site ?
Nathalie
Autor
PS pour le login area, I need a plateform de formation avec du drip content, me semble qu on ne peut pas faire cela avec websitex5...
Hello Nathalie,
On dirait que ça avance bien... ;o)) -- Je viens de faire une commande "Test" et j'ai bien reçu le mail de confirmation de commande :
J'ai aussi accès au paiement en cliquant sur le bouton "Acheter" :
Par contre, si je paye depuis le bouton "Payer maintenant" du mail de confirmation j'arrive sur une fenêtre "vide" :
Et ça... Je ne connais pas car je n'ai jamais fait de commerce électronique. Je laisse la place au Support Incomedia pour avoir un avis sur ce dysfonctionnement. Je Signale le sujet... Attendre le passage d'un technicien.
@Suivre,
J.P.
Suite...
Pour le Blog, je ne vois pas ??? Comment est-il configuré sur le plan du Menu du projet ? Une petite copie écran du phénomène peut-être ?
@+, J.P.
Autor
oui, mais c est tjs en PHP 7.8... on veut du 8.0 au minimum (et dans ce cas il y a les messages d erreur...)
Peut etre désactiver les PHP errors et warning.... chez le provider.... Cela peut être la cause des messages utiles en développement uniquement.
Autor
merci pour votre message, je serait bien tentée de le faire, mais s il y a des messages d'erreur, c est qu un problème a été détecté et qu on doit bien le réglé, non?
(si je fais cela avec ma voiture, ça n ira pas très loin...)
Good afternoon Ba Na
These are not actual errors, but warnings that are used on the development side of the website.
They should not be enabled on a live website, since they do not cause real issues to your website unless they're enabled, just like they are now.
Disabling them will solve the error without causing other issues.
Simply get in touch with your hosting provider and ask them to disable the PHP parameter called "display_errors". This will fix the issue
I remain available here
Stefano
GOOGLE TRANSLATE ---
Bonjour Ba Na
Il ne s’agit pas d’erreurs réelles, mais d’avertissements utilisés du côté développement du site Web.
Ils ne doivent pas être activés sur un site Web en direct, car ils ne causent pas de problèmes réels à votre site Web à moins qu'ils ne soient activés, comme c'est le cas actuellement.
Les désactiver résoudra l’erreur sans provoquer d’autres problèmes.
Contactez simplement votre hébergeur et demandez-lui de désactiver le paramètre PHP appelé "display_errors". Cela résoudra le problème
Je reste disponible ici
Stéfano
Hello Ba Na,
C'est drôle de poser des questions et de ne pas écouter les réponses ou aides éventuelles.
Curieusement Stefano redit la même chose que moi...
C'est donc peut être la bonne solution... !!!!!
Autor
Merci pour les explications plus détaillées Stefano, et la relance Axel.
La demande de désactivement a été effectuée chez mon hébergeur (je l'avais déjà contacté précédemment pour résoudre ce souci, mais sans succès)
Autor
La désactivation a été faite (via le fichier user.ini, mais les messages d'erreur sont toujours là lors du processus de commande ;-/
dans les messages d'erreur (qui sont répétés 4x), cela fait référence à:
/res/x5engine.php on line 6580
Que dois-je faire / que peut faire le support de websiteX5 ?
User.ini ????
la desactivation des messages errors et warning se fait dans les reglages de PHP sur le serveur heberge !!
je crois que que cela n'est pas le cas !
Autor
C'est ce que le support de l hebergeur m a répondu: https://www.infomaniak.com/fr/support/faq/1115/afficher-les-erreurs-php-desactiver-les-warnings
je suis preneuse de toute aide pour résoudre cela
je viens de rappeler leur service technique qui me dit qu un module du site est à revoir, que je dois faire appel à un informaticien...
j ai aussi essayé de voir ce qui bloque depuis le code sur /res/x5engine.php on line 6580, une valeur semble manquer, mais je ne sais pas quoi.
je suis désemparée...
Reglages a faire dans fichier .htaccess a la racine du serveur web
Autor
Merci Axel pour le message, n'hésitez pas à m indiquer clairement ce que je dois modifier dans le fichier .htaccess
Normalement ces lignes
php_flag display_startup_errors off
php_flag display_errors off
Mais je ne sais pas comment fonctionne l'hébergeur.
Autor
je viens d enregistrer ces 2 lignes sur le fichier .htaccess, malheureusement cela n empeche pas les messages d erreur lors du processus de commande
Je n'ai plus d'idée....
As tu essayé les différentes version 8.x de PHP ?
Hello Nathalie,
Je viens de tester une commande et tout s'est bien passé sans affichage d'erreur :
J'ai eu aussi accès au module de paiement via Paypal ou CB :
J'ai également recu le message de confirmation de commande :
Reçue chez toi la commande ?
J.P.
Suite...
Comme je l'ai déjà signalé plus haut dans mes observations, le paiement depuis le message de confirmation de commande amène sur un module en erreur :
Je Signale une fois de plus au Support Incomedia pour avoir l'avis d'un technicien.
J.P.
Autor
Merci pour les messages,
Actuellement le processus de commande fonctionne uniquement en PHP 7.6
Malheureusement les versions 8.0, 8.1 et 8.2 provoquent des messages d'erreur (répété 4x sur /res/x5engine.php on line 6580), je ne sais pas à quoi cela fait référence (pour le PHP, j ai laissé pour l'instant dans les fichiers .htaccess et user.ini : php_flag display_startup_errors off et php_flag display_errors off, comme indiqué).
Concernant paypal: J'ai regardé l email client de confirmation de commande dans websiteX5, il me semble que ça a rechargé qqchose. peut-être que le lien email est résolu? (ici cela redirige sur la page étape 4 - commande terminée)
à plus tard,
Nathalie
Hello Nathalie
I've tested your website right now and everything seems to work fine, payment included.
Unfortunately, any issue you might be having with PHP 8 requires you to have it enabled on the website. Without it, there is no way for me to analyze the issue
Do you think you could activate PHP 8 again for a little bit to allow me to check the issue?
I remain available here
Stefano
GOOGLE TRANSLATE ---
Bonjour Nathalie
J'ai testé votre site internet en ce moment et tout semble bien fonctionner, paiement inclus.
Malheureusement, tout problème que vous pourriez rencontrer avec PHP 8 nécessite que vous l'activiez sur le site Web. Sans cela, je n'ai aucun moyen d'analyser le problème
Pensez-vous que vous pourriez réactiver PHP 8 un petit moment pour me permettre de vérifier le problème ?
Je reste disponible ici
Stéfano
Autor
Hello Stefano,
PHP8.1 is activated now
thank you for your help
Autor
seems that the code in /res/x5engine.php on line 6580, wants to access a key from a table that is undefined or someting similar. Could we (I mean your developer) change that in the code to solve the problem?
// Check if some actual "int" fields increment their length: if yes, consider them in the alter query
if ($type == "int") {
$fixAutoIncrement = false;
// WSX5-2950: This fix some situations where an existing field lost his "auto increment" property. If there is a row with this field set to 0, update it to the next highest value.
if ($value["auto_increment"] && !strpos($act_field["Extra"], "auto_increment")) {
$fixAutoIncrement = true;
$q = $this->db->query("SELECT * FROM `" . $this->db_name . "`.`" . $name . "` WHERE `" . $key . "` = 0");
if ($q->num_rows > 0) {
$q = $this->db->query("SELECT MAX(`" . $key . "`) AS `highest` FROM `". $this->db_name . "`.`" . $name . "`");
$res = $q->fetch_array();
$highestValue = !is_null($res) ? $res["highest"] : 1;
$this->db->query("UPDATE `" . $this->db_name . "`.`" . $name . "` SET `" . $key . "` = " . ($highestValue + 1) . " WHERE `" . $key . "` = 0");
}
}
if ($newLenght > $currentLenght || $fixAutoIncrement) {
$modify = " MODIFY `" . $key . "` " . $value['type'];
$modify .= (!isset($value['null']) || !$value['null'] ? " NOT NULL" : "");
$modify .= (isset($value['unique']) && $value['unique'] ? " UNIQUE" : "");
$modify .= (isset($value['auto_increment']) && $value['auto_increment'] ? " AUTO_INCREMENT" : "");
$modify .= (isset($value['more']) ? " " . $value['more'] : "");
$qfields[] = $modify;
$alterTable = true;
Hello Ba Na
The developers have been inmformed of this so that it can be fixed in an upcoming release
Thank you for your feedback
Stefano
Autor
thank you, so I re-down in 7.6
Pour rappel :
php 8.0 sorti en jan 2021
php 8.1 nov 2021
php 8.2 déc 2022
php 8.3 nov 2023
Je peux comprendre la non compatibilité avec 8.3 mais devoir repasser en V7, c'est pas sérieux de la part d'incomédia.
J'ai aussi un problème php avec l'envoi de mail qui ne fonctionne qu'en V7 chez moi. C'est le même problème que rencontre Ba Na dans le /res/x5engine.php
Un correctif rapide serait le bienvenu bientôt trois ans après la sortie de php 8!
Hello Franck
Having to go back to PHP7 is not a solution. The reason why it works is this:
1_ With PHP 7, for some reason, the PHP parameter "display_errors" is off by default.
2_ With PHP 8, for some reason, the PHP parameter "display_errors" is on by default.
Turning the parameter off again solves the issue. So it's not a version issue, it's just a parameter that is on by default
I remain available here
Stefano