У меня есть расписание электронной почты каждый день на php-странице, используя задания cron. PHP-код работает нормально, когда я запускаю страницу с помощью ссылки.
Теперь, когда я запускаю php-скрипт с использованием заданий cron, он также отлично работает, но когда я помещаю некоторый запрос, задания cron не поймут ссылку.
например: http://www.wetube.org/cron.php?id=01001
так что теперь, если я попытаюсь запустить это каждый день, используя работу cron, это не сработает.
Но если мы просто удалим запрос, он отлично работает. Вы знаете какой-нибудь код, который заставляет эту ссылку работать в cron?
Cron запускает команды, поскольку они будут запускаться через оболочку, поэтому запуск PHP будет использовать локальные пути.
Вам нужно использовать команду:
php /home/USER/public_html/cron.php
Или, если необходимо включить строку запроса, вместо этого используйте cURL (если она установлена):
curl http://www.wetube.org/cron.php?id=01001
Возможно, вы захотите взглянуть на то, чтобы не подвергать свои cron-скрипты интернету – переместите их за пределы своего веб-каталога, потому что, если кто-то найдет это, они могут постоянно перезагружать его, чтобы спамить ваши скрипты cron (то есть отправлять много писем)
Я бы добавил хэш как
curl http://www.wetube.org/cron.php?id=01001&hash=cm349ucKuc023b2ynGyv23ycr23
и в php-файле
if(isset($_GET['hash']) && $_GET['hash']=='cm349ucKuc023b2ynGyv23ycr23'){ .... stuff to do .... }
* вы можете даже добавить определенную проверку времени / даты, когда она должна быть запущена.
* вы можете проверить IP-адрес
* генерировать sha512 (я бы рекомендовал) хеши как в cron, так и в php-файле с той же солью и, возможно, даже временем, а затем проверить, совпадают ли они – хакеры не смогут воссоздать его, за исключением случаев, когда он каким-то образом получит ваш оригинал настройка хэша