• User Attivo

    EUREKA! EUREKA!

    siiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii

    ; Output buffering allows you to send header lines (including cookies) even
    ; after you send body content, at the price of slowing PHP's output layer a
    ; bit.  You can enable output buffering during runtime by calling the output
    ; buffering functions.  You can also enable output buffering for all files by
    ; setting this directive to On.  If you wish to limit the size of the buffer
    ; to a certain size - you can use a maximum number of bytes instead of 'On', as
    ; a value for this directive (e.g., output_buffering=4096).
    ;output_buffering = 4096
    
    ```disabilitando output_buffering ho riprodotto il problema in locale!!
    
    il segreto quindi è qui:
    
    "You can enable output buffering during runtime by calling the output buffering functions."
    
    Come si fa, ayrton?
    
    :D grazie,

  • User Attivo

    Fatto, fatto, fatto, fatto....
    :fumato: no, non io... maliziosetti 😄

    Ho fatto, adesso funziona tutto. Per chi non lo sapesse (ovvero quelli come me), il buffer di cui sopra si può riattivare (credo localmente) mettendo in testa allo script la funzione:

    ob_start();

    Nel caso mio l'ho messa in testa al file index.php perchè è quello che poi "include" su richiesta tutti gli altri script, incluso quello per il login che probabilmente dovrebbe starne fuori.

    Piterrey, forse il tuo problema è lo stesso... Facci sapere 😉

    Ayrton, ci sono controindicazioni o miglioramenti a quello che ho fatto?

    ciao e grazie,
    greybear


  • User Attivo

    scusate ma sono un poo' tonto in php
    potete farmi un esempio di codice?
    grazie


  • User Attivo

    Il mio index.php adesso inizia così:


    <?php
    ob_start();
    // da qui in poi tutto lo script
    ?>

    ed in questo modo abilito il buffering per il mio cms anche se è disabilitato nel php.ini
    Adesso sto facendo qualche verifica nel caso il buffering sia abilitato...
    ciao,
    greybear


  • Super User

    @greybear said:

    Fatto, fatto, fatto, fatto....
    :fumato: no, non io... maliziosetti 😄

    Ho fatto, adesso funziona tutto. Per chi non lo sapesse (ovvero quelli come me), il buffer di cui sopra si può riattivare (credo localmente) mettendo in testa allo script la funzione:

    ob_start();

    Nel caso mio l'ho messa in testa al file index.php perchè è quello che poi "include" su richiesta tutti gli altri script, incluso quello per il login che probabilmente dovrebbe starne fuori.

    Piterrey, forse il tuo problema è lo stesso... Facci sapere 😉

    Ayrton, ci sono controindicazioni o miglioramenti a quello che ho fatto?

    ciao e grazie,
    greybear
    Nessuna controindicazione. Io di solito la utilizzo per inviare al browser la pagina compressa.

    Comunque se si volesse abilitare l'output_buffering lo si potrebbe fare via .htaccess


  • User Attivo

    scusa , ma ob_start lo inserisco al posto di session start?


  • User Attivo

    Io l'ho messo come prima riga del primo file chiamato dal server e cioè index.php

    Tu devi regolarti con i tuoi script oppure cambiare il file .htaccess ma non so come si fa.


  • User Attivo

    Hai risolto?

    ciao,
    greybear


  • User Attivo

    No non ho risolto e credo di non aver capito granche'.:?


  • User Attivo

    Allora, supponiamo che il tuo sito abbia il solito index.php e tanti altri script php:

    Poichè quando qualcuno entra nel sito fa eseguire per forza lo script index.php, questo deve iniziare così:

    [inizio script]
    ----------------------------------------
    <?php
    ob_start();
    [da qui continuano tutte le altre istruzioni]
    ....
    ?>
    ----------------------------------------
    [fine script]
    
    ```In questo modo *la prima operazione che viene eseguita prima di ogni altra cosa*, è l'attivazione del buffering che ti eviterà l'errore da te riportato
    
    Ciao,
    Domenico

  • User Attivo

    Grazie Mille ho risolto siete stati di grande aiuto
    Marco