Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Moderatore di Motori di ricerca e webmarketing L'avatar di rigby76
    Registrato dal
    Oct 2005
    residenza
    Firenze
    Messaggi
    4,913

    Server risponde con un download invece di eseguire script

    A volte mi capita, nel richiamare uno script PHP, che il server invece di eseguirlo e rimandarmi l'output html, mi chieda invece di scaricare un file. Firefox apre una finestra di download che dice:
    E' stato scelto di aprie

    (vuoto)

    che è un application/x-httpd-cgi
    da: http://... (segue host)
    Viene scaricato un file vuoto.

    Questa situazione, che a volte permane per diverse ore, mi capita in hosting low budget, dopo che ho eseguito delle operazioni abbastanza pesanti.

    So che è meglio avere un hosting performante in relazione alle proprie esigenze, però mi piacerebbe capire a cosa è dovuta questa situazione. Il fatto è che altri host sulla stessa macchina continuano a funzionare.

    Grazie
    estremizzo, banalizzo e polemizzo!

    Hai letto le FAQ sui Motori di Ricerca?

  2. #2
    Moderatore di Motori di ricerca e webmarketing L'avatar di rigby76
    Registrato dal
    Oct 2005
    residenza
    Firenze
    Messaggi
    4,913
    up
    estremizzo, banalizzo e polemizzo!

    Hai letto le FAQ sui Motori di Ricerca?

  3. #3
    Moderatore di Motori di ricerca e webmarketing L'avatar di rigby76
    Registrato dal
    Oct 2005
    residenza
    Firenze
    Messaggi
    4,913
    Rilancio la mia richiesta di aiuto in maniera più circostanziata, sperando che qualcuno mi aiuti a capire dove possa risiedere il problema!

    Ho uno script che fa varie cose, tra cui parsare un file con la tecnica dell'xml_parse(). Questa parte dà problemi nel caso che il file abbia certe dimensioni, ad esempio già con un file xml di 300kB dà problemi. Il file è stato aperto da un socket ed è salvato in una variabile stringa.

    La cosa strana è che il problema che vi sto per descrivere si presenta solo sul server remoto, che, sebbene budget, è un dedicato abbastanza scarico. Sul mio server locale (e su altre macchine remote) funziona correttamente.

    Il loop che uso è il seguente.

    Codice PHP:
    $offset    0;
    $limit    4096;
    while ( 
    $offset strlen($data) )
    {
        if ( !
    xml_parse($parsersubstr($data,$offset,$limit), $offset+$limit >= strlen($data) ) )
        {
        
    // do error stuff.....

        
    }
        
    $offset += $limit;
    }
    xml_parser_free($parser); 
    La cosa che non capisco è che sul dedicato che vi dicevo vi posso garantire che il loop non viene mai portato a termine, ma lo script è interrotto e il server rende come response header solamente la riga HTTP/1.x 200 OK (non essendoci output prima di quel punto), cosa che fa evidentemente ritenere al browser che i dati ricevuti siano un file da scaricare, che però è vuoto.

    Indagando meglio, sembra che i loop si interrompa all'ultima iterazione, durante l'esecuzione della xml_parse col flag che indica l'ultimo loop. Dopo questa iterazione perdo il filo del flusso dello script: sembra che la funzione non finisca mai l'esecuzione e che lo script venga "segato" senza output a schermo.

    Inizialmente pensavo che ci fosse un sistema di controllo di occupazione della cpu che uccide i processi troppo onerosi. Non sono più del tutto di questo parere, dato che posso verificare l'esecuzione dello stesso fino all'ultima iterazione.

    Non so più che pensare!

    Grazie e tutti!
    estremizzo, banalizzo e polemizzo!

    Hai letto le FAQ sui Motori di Ricerca?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.