Version imprimable du sujet

Cliquez ici pour voir ce sujet dans son format original

Forum osCommerce-fr _ Installation de la boutique _ php5.3 et panier

Écrit par : germa 17 Mar 2012, 23:39

Bonjour,
Mon hébergeur (mavenhosting) vient de passer en PHP5.3.10
J'ai changé toutes les fonctions qui n'étaient plus reconnues (enfin je crois).
Par contre si je passe une commande d'un produit pour l'ajouter au panier, mon panier reste vide (passage du fichier product-info à shopping_cart).

je pense avoir recherché les infos disponibles et je n'ai plus d'idée.

Y-a-t-il quelque chose à modifier dans shopping_cart?

Je précise que avant le passage en PHP5.3, tout fonctionnait parfaitement. Est-ce ce passage ????

Si quelqu'un peut m'aider...merci d'avance.

Écrit par : germa 18 Mar 2012, 09:37

Voici la réponse donnée par mon hébergeur.

"La raison la plus probable est que le code du panier n'est pas compatible avec PHP 5.3.10. Est-ce que vous utilisez la dernière version de ce panier?"

Comment puis-je trouver si j'ai bien la dernière version ?

Par ailleurs ce qui me gène c'est que tout à l'air de bien fonctionner : je n'ai aucun code d'erreur retourné.....

Écrit par : chti_poupon 18 Mar 2012, 10:50

Bonjour
Quelques points à vérifier encore (peut-être ?)

  1. Balises <?php ... ?> exclusivement
  2. Pas de $toto en lieu et place de $_GET['toto'] vu le nouveau réglage de registers_globals
  3. utiliser les limiteurs de chaîne corrects dans les fonctions preg-replace et similaires: ce qui était 'toto' dans ereg_replace devient '/toto/' par exemple (d'autres délimiteurs sont permis: voir manuel php)
Chti poupon

Écrit par : germa 18 Mar 2012, 12:42

Merci pour votre réponse
Je pense que j'ai fait le point 3 sur tous les fichiers en utilisant les deux liens donnés suivants qui remplacent tous les ereg et les split

http://github.com/osCommerce/oscommerce2/commit/88d550f392d86c02d2fe16d0b93f1de8aa6a6770
http://github.com/osCommerce/oscommerce2/commit/79c601a7b3ee87943b92a5e6d77ce02480b49ffe

Concernant le point 2
Quand vous dites "Pas de $toto en lieu et place de $_GET['toto']", vous voulez dire qu'il faut que je remplace tous les $HTTP-GET-VARS[$toto] par $_GET['toto'] ?
Si c'est bien cela auriez-vous un lien donnant les fichiers où il faut le faire ?

Cordialement.

Écrit par : chti_poupon 18 Mar 2012, 13:08

Non, c'est dans les cas anciens où l'on pouvait utiliser direstement la variable passée par POST ou par GET sous son nom au lieu de $HTTP_ ou $_.
$HTTP n'est pas encore banni !

Écrit par : germa 18 Mar 2012, 22:10

<h1 class="refname">J'ai bien vérifié vos trois points et j'ai l'impression que tout est correct.....et pourtant j'ai toujours le même problème !!!</h1>Si vous aviez d'autres idées je suis preneur.




Par contre :


<h1 class="refname">Voici un extrait du manuel PHP, je crois lire que $HTTP_GET_VARS est obsolète ???? </h1><h1 class="refname">$_GET</h1> <h1 class="refname">$HTTP_GET_VARS [Obsolète]</h1> (PHP 4 >= 4.1.0, PHP 5)

$_GET -- $HTTP_GET_VARS [Obsolète] — Variables HTTP GET

https://bugs.php.net/report.php?bug_type=Documentation+problem&manpage=reserved.variables.get%23refsect1-reserved.variables.get-description <h3 class="title">http://fr.php.net/manual/fr/reserved.variables.get.php# Description</h3> Un tableau associatif des valeurs passées au script courant via les paramètres d'URL.

$HTTP_GET_VARS contient les mêmes informations, mais n'est pas http://fr.php.net/manual/fr/language.variables.superglobals.php. (Notez que $HTTP_GET_VARS et $_GET sont des variables différentes et que PHP les traite comme telles.)

https://bugs.php.net/report.php?bug_type=Documentation+problem&manpage=reserved.variables.get%23refsect1-reserved.variables.get-changelog <h3 class="title">http://fr.php.net/manual/fr/reserved.variables.get.php# Historique</h3>

Version Description 4.1.0 Introduction de $_GET, rendant obsolète $HTTP_GET_VARS. que faut-il faire alors ????

Écrit par : germa 21 Mar 2012, 12:39

N'ayant rien trouvé, et comme cela ne fonctionne toujours pas, je pense procéder à une ré-installation complète, mais avec la nouvelle version 2.3.

Je souhaite conserver tous les produits entrés dans ma bdd.

Je suppose que la structure de la bdd a changé : où puis-je trouver cette structure ?

D'avance merci.

Écrit par : Gnidhal 21 Mar 2012, 14:58

Pour php 5.3 sur la ms2.2 il convient aussi de comparer et modifier les scripts compatibility.php et session.php avec la 2.3.1 ainsi que de déplacer la ligne require(DIR_WS_FUNCTIONS . 'compatibility.php');
Il me semble qu'il y a une contrib ou un guide pour faire cette adaptation.
Si tu ne déplaces pas correctement cette ligne dans le application_top, la session n'est pas correctement enregistrée et donc ton panier ne peut être placé en session.

Propulsé par Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)