Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Uudelleen ohjauksesta vielä kerran (PHP)

Toshiba [07.08.2008 13:44:08]

#

Eli itselläni on ongelmana sivu jossa, jonka toiminta perustuu siihen, että index.php:ssä on includella sisällytetään muut sivut tarpeen mukaan keskidiviin. Eli ylhäällä index sivussa oleva header osuus on jokaisessa sivussa mukana lataamassa mm. tyylitiedostoa. Eli miten siis tälläiseen sivuun voi rakentaa uudelleenohjauksia, jos ennen header sanaa ei saa olla tulostuksia? Sivut toimivat ennen moitteettomasti, mutta serverin siirto aiheutti uudelleen ohjauksissa valituksia:

"Warning: Cannot modify header information - headers already sent by".

Mikä avuksi?

map_ [07.08.2008 14:27:08]

#

Yksi tapa on käyttää tulosteen puskurointia. Edellisellä palvelimellasi se saattoi olla kytketty päälle PHP:n asetusten tasolla.

Käynnistä puskurointi skriptin alussa ob_start()-funktiolla.
(ks. https://www.php.net/manual/en/function.ob-start.php )
Näin kaikki tuloste menee muistiin eikä suoraan selaimelle.
Skriptin lopussa tulosta puskuri selaimelle ob_end_flush()-funktiolla.

Jos haluat tehdä redirectin niin kutsu ennen sitä ob_end_clean(), joka hävittää kaiken siihen asti puskuroidun tulosteen. header()-kutsun jälkeen kutsu heti exit:iä.

Toshiba [07.08.2008 14:51:16]

#

Mahtava toimii testisivulla kuin junan vessa!

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta