J'ai un programme de messagerie électronique qui s'exécute tous les jours sur la page php à l'aide de tâches cron. Le code php fonctionne bien lorsque j'exécute la page à l'aide d'un lien.
Maintenant, lorsque j'exécute le script php à l'aide de tâches cron, cela fonctionne également très bien, mais lorsque je pose une requête, les tâches cron ne comprendront pas le lien.
par exemple: http://www.wetube.org/cron.php?id=01001
alors maintenant, si j'essaye de faire ça tous les jours avec cron, ça ne marche pas.
Mais si nous effaçons simplement la requête, cela fonctionne très bien. Connaissez-vous des codes qui permettent à ce lien de fonctionner en tâche cron?
Cron exécute les commandes comme elles seraient exécutées via le Shell, donc exécuter PHP utiliserait des chemins locaux.
Vous devez utiliser une commande comme:
php /home/USER/public_html/cron.php
Ou si l'inclusion de la chaîne de requête est nécessaire, utilisez plutôt cURL (s'il est installé):
curl http://www.wetube.org/cron.php?id=01001
Vous voudrez peut-être ne pas exposer vos scripts cron à Internet - déplacez-les vers l'extérieur de votre répertoire Web, car si quelqu'un le trouve, il peut constamment le recharger pour spammer vos scripts cron (c'est-à-dire envoyer beaucoup d'e-mails)
J'ajouterais du hash comme
curl http://www.wetube.org/cron.php?id=01001&hash=cm349ucKuc023b2ynGyv23ycr23
et dans le fichier php
if(isset($_GET['hash']) && $_GET['hash']=='cm349ucKuc023b2ynGyv23ycr23'){
....
stuff to do
....
}
* vous pouvez même ajouter une vérification de date/heure spécifique quand il doit être exécuté.
* vous pouvez vérifier l'IP
* générer des hachages sha512 (je recommanderais) à la fois dans les fichiers cron et php avec le même sel et peut-être même le temps, puis vérifier s'ils sont identiques - il serait impossible pour un pirate de le recréer - sauf si il obtient en quelque sorte votre configuration de hachage d'origine