17

我每天使用 cron 作业在 php 页面上运行电子邮件计划。当我使用链接运行页面时,php 代码运行良好。

现在,当我使用 cron 作业运行 php 脚本时,它也可以正常工作,但是当我进行一些查询时,cron 作业将无法理解链接。

例如:http://www.wetube.org/cron.php?id=01001所以现在如果我尝试每天使用 cron 作业运行它,它就不起作用了。

但是,如果我们只是删除查询,它就可以正常工作。你们知道使这个链接在 cron 工作中工作的任何代码吗?

4

2 回答 2

43

Cron 运行命令就像它们通过 shell 运行一样,因此运行 PHP 将使用本地路径。

您需要使用如下命令:

php /home/USER/public_html/cron.php

或者,如果需要包含查询字符串,请改用 cURL(如果已安装):

curl http://www.wetube.org/cron.php?id=01001

您可能希望不要将您的 cron 脚本暴露在互联网上 - 将它们移动到您的 web 目录之外,因为如果有人发现它,他们可以不断重新加载它以向您的 cron 脚本发送垃圾邮件(即发送大量电子邮件)

于 2012-04-10T23:03:15.603 回答
8

我会像这样添加哈希

curl http://www.wetube.org/cron.php?id=01001&hash=cm349ucKuc023b2ynGyv23ycr23

并在 php 文件中

if(isset($_GET['hash']) && $_GET['hash']=='cm349ucKuc023b2ynGyv23ycr23'){
....
stuff to do
....
}

*您甚至可以在应该运行时添加特定的时间/日期检查。
*您可以使用相同的盐甚至时间检查 cron 和 php 文件中的 IP
*生成 sha512(我会推荐)哈希,然后检查它们是否相同 - 黑客不可能重新创建它 - 除非他以某种方式获得了您的原始哈希设置

于 2013-10-01T09:00:03.193 回答