Aller au contenu

Script PHP + PayPal + dédié OVH = fonctions inopérantes


Sujets conseillés

Posté

Bonjour,

Je finalise un script de paiement PayPal avec Notification Instantanée de Paiement.

Ce script fonctionne correctement en test sur un hébergement en mutualisé.

Il ne fonctionne qu'à moitié (!) sur un dédié OVH (Start100M, Gentoo Release2 OVH) avec configuration standard (je débute en dédié et me suis donc abstenu de toucher quoi que ce soit !) :

certaines fonctions PHP sont inopérantes dans ce script installé sur le dédié : fputs(), file() et mail() et aussi mysql_query() qui fonctionne mais pas dans tous les cas...

Si j'appelle le script par la ligne d'adresse d'un navigateur en renseignant manuellement les variables : il fonctionne.

Il semblerait qu'il y ait un pbl d'utilisateur ou de port (?) lorsque PayPal appelle le script et de config Apache/PHP côté dédié mais lequel ? J'ai essayé de rajouter ":80" dans l'url du script communiquée à PP, sans résultat.

Posté

Bonjour,

Que les fonctions fputs(), file(), mail() et mysql_query() ne fonctionnent pas est vraiment surprenant :whistling:

Es-tu certain qu'il ne s'agit pas d'un problème avec tes variables ? Par exemple à cause de register_globals mis sur Off ?

Tu peux essayer en mettant la ligne suivante dans le fichier .htaccess à la racine du site:

php_flag register_globals on

Posté

Bonjour,

certaines fonctions PHP sont inopérantes dans ce script installé sur le dédié : fputs(), file() et mail() et aussi mysql_query() qui fonctionne mais pas dans tous les cas...

Règle déjà ce problème, et vois après pour paypal.

Si tu script ne marche pas dans tous les cas, il te faudra déjà réglé ca,

mais pour les fonctions que tu cites : elles marchent toujours ;)

Posté

Merci, je croyais à un pb avec PP mais il n'en est rien puisque le script fonctionne en mutualisé.

Pour les variables : si le problème vient de là, je devrais obtenir un mail vide par exemple lorsque mail() est invoqué et de même des lignes vides dans mon fichier avec fputs() or je n'ai rien.

Merci Dan je vais essayer php_flag register_globals on mais il n'y a pas de htaccess actuellement. Entre quelles balises dois-je indiquer php_flag register_globals on ? Sinon j'ai une erreur 500.

Posté

J'ai galéré pendant 4 jours pour trouver la solution ! :mad2:

Le script pp.php fonctionnait en mutu avec php en version 4.

Le dédié est en php 5. pp.php ne fonctionnait pas sur le dédié.

Or, dans pp.php, il y avait un include() sur un petit script comportant une erreur de syntaxe.

La variable renseignée par ce petit script étant peu importante j'ai reporté le débogage à plus tard. Grosse erreur !!

Le petit problème est que, manifestement, PHP 5 ne réagit pas du tout comme la version 4 ! En effet, lorsque mon pp.php est appelé par file() ou fsockopen() (ce que fait PayPal), l'exécution s'arrète au niveau de l'include() comportant une erreur !! Alors que ce même pp.php fonctionne en PHP 4 ou s'il est appelé directement dans le navigateur... Mes fonctions mail(), fputs() et cie étaient forcément inopérantes puisque non exécutées !

En espérant que cette expérience puisse servir à d'autres. :)

Amitiés

Posté

De mémoire, c'est l'option MultiViews qui empêche la réécriture (et génère une erreur 500) sur les Gentoo Release 2.

Je pense qu'il faut la supprimer du fichier httpd.conf et redémarrer Apache.

Et tu peux choisir si tu souhaites tourner php4 ou php5 au niveau de chaque site, vu que php tourne en cgi sous SuPhp :)

Dan

PS: la directive que je t'ai donnée ne doit pas être entre balises...

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...