Hallo,
wie kann man auf dem Server ein php-Script zu einem bestimmten Zeitpunkt ausführen lassen?
Zum einem will ich einen Newsletter automatisch versenden zum anderen DB-Updates…
Danke
Dario
Hallo,
wie kann man auf dem Server ein php-Script zu einem bestimmten Zeitpunkt ausführen lassen?
Zum einem will ich einen Newsletter automatisch versenden zum anderen DB-Updates…
Danke
Dario
3 Möglichkeiten
Du kannst auf dem Server selber Cron-Jobs anlegen, also Scripts (auch PHP), welche zu einem bestimmten Zeitpunkt oder in einem bestimmten Intervall ausgeführt werden. Google dazu mal nach „man crontab“. Eventuell wirst du auch eine grafische Oberfläche haben, mit der du die Einstellungen vornehmen kannst. Das ist die einzige, wirklich runde Lösung. Das Problem: Bei vielen Anbietern sind Cronjobs nur in den teuren Paketen möglich - wenn überhaupt.
Wenn dein Anbieter kein Anlegen von Cronjobs gestattet, du aber auf einen anderen Rechner mit Internetanschluss Zugriff hast, welcher permament läuft, kannst du auch dort einen Cronjob (oder in der Windowswelt: Einen geplanten Task) anlegen, welcher zu einem bestimmten Zeitpunkt das PHP-Skript auf dem Webserver aufruft. Würde ich aber dann zusätzlich absichern, z.B. mit einem PIN, TAN oder kombinierten PIN/TAN Verfahren.
Ist technisch gesehen keine der beiden Lösungen praktikabel, kannst du auf einer zentralen Seite, welche oft aufgerufen wird (z.B. die index.php) einen Mechanismus integrieren, welcher bei jedem Aufruf prüft, ob das Skript heute schon gelaufen ist, wenn ja ok, wenn nein, dann laufen lassen und irgendwo hin (z.B. MySQL DB) den Ausführungszeitpunkt schreiben. Zwar unsauber und blamable Resourcenverschwendung, aber auf einem Rechner mit mittlerer Zugriffsfrequenz noch einigermaßen praktikabel.
Gruß,
Nicolas
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
ok, danke erstmal für die ausführliche Antwort. Da werde ich mal schauen, ob das angeboten wird.
Dario
Und dann gibt es als 4te Möglichkeit noch Webseiten, welche Cronjobs anbieten, auch kostenfrei.
Google nach Webcron, dann wirste fündig.
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Habe ich auch noch nicht gewusst - vielen Dank für den Tip!
Je nachdem um was für einen Cronjob es sich handelt, hätte ich da Sicherheitsbedenken, aber solange keine Parameter übergeben werden können, sollte das kein Problem sein.
Und dann gibt es als 4te Möglichkeit noch Webseiten, welche
Cronjobs anbieten, auch kostenfrei.Google nach Webcron, dann wirste fündig.
Das mit den Sicherheitsbedenken versteh ich noch nicht so ganz.
Ist das nicht im Prinzip das gleiche, als wenn ich mit meinem Browser die php-Seite ansteuere? Bloß das eben die das für mich automatisiert machen?
Dario
Naja, jeder der den Link kennt, kann halt das script ausführen.
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Du schreibst, dass du damit z.B. einen Newsletter versenden willst. Stell dir jetzt mal vor, jemand findet die URL heraus und kann dann ohne weitere Hürde dein Newsletterskript aufrufen. Du wirst schneller im Spam-Ordner landen, also Babara Schöneberger Paperlapap sagen kann. (Ganz zu Schweigen von den rechtlichen Folgen, die daraus entstehen können.) Natürlich soll man den Teufel nicht an die Wand malen. Die Betreiber der größeren Seiten sind höchstwahrscheinlich als seriös einzustufen und wenn du einen ausgefallenen Pfad und Dateinamen wählst wird keiner so schnell darauf kommen. Aber: Das Risiko besteht eindeutig und ich werde mich hüten, so etwas zu empfehlen, ohne darauf hingewiesen zu haben.
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
ach so stimmt, ja da hab ich gar nicht dran gedacht.
hmmmm
naja was man wenigstens machen kann, ist das man Zeit und Datum abprüft. So dass das Script halt nur ausgeführt wird, wenn das mit dem geplanten im Cronjob übereinstimmt. … Vielleicht sollte man da Tag und Stunde prüfen und Minute nicht, nicht dass das bei Verzögerungen nicht mehr gemacht wird.