PHP http_response_code auslesen

xep22

Banned
Registriert
Apr. 2018
Beiträge
395
hi,

ich sende an meine telegram Bot-Abonnenten nachrichten. wenn jemand den Bot verlässt sind ja noch Leichen in der datenbank und die Nachrichten können wegen http_response_code 403 sowieso nicht zugestellt werden. Daher will ich jetzt nach dem Senden immer prüfen, ob die Nachricht überhaupt ankommt.

Daher dachte ich, das geht einfach so. Habe es erstmal mit einer Log-Datei umgesetzt, aber die variable $http ist immer leer... aber wieso? was ist da falsch ?

PHP:
while($row=$result->fetch_assoc())
{
    file_get_contents($path.'/sendmessage?chat_id='.$row['chat_id'].'&parse_mode=html&text=Hallo,%20'.$row['vorname'].'');
    $http=var_dump(http_response_code());
    // Aktion loggen
    $datum="".date("d.m.Y H:i:s")." - ";
    $dateiname="log.txt";
    $log="".$datum."".$row['chat_id']." http_response_code: ".$http."";
    $datei=fopen($dateiname,"a");
    fputs($datei,$log."\n");
    fclose($datei);
}

Dieses einfache PHP Script gibt mir Code 200 und funktioniert also :

PHP:
<?php
$http=var_dump(http_response_code());
echo $http;
?>
 
var_dump() hat keinen Rueckgabewert.

Das sollte eine Ausgabe produzieren:
PHP:
<?php
$http = http_response_code();
var_dump($http);
 
  • Gefällt mir
Reaktionen: Lawnmower
ahh danke.

nur leider zeit er immer Code 200, auch wenn nutzer inaktiv sind und auch im apache-Log Code 403 steht :/

Kann ich das irgendwie anders auslesen ?
 
Mit http_response_code() kannst du nur den Statuscode deiner eigenen PHP Anwendung setzen oder auslesen. Wenn du den Statuscode der Telegram API haben moechtest dann solltest du anstatt file_get_contents() lieber cURL verwenden.
 
  • Gefällt mir
Reaktionen: racer320kmh
Zurück
Oben