Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117

    Header già lanciati come ovviare?

    Ho bisogno spesso nel mio script php di reindirizzare!
    A tal proposito uso gli headers (location).

    Purtroppo a volte mi da errore (avendo già spedito gli headers) alchè mi chiedo...come faccio a ottenere il mio redirect quando voglio io se son costretta a usarlo prima che vengano lanciati gli headers?

  2. #2
    Perché spedisci altri headers prima, se tanto devi/vuoi fare un redirect? Comunque, ammesso che non ne puoi proprio fare a meno (adesso non mi viene in mente un esempio di questo caso, ma non dubito che possa esistere) mi sa che ti tocca usare javascript.

  3. #3
    Utente di HTML.it L'avatar di Andy_87
    Registrato dal
    Jun 2010
    Messaggi
    323
    Ciao veronica, devi usare ob_start(); e ob_end_flush();
    "Se non riuscirò a piegare gli dei del cielo, smuoverò le potenze dell'inferno"
    S. Freud

  4. #4
    Non c'è bisogno di javascript.

    Basta un
    Codice PHP:
    ob_start(); 
    ad inizio pagina

  5. #5
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    Ma non li spedisco io! (almeno credo! )

    Cmq con ob_start() ho risoltooo! grazieeeeee

  6. #6

  7. #7
    Purtroppo a volte mi da errore (avendo già spedito gli headers)
    Dice di aver già spedito gli headers. secondo php.net:
    This function will turn output buffering on. While output buffering is active no output is sent from the script (OTHER THAN HEADERS) [...]
    Quindi ob_start() non serve proprio a niente. Differente il caso in cui nessun header venga spedito prima che php inizi a scrivere l'output: allora ob_start() fa il suo (sporco) lavoro redirigendo l'output in una stringa. Ma a quel punto allora è sufficiente non far scrivere nulla al proprio script. Tanto, se bisogna essere rediretti in un'altra pagina, che senso ha scrivere qualcosa a video? lo so che mille mila persone risolvono così, ma secondo me non è un metodo pulito per risolvere il problema. ipse dixit, ciao.

    P.S. Mi batterò ferocemente per l'esclusione di ob_start() dalla prossima release di php

  8. #8
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    purtroppo non ho idea di come funzionino gli headers! Quindi non so che intendi per non spedirli! io uso solo il codice che mi serve e mi dice che li ho spediti! :/

    Cmq con ob_start risolvo! :P

  9. #9
    In realtà ob_start() non serve unicamente a questo..

    Però ovvia a questo problema


  10. #10
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da bionicoz
    Dice di aver già spedito gli headers. secondo php.net:

    Quindi ob_start() non serve proprio a niente.
    idee confuse eh

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.