Pagina 1 di 2 12 UltimoUltimo
Visualizzazione risultati 1 fino 30 di 32
Like Tree1Likes

Discussione: Richieste cURL lente!

  1. #1
    faidateitalia non è connesso Utente giovane
    Data registrazione
    05-05-2015
    Messaggi
    30

    Predefinito Richieste cURL lente!

    Ho uno script che estrae l'ultimo video caricato su determinati canali YouTube, effettuando una richiesta GET alle API di Google (http://www.googleapis.com/youtube/v3...tems?parametri...), la cui risposta viene estrapolata usando una richiesta cURL.

    Il problema è che su Altervista, la maggior parte delle volte che eseguo lo script, la richiesta cURL ci impiega troppo tempo, soprattutto nella fase di trasferimento dei dati (l'ho constato tramite la funzione curl_getinfo() ).

    Su 4 prove eseguite solo su 4 canali YT, si vede come il tempo di esecuzione complessivo dello script (avviato nello stesso istante) vari di tanto se eseguito su Altervista piuttosto che su un altro hosting free.
    In particolare per ogni richiesta cURL il cui tempo di trasferimento superi i 2s visualizzo i tempi impiegati per ogni fase di quella richiesta.





    Tutto ciò può sembrare trascurabile finchè i canali su cui fare le richieste sono solo 4. Quando i canali però diventano 45 a quel punto la cosa diventa grave a tal punto che spesso altervista mi restituisce l'errore 500 (anche come risposta al cronjob cui è associato lo script)!
    Su 5 prove eseguite, in 3 casi lo script che girava su altervista ha finito circa 30s dopo! Nei restanti due casi 4-6s dopo.

    PS Ho anche provato con le richieste cURL in parallelo ( curl_multi_exec() ). Non cambia nulla.


    PERCHE' QUESTO?
    Ultima modifica di faidateitalia : 03-03-2016 alle ore 20.09.04

  2. #2
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Dai tempi che riporti il collo di bottiglia è il pretransfer_time. Questo dato misura il tempo impiegato dalle operazioni di negoziazione (e, più in generale, dalle operazioni necessarie prima di avviare il trasferimento), le quali dipendono dal protocollo utilizzato (nel tuo caso mi sembra HTTPS).
    Il trasferimento vero e proprio richiede meno di 1 secondo in tutte le rilevazioni mostrate, dunque non è lì il problema.

    Prima di lanciarci in speculazioni su tali operazioni, hai confrontato la versione di libcurl sull'altro servizio di hosting con quella su AlterVista?

    Inoltre, a parte le rilevazioni che hai già mostrato, quante prove hai eseguito su AlterVista e presso l'altro servizio, e con quale frequenza sono avvenuti i ritardi su ciascuno? Per avere un minimo di confidenza servirebbero un centinaio di rilevazioni su entrambi.
    Anche altri fattori esterni possono influenzare i tempi di negoziazione: congestione, latenza, carico di client e server...

    Riguardo alle richieste in parallelo, è normale che non cambi nulla, essendo il problema concentrato nel pretransfer_time.

  3. #3
    faidateitalia non è connesso Utente giovane
    Data registrazione
    05-05-2015
    Messaggi
    30

    Predefinito

    Premetto che non è assolutamente mia intenzione lanciare speculazioni contro Altervista, ho solo fatto un confronto e chiedevo delle spiegazioni.

    Comunque il protocollo usato per le richieste alle api di Google è HTTPS, si lo so che il trasferimento richiede meno di 1s e che il collo di bottiglia è il pretransfer_time, quello che non so è come risolvere. Ho provato a cercare in rete ma non ho trovato nulla di specifico.

    La versione della libcurl sull'altro host è 7.47.1 su Altervista invece è la 7.33.0 ! 3 anni più vecchia?


    Tieni conto che lo script viene eseguito giornalmente da un cronjob e considerando solo le esecuzioni da parte del cronjob credo siano più di 300 (tutte terminate con errore 500).
    Sull'altro host sono 2-3 giorni che faccio delle prove, credo di averne fatte una 50ina circa..




    OFF TOPIC:
    Perchè non aggiornate la versione PHP? Ad esempio per usare le API di Google per Gmail sono costretto ad appoggiarmi su host esterni in quanto richiedono almeno PHP 5.5 .

  4. #4
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    La versione della libcurl sull'altro host è 7.47.1 su Altervista invece è la 7.33.0 ! 3 anni più vecchia?
    Probabilmente la causa è questa. Oppure altri fattori esterni, sui quali in ogni caso non credo sia possibile intervenire.
    Però è meglio lasciare la parola ai tecnici, dato che la questione sembra riguardare la configurazione del server .

  5. #5
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Stiamo effettuando i controlli del caso.

  6. #6
    faidateitalia non è connesso Utente giovane
    Data registrazione
    05-05-2015
    Messaggi
    30

    Predefinito

    Come procedono i controlli?

  7. #7
    faidateitalia non è connesso Utente giovane
    Data registrazione
    05-05-2015
    Messaggi
    30

    Predefinito

    Immagino che i controlli siano ancora in corso giusto?

  8. #8
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Quando saranno disponibili aggiornamenti in merito verranno riportati in questa discussione.

  9. #9
    faidateitalia non è connesso Utente giovane
    Data registrazione
    05-05-2015
    Messaggi
    30

    Predefinito

    Sto provando ad usare i Tasks (CronJob) di MyBB ed ho anche qui problemi:

    read timeout at /usr/local/lib/perl5/site_perl/5.8.8/Net/HTTP/Methods.pm line 257.
    Questo è l'output all'esecuzione del task. Non so più cosa fare...
    Anche qui mi sembra di capire che la versione installata di Perl è la 5.8.8 mentre l'ultia versione stabile è la 5.22.0.


    PS lo stesso script richiamato da browser funziona!
    Ultima modifica di faidateitalia : 09-03-2016 alle ore 23.29.47

  10. #10
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    faidateitalia:

    a giorni sarà disponibile per ogni account la possibilità di attivare php 5.6 con l'ultima versione di curl disponibile, anche se non è detto che questo risolva il tuo problema
    darkwolf likes this.
    Gianluca

  11. #11
    faidateitalia non è connesso Utente giovane
    Data registrazione
    05-05-2015
    Messaggi
    30

    Predefinito

    Citazione Originalmente inviato da Gianluca Visualizza messaggio
    faidateitalia:

    a giorni sarà disponibile per ogni account la possibilità di attivare php 5.6 con l'ultima versione di curl disponibile, anche se non è detto che questo risolva il tuo problema
    Spero che con la nuova versione, almeno migliorino i tempi di risposta.

    Quello che non capisco è perchè la stessa richiesta richiamata da browser viene completata immediatamente mentre se effettuata da cURL ci impiega 4-5 secondi per ciascuna richiesta.

  12. #12
    faidateitalia non è connesso Utente giovane
    Data registrazione
    05-05-2015
    Messaggi
    30

    Predefinito

    Citazione Originalmente inviato da Gianluca Visualizza messaggio
    a giorni sarà disponibile per ogni account la possibilità di attivare php 5.6 con l'ultima versione di curl disponibile
    A che punto siamo? E' possibile avere almeno una data certa?

  13. #13
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    È in corso l'attivazione del nuovo engine su gruppi di account progressivamente, per questo motivo non è possibile fornirti una data certa, come ho scritto sopra prevediamo un'attesa breve salvo eventuali inconvenienti dovessero verificarsi nelle fasi di test.

  14. #14
    Guest

    Predefinito

    credi che per il primo aprile ce l'avremo?

  15. #15
    Guest

    Predefinito

    Se lo chiedi ogni giorno credi sia più veloce?

  16. #16
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Da oggi è disponibile PHP 5.6.

  17. #17
    faidateitalia non è connesso Utente giovane
    Data registrazione
    05-05-2015
    Messaggi
    30

    Predefinito

    Citazione Originalmente inviato da vplaza Visualizza messaggio
    Se lo chiedi ogni giorno credi sia più veloce?
    Era un altro utente a chiedere, non io :)

    Citazione Originalmente inviato da karl94 Visualizza messaggio
    Da oggi è disponibile PHP 5.6.
    Aggiornato nel pannello di controllo. Ora PHP è la versione 5.6.18, la libreria libcurl è la versione 7.47.1

    Il problema persiste!

  18. #18
    faidateitalia non è connesso Utente giovane
    Data registrazione
    05-05-2015
    Messaggi
    30

    Predefinito

    Resto in attesa di qualche risposta..

  19. #19
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    Visto che non hai ancora ricevuto risposte sul perché accada, e non vedendo codice possiamo fare solo supposizioni. Per curiosità, hai disattivato la verifica del dominio e certificato in curl? (trattandosi di protocollo https). Scusa ne sparo una

  20. #20
    faidateitalia non è connesso Utente giovane
    Data registrazione
    05-05-2015
    Messaggi
    30

    Predefinito

    Citazione Originalmente inviato da darbula Visualizza messaggio
    Visto che non hai ancora ricevuto risposte sul perché accada, e non vedendo codice possiamo fare solo supposizioni. Per curiosità, hai disattivato la verifica del dominio e certificato in curl? (trattandosi di protocollo https). Scusa ne sparo una
    Grazie mille. Ho disattivato la verifica ed ora le cose sembrano andare molto meglio, anche se non proprio perfette.

    41 richieste cURL vengono eseguite in 20-30 secondi. Ora l'unico valore che rimane "alto" è lo starttransfer_time che varia tra 0.2s e 3s

    Qualche altra soluzione? Questo è la funzione che sto usando:

    Codice PHP:
    function file_get_contents_curl($url) {
    $ch = curl_init();

    curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, 0);
    curl_setopt($ch, CURLOPT_TIMEOUT, 3);
    curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

    $data = curl_exec($ch);

    if(
    curl_errno($ch))
    echo
    'Request error: ' . curl_error($ch);

    curl_close($ch);

    return
    $data;
    }

  21. #21
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Con le funzioni curl_multi_* dovresti comunque ottenere prestazioni migliori, puoi riportare il codice che hai utilizzato?

  22. #22
    faidateitalia non è connesso Utente giovane
    Data registrazione
    05-05-2015
    Messaggi
    30

    Predefinito

    Questo è il codice della curl multi:

    Codice PHP:
    /**
    @nodes array di url contenenti la richiesta alle Google API
    */
    function multiCurl($nodes) {

    $node_count = count($nodes);

    $curl_arr = array();
    $master = curl_multi_init();

    $options = array(
    CURLOPT_AUTOREFERER => 1,
    CURLOPT_HEADER => 0,
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_POST => 0,
    CURLOPT_TIMEOUT => 3,
    CURLOPT_IPRESOLVE => CURL_IPRESOLVE_V4,
    CURLOPT_SSL_VERIFYHOST, 0,
    CURLOPT_SSL_VERIFYPEER, 0
    );

    for(
    $i = 0; $i < $node_count; $i++)
    {
    $url =$nodes[$i];
    $curl_arr[$i] = curl_init($url);
    curl_setopt_array($curl_arr[$i], $options);
    curl_multi_add_handle($master, $curl_arr[$i]);
    }

    do {
    curl_multi_exec($master, $running);
    } while(
    $running > 0);

    $results = array();

    foreach (
    $curl_arr as $ris)
    $results[] = curl_multi_getcontent($ris);

    return
    $results;
    }

  23. #23
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    Non ho verificato il codice in quanto non ho idea di come cercare i video delle api youtube. Vedo che usi un timeout di 3 secondi,ma i tre secondi a cui ti riferisci è una risposta errata? Facciamo il punto della situazione, da altervista utilizzi php 5.6, la pagina iniziale (ricerca playlistitem) come risposta ti restituisce un json in cui è presente l'informazione per ricavare la url (download video) Il tuo errore rientra nella pagina principale?. Giusto sennò com'è?. Infine ricordati che altervista in caso di redirect non lo fa automaticamente e neanche con l'opzione appropriata di curl.. Puoi includere questo script all'inizio! (dovrebbe rallentare un pò ma è utile per debug).
    Codice PHP:
    error_reporting(E_ALL | E_NOTICE | E_STRICT | E_DEPRECADED);
    ini_set("display_errors" , "stdout");
    ini_set("display_startup_errors" , 1);
    .
    ps. ho letto che ci sono limiti al numero di connessioni per la multi di curl (ma la devo trovare su php.net per esserne sicuro).
    EDIT:trovato CURLMOPT_MAXCONNECTS di default é 10 . "Pass a number that will be used as the maximum amount of simultaneously open connections that libcurl may cache. Default is 10. When the cache is full, curl closes the oldest one in the cache to prevent the number of open connections from increasing."
    Ultima modifica di darbula : 14-04-2016 alle ore 23.18.57

  24. #24
    faidateitalia non è connesso Utente giovane
    Data registrazione
    05-05-2015
    Messaggi
    30

    Predefinito

    Citazione Originalmente inviato da darbula Visualizza messaggio
    Vedo che usi un timeout di 3 secondi,ma i tre secondi a cui ti riferisci è una risposta errata?
    E' impostato in modo arbitrario, ho dato per scontato che una richiesta venga eseguita entro 3 secondi.


    Citazione Originalmente inviato da darbula Visualizza messaggio
    Non ho verificato il codice in quanto non ho idea di come cercare i video delle api youtube. [...] la pagina iniziale (ricerca playlistitem) come risposta ti restituisce un json in cui è presente l'informazione per ricavare la url (download video)
    La chiamata all'API di Google è la PlaylistItems: list , in particolare la richiesta GET che eseguo è questa
    Codice HTML:
    https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId={PLAYLIST_ID}&key={YOUR_API_KEY}
    Che ritorna un risultato JSON dal quale vado ad estrarre i parametri che mi servono.


    Citazione Originalmente inviato da darbula Visualizza messaggio
    Il tuo errore rientra nella pagina principale?. Giusto sennò com'è?.
    L' "errore" si verifica nell'eseguire queste richieste tramite cURL, in quanto, spesso, impiegano troppo tempo (nell'ordine di svariati secondi, come puoi vedere dagli screen in alto) per essere completate.
    Cosa che invece non accade se richiamassi l'url direttamente da browser. In questo caso la risposta sarebbe immediata (qualche ms insomma).
    Se si aggiunge il fatto che vengono eseguite 40-50 richieste per volta, ecco che spesso lo script termina con l'errore 500 oppure venga completato dopo quasi 1 minuto!


    Citazione Originalmente inviato da darbula Visualizza messaggio
    Puoi includere questo script all'inizio! (dovrebbe rallentare un pò ma è utile per debug).
    Codice PHP:
    error_reporting(E_ALL | E_NOTICE | E_STRICT | E_DEPRECADED);
    ini_set("display_errors" , "stdout");
    ini_set("display_startup_errors" , 1);
    .
    L'ho incluso all'inizio dello script e non cambia nulla. Nessun errore visualizzato.


    Citazione Originalmente inviato da darbula Visualizza messaggio
    ps. ho letto che ci sono limiti al numero di connessioni per la multi di curl (ma la devo trovare su php.net per esserne sicuro).
    EDIT:trovato CURLMOPT_MAXCONNECTS di default é 10 . "Pass a number that will be used as the maximum amount of simultaneously open connections that libcurl may cache. Default is 10. When the cache is full, curl closes the oldest one in the cache to prevent the number of open connections from increasing."
    Ora forse capisco perchè nel momento in cui eseguo 50 cURL parallele, perdo i risultati delle prime (a volte le prime 15 altre le prime 20, altre ancora le prime 30..)
    Ho provato a settare questo parametro a 1000 ma il risultato non cambia.

    Codice PHP:
    $options = array(
    CURLOPT_AUTOREFERER => 1,
    CURLOPT_HEADER => 0,
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_POST => 0,
    CURLOPT_TIMEOUT => 3,
    CURLOPT_IPRESOLVE => CURL_IPRESOLVE_V4,
    CURLOPT_SSL_VERIFYHOST, 0,
    CURLOPT_SSL_VERIFYPEER, 0,
    CURLOPT_MAXCONNECTS, 1000
    );

  25. #25
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Anzitutto correggi l'inizializzazione dell'array $options: dopo CURLOPT_SSL_VERIFYHOST e CURLOPT_SSL_VERIFYPEER non ci va la virgola, ma =>. CURLOPT_MAXCONNECTS non esiste, è CURLMOPT_MAXCONNECTS e va usato con curl_multi_setopt, ma non dovrebbe essere necessario metterci mano.
    Piuttosto prova ad aggiungere una chiamata a curl_multi_exec subito dopo curl_multi_add_handle, dentro il ciclo.

  26. #26
    faidateitalia non è connesso Utente giovane
    Data registrazione
    05-05-2015
    Messaggi
    30

    Predefinito

    Citazione Originalmente inviato da karl94 Visualizza messaggio
    Anzitutto correggi l'inizializzazione dell'array $options: dopo CURLOPT_SSL_VERIFYHOST e CURLOPT_SSL_VERIFYPEER non ci va la virgola, ma =>.
    Si, hai ragione.. Avevo copiato il settaggio dei parametri dall'esecuzione della cURL normale, dimenticandomi di modificare l'inizializzazione.


    Citazione Originalmente inviato da karl94 Visualizza messaggio
    CURLOPT_MAXCONNECTS non esiste, è CURLMOPT_MAXCONNECTS e va usato con curl_multi_setopt, ma non dovrebbe essere necessario metterci mano.
    Ora però la cosa si è invertita, ovvero vengono eseguite le richieste tranne le ultime 10,15..


    Citazione Originalmente inviato da karl94 Visualizza messaggio
    Piuttosto prova ad aggiungere una chiamata a curl_multi_exec subito dopo curl_multi_add_handle, dentro il ciclo.
    Ho aggiunto la chiamata all'interno del for. Questo è il codice:

    Codice PHP:
    /**
    @nodes array di url contenenti la richiesta alle Google API
    */
    function multiCurl($nodes) {

    $node_count = count($nodes);

    $curl_arr = array();
    $master = curl_multi_init();

    $options = array(
    CURLOPT_AUTOREFERER => 1,
    CURLOPT_HEADER => 0,
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_POST => 0,
    CURLOPT_TIMEOUT => 3,
    CURLOPT_IPRESOLVE => CURL_IPRESOLVE_V4,
    CURLOPT_SSL_VERIFYHOST => 0,
    CURLOPT_SSL_VERIFYPEER => 0
    );

    for(
    $i = 0; $i < $node_count; $i++)
    {
    $url =$nodes[$i];
    $curl_arr[$i] = curl_init($url);
    curl_setopt_array($curl_arr[$i], $options);
    curl_multi_add_handle($master, $curl_arr[$i]);
    curl_multi_exec($master, $running);
    }

    $results = array();

    foreach (
    $curl_arr as $ris)
    $results[] = curl_multi_getcontent($ris);

    return
    $results;
    }

  27. #27
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Hai levato però quella fuori dal ciclo, quella ci vuole sempre (dentro quel do-while e con quella condizione). Ripristina quella porzione di codice.

  28. #28
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    le chiamate multi non sono parallele nell'esempio di curl_multi_init (certo si potrebbe tentare anche chiamate multiple,ovvero in parallelo), leggendo la documentazione curl ho letto che al posto di utilizzare dns cache globale si debba usare share_init opzioni share http://php.net/manual/en/function.curl-share-setopt.php. Usando sempre il mio script puoi aggiungere la cache disabilitata, solo connessione, altri parametri. (setopt normale). Ricevi qualche errore?
    curl_multi_exec dovrebbe ritornare una costante, esempio sempre visibile in curl_multi_init.
    ps. ma curl_multi_init non dovrebbe essere chiamata solo dopo la curl_init, almeno imparo qualcosa anche io "(PHP 5, PHP 7)
    curl_multi_init — Returns a new cURL multi handle" Restituisce un nuovo multiplo handle curl.
    Ultima modifica di darbula : 15-04-2016 alle ore 20.13.16

  29. #29
    faidateitalia non è connesso Utente giovane
    Data registrazione
    05-05-2015
    Messaggi
    30

    Predefinito

    Ho ripristinato il ciclo do-while ed ora lo script nella maggior parte dei casi viene completato in 8-10 secondi (sono 57 richieste!). A volte però capita che si concluda dopo 20-25 secondi ed in casi particolari termina con un errore dicendo che è stato superato il tempo massimo d'esecuzione di 30 secondi.

    A parte questi casi, c'è qualcos'altro che posso fare per velocizzare l'esecuzione?
    Non ho capito bene come sfruttare la curl_share_setopt e se possa servire a qualcosa.
    Ultima modifica di faidateitalia : 16-04-2016 alle ore 01.10.46

  30. #30
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,896

    Predefinito

    ti avevo suggerito le funzioni share per salvarli nella cache di curl in quanto per effettuare richieste parallele si basa su quei dati, ma se tutte le richieste ti funzionano (vengono salvate automaticamente).
    Come migliorare il tuo codice dici? Beh per i millesimi di secondo, imposta i giusti valori Boolean. Sinceramente ho modificato un pò il tuo script è effettuato 200 richieste tutte andate a buon fine.
    EDIT:3 secondi tempo di esecuzione script.
    Codice:
    [199] => Array ( [url] => facsimile [content_type] => text/html; charset=UTF-8 [http_code] => 200 [header_size] => 135 [request_size] => 193 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 3.162246 [namelookup_time] => 3.2E-5 [connect_time] => 3.011195 [pretransfer_time] => 3.011216 [size_upload] => 0 [size_download] => 3 [speed_download] => 0 [speed_upload] => 0 [download_content_length] => -1 [upload_content_length] => -1 [starttransfer_time] => 3.161982 [redirect_time] => 0 [redirect_url] => ) )
    Ho notato che dalla 112 esima richiesta e successive "connection_time" è alto forse per problemi di sovraccarico al server. (comunque i tre milioni di micro secondi, non possono equivalere a 3 secondi, in quanto la somma delle 200 richieste supererebbe di gran lunga la soglia dei 30 secondi) b.php
    Codice PHP:
    <?php
    error_reporting
    (E_ALL | E_NOTICE | E_STRICT | E_DEPRECADED);
    ini_set("display_errors" , "stdout");
    ini_set("display_startup_errors" , 1);
    $tot='non valido';
    $i = 0;
    $max = 200;
    do {
    if(isset(
    $_GET[$i])){
    $tot = $i;
    }
    $i++;
    } while (
    $i < $max);
    echo
    $tot;
    ?>
    Va azionata con una richiesta del tipo http://nick.altervista.org/b.php?0=0 successivamente,ovvero dopo b.php? questo "1=1" è compio sempre 200 cicli di proposito. Secondo me è che google è pieno di richieste in quel momento
    Ultima modifica di darbula : 17-04-2016 alle ore 11.31.55

Pagina 1 di 2 12 UltimoUltimo

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •