17

cronジョブを使用してphpページで毎日電子メールスケジュールを実行しています。リンクを使用してページを実行すると、phpコードは正常に機能します。

cronジョブを使用してphpスクリプトを実行すると、それも正常に機能しますが、クエリを実行すると、cronジョブはリンクを理解しません。

たとえば、http://www.wetube.org/cron.php?id=01001これをcronジョブを使用して毎日実行しようとすると、機能しません。

しかし、クエリを消去するだけで問題なく動作します。このリンクをcronジョブで機能させるコードを知っていますか?

4

2 に答える 2

43

Cronは、シェルを介して実行されるのと同じようにコマンドを実行するため、PHPの実行ではローカルパスが使用されます。

次のようなコマンドを使用する必要があります。

php /home/USER/public_html/cron.php

または、クエリ文字列を含める必要がある場合は、代わりにcURLを使用します(インストールされている場合)。

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

cronスクリプトをインターネットに公開しないことを検討することをお勧めします-誰かがそれを見つけた場合、cronスクリプトをスパムするために絶えずリロードできるため(つまり、大量の電子メールを送信するため)、それらをWebディレクトリの外に移動します

于 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
....
}

*実行する必要がある特定の日時チェックを追加することもできます。
*IPをチェックできます
*同じソルトとおそらく時間でcronファイルとphpファイルの両方でsha512(推奨)ハッシュを生成し、それらが同じであるかどうかをチェックします-ハッカーがそれを再作成することは不可能です-彼はどういうわけかあなたの元のハッシュ設定を取得します

于 2013-10-01T09:00:03.193 に答える