Jump to content
valousal

Erreur avec HTTPS sur le fichier init.php

Recommended Posts

Bonjour,

 

Au passage HTTPS d'un site PrestaShop, nous rencontrons une erreur sur un module exécuté via une tâche CRON.

 

Après quelques recherches, nous avons remarqué que c'est la ligne "include ../../init.php" qui génère une erreur.

include(dirname(__FILE__).'/../../config/config.inc.php');include(dirname(__FILE__).'/../../init.php');

Avez vous déjà rencontré ce type d'erreur ? 

 

Merci pour votre retour.

Share this post


Link to post
Share on other sites

Salut,

 

On peut voir le cron du script ? Parce que cette syntaxe marche correctement de mon côté. C'est peut-être le cron qui doit être modifié. :)

 

Bon courage

Share this post


Link to post
Share on other sites

Salut,

 

On peut voir le cron du script ? Parce que cette syntaxe marche correctement de mon côté. C'est peut-être le cron qui doit être modifié. :)

 

Bon courage

 

Salut Matt,

 

Merci pour ta réponse.

 

Le cron marche correctement en HTTP.

 

La commande est la suivante : 

0 0 * * * /usr/bin/php /home/..../script.php > /home/..../script.log

Voici le code du fichier script.php exécuté par le CRON.

<?php

include(dirname(__FILE__).'/../../config/config.inc.php');
include(dirname(__FILE__).'/../../init.php');
include(dirname(__FILE__).'/files.php');

ini_set('memory_limit', '1024M');

$be = new MaClass();

$be->CallFunction();

Merci

Share this post


Link to post
Share on other sites

Ok merci, ça me semble pas anormal. 

 

J'aurai dû commencer par te demander : quelle est l'erreur que tu rencontres ? 

Share this post


Link to post
Share on other sites

Ok merci, ça me semble pas anormal. 

 

J'aurai dû commencer par te demander : quelle est l'erreur que tu rencontres ? 

 

Le script arrête de s’exécuter.

 

 Concernant l'erreur, nous sommes en phase de développement pour migrer le site sur HTTPS à nouveau. C'est à ce moment que je pourrais à nouveau reproduire l'erreur...

 

Merci à toi.

Share this post


Link to post
Share on other sites

Ok merci, ça me semble pas anormal. 

 

J'aurai dû commencer par te demander : quelle est l'erreur que tu rencontres ? 

 

Salut Matt,

 

Je me permets de revenir vers toi concernant ce soucis.

 

Voici les erreurs après l’exécution du cron lorsque PrestaShop :

 

  • a seulement le SSL d'activé
PHP Notice:  Undefined index: REQUEST_METHOD in /...../classes/controller/FrontController.php on line 788
  • a seulement le SSL d'activé
  • le SSL actif sur tout le site
PHP Notice:  Undefined index: REQUEST_METHOD in /...../classes/controller/FrontController.php on line 788
PHP Warning:  Cannot modify header information - headers already sent by (output started at /...../modules/mon_module/script.php:4) in /...../classes/controller/FrontController.php on line 790
PHP Warning:  Cannot modify header information - headers already sent by (output started at /...../modules/mon_module/script.php:4) in /...../classes/controller/FrontController.php on line 791
PHP Warning:  Cannot modify header information - headers already sent by (output started at /...../modules/mon_module/script.php:4) in /...../classes/controller/FrontController.php on line 793

Lorsque les options de SSL sont désactivés sur PrestaShop, aucune erreur présente.

 

Merci à toi.

Share this post


Link to post
Share on other sites

Ok je vois. 

 

Quelque chose comme ça devrait fonctionner 

30 * * * * wget -q -O /dev/null  https://.../ton_module/scripts/script.php  >/dev/null 2>&1

Le problème est que le FrontController à besoin d'être appelé en https pour fonctionner (sinon il cherche à te rediriger)

 

Je te conseille aussi d'ajouter un jeton de sécurité en paramètre. ;)

 

Bonne journée. 

Edited by Matt K. (see edit history)
  • Like 1

Share this post


Link to post
Share on other sites

Super !

 

Le passage en HTTPS oblige d'appeler les fichiers via cette méthode pour que le FrontController soit appeler en HTTPS ?

 

 

Encore merci !!

 

Bonne fin de journée.

Share this post


Link to post
Share on other sites

Il y a peut-être une meilleure manière de faire. Si quelqu'un sait comment faire, je l'invite à poster ici. ^^ 

 

Par contre, si tu as pas besoin du FrontController dans ton script, tu retire la ligne et ton cron devrait fonctionner comme avant. 

 

Avec plaisir ! :)

Share this post


Link to post
Share on other sites

J'effectue des requêtes sur les commandes ( new Order() ), les clients (new Customer () ).

 

Le fichier init.php n'est donc pas nécessaire ?

Le fichier init.php initialise seulement le FrontController ?

 

Merci pour ta réponse.

Edited by valousal (see edit history)

Share this post


Link to post
Share on other sites

Je pense que tu n'en a pas besoin.

 

Enlève la ligne et regarde ce qu'il se passe. :-p

Share this post


Link to post
Share on other sites

En effet... pas besoin d'init.php.

 

Merci beaucoup une nouvelle fois. J'ai appris des choses ;) 

 

A bientôt peut-être !

Share this post


Link to post
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...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More