Externe Seite aufrufen

Wie behandelt cURL denn ein TimeOut einer externen Seite? An der PHP Ini kann ich leider nichts ändern, da mein Webspace betreiber nicht unterstützt[/QUOTE

Mit den bereits zusätzlich geposteten Infos komme ich zu diesem Bild:

1. Das Script auf dem V-Server wird mit cron getriggert, also über PHP-CLI (Command Line Interface). Damit ist diese Seite schon mal safe, denn hier wird (per Default) kein Timeout in PHP auftreten. curl wird also durchlaufen und im Fehlerfall (siehe auch die PHP-Funktionen curl_errno()/curl_error()) kannst du mit exit(-1); aus dem PHP-Script einen Fehlerfall zurück geben.

2. Du hast also "nur" das Problem, den Timeout auf DEINEM Server mit zu bekommen. Hast du schon mal mit dem Firefox-Plugin "Live HTTP Headers" ausgewertet, was von dem Mail-Versende-Script für ein HTTP-Response-Code kommt, wenn max_execution_time erreicht ist? Ist es überhaupt interessant, zu wissen aus welchem Grund dein Mail-Versende-Script abgebrochen hat? Ich vermute mal da kommt 500, aber Vermutung ist kein Fakt. Also solltest du das mal checken. Jedenfalls kann CURL auch die HTTP-Fehlercodes abholen und du dann ggf. im Cron-Script darauf reagieren. Das bedeutet, in deinem Mail-Versende-Script gibst du im Gut-Fall header("HTTP/1.1 200 OK") ansonsten (in jedem Fehlerfall) einfach header("HTTP/1.1 500 Internal Server Error") zurück.

3. Du kannst in dem Cron-Script beim Reagieren auf ungebührliches Verhalten von CURL oder wenn ein HTTP-Response-Code ungleich 200 zurück kommt, damit reagieren, dass du einfach via mail()-PHP-Funktion dir selbst eine Mail sendest. Den Absender der Mail aus deinem Cron-Script nimmst du einfach als sicheren Absender auf, dann kommt da auch nichts im Spam-Ordner an.
 

Neue Beiträge

Zurück