2012-04-10 2 views
15

Ich habe eine E-Mail-Zeitplan läuft jeden Tag auf PHP-Seite mit Cron-Jobs. Der PHP-Code funktioniert gut, wenn ich die Seite unter Verwendung einer Verbindung laufen lasse.wie PHP-Datei mit Cron-Jobs

Jetzt, wenn ich das PHP-Skript mit Cron-Jobs ausführen, funktioniert es auch gut, aber wenn ich eine Abfrage stellen die Cron-Jobs wird nicht verstehen, die Verbindung.

zum Beispiel: http://www.wetube.org/cron.php?id=01001 also jetzt, wenn ich versuche, jeden Tag mit Cron-Job zu laufen, es funktioniert nicht.

Aber wenn wir nur die Abfrage löschen, funktioniert es gut. Kennst du irgendeinen Code, der diesen Link in Cron Job funktioniert?

+0

Was bedeutet "put einige Abfrage" bedeuten? Außerdem, was hast du als Befehl für den Cron-Job angegeben? –

Antwort

36

Cron führt Befehle aus, wie sie über die Shell ausgeführt werden würden, so dass PHP lokale Pfade verwenden würde.

Sie benötigen einen Befehl verwenden wie:

php /home/USER/public_html/cron.php

Oder wenn einschließlich der Abfrage-String ist notwendig, cURL verwenden statt (wenn es installiert ist):

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

Das könnte dir Englisch: www.mjfriendship.de/en/index.php?op...39&Itemid=32 Ich möchte deine Cron - Skripte nicht ins Internet stellen - verschiebe sie in dein Web - Verzeichnis, denn wenn jemand sie findet, kann sie sie ständig neu laden, um deine Cron - Skripte zu spammen (dh l OTS von E-Mails)

+0

danke mann aber was kann ich sonst hinzufügen, um das Senden von Bericht zu verhindern –

+4

Wenn Sie das Skript über HTTP (das ist in der Regel eine schlechte Idee an erster Stelle) ausführen müssen und Ihr Server hat eine statische (und dedizierte) IP-Adresse können Sie Begrenzen Sie den Zugriff nur von Ihrem Server, indem Sie Ihr Cron-Skript in eine konditionelle Überprüfung einbeziehen, die überprüft, ob der '$ _SERVER ['REMOTE_HOST'] 'mit der IP-Adresse Ihres Servers übereinstimmt. Dies ist jedoch nicht idiotensicher und Ihr sicherster Tipp ist einfach das Cron-Skript außerhalb Ihres Web-Verzeichnisses zu haben. – wyqydsyq

7

ich Hash wie

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

und in PHP-Datei hinzufügen würde

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

* Sie können sogar bestimmte Zeit/Datumsprüfung hinzufügen, wenn sie ausgeführt werden soll.
* IP
* generieren sha512 (ich würde empfehlen) Hashes in Cron und PHP-Datei mit dem gleichen Salz und vielleicht sogar Zeit und dann prüfen, ob sie gleich sind - es wäre unmöglich für einen Hacker neu zu erstellen es - außer wenn er irgendwie Ihre ursprüngliche Hash-Setup