90-debug.php

1<?php
2// Risponde "debug!" a qualsiasi cosa.
3// Questo programma usa la libreria cURL [1] per fare le richieste.
4// Il proramma scrive in un file sia i dati della richiesta di cURL
5// ATTENZIONE: il file usato (ad esempio 'debug.txt')
6// deve esistere ed essere scrivibile da parte di PHP
7
8$botToken = "metti_qui_il_tuo_id";
9$sitoApi = "https://api.telegram.org/bot" . $botToken;
10$contentutoRichiesta = file_get_contents("php://input");
11$messaggioRicevuto = json_decode($contentutoRichiesta, true);
12
13$filePerDebug = 'debug.txt'; 
14// se il file non esiste per crearlo (o per cancellarne il contenuto)
15// echo -n "" > debug.txt
16// per renderelo scrivibile da tutti [2]
17// chmod a+w debug.txt
18
19$chatId=$messaggioRicevuto['message']['chat']['id'];
20
21sendMessage($chatId,"debug!");
22
23function sendMessage($chatId, $testo){
24    $url=$GLOBALS['sitoApi']
25        ."/sendMessage?chat_id=$chatId&parse_mode=HTML&text="
26        .urlencode($testo);
27
28    // l'istruzione qui sotto scrive nel file degli errori del server web
29    error_log("Provo a chiamare la URL $url"); // [3]
30
31    // https://www.php.net/manual/en/function.curl-init.php
32    $ch = curl_init();
33    curl_setopt($ch, CURLOPT_VERBOSE, 1);         // solo per DEBUG
34    $fileDebug = fopen('debug.txt', 'w');         // solo per DEBUG
35    curl_setopt($ch, CURLOPT_STDERR, $fileDebug); // solo per DEBUG
36    // se è false il secondo parametro
37    // l'output di curl_exec() viene stampato (e non lo voglio)
38    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
39    // imposto la URL
40    curl_setopt($ch, CURLOPT_URL, $url);
41    $output = curl_exec($ch);
42    fwrite($fileDebug, "==================== RISPOSTA ====================\n");
43    fwrite($fileDebug, $output);  
44    fwrite($fileDebug, "================= FINE RISPOSTA ==================\n");
45    fclose($fileDebug);  
46}
47

1

https://www.php.net/manual/en/book.curl.php

2

qui allegramente ignoriamo problemi di sicurezza

3

https://www.php.net/manual/en/function.error-log.php