Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> setcookie() i problem z nagłówkiem
Michael2318
post 23.12.2012, 08:54:06
Post #1





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

Ostrzeżenie: (0%)
-----


Wiadomo, że setcookie() musi być wysyłane przed jakimikolwiek innymi elementami, które się wyświetlają. Ja mam problem taki, że korzystam z prostego systemu szablonów i kod w każdym pliku wygląda tak:

  1. <?php
  2.  
  3. include('page_header.php'); // includuje sobie nagłówek
  4.  
  5. // jakis tam kod, odpowiadajacy za dana strone
  6.  
  7. include('page_footer.php'); // includuje sobie stopke
  8.  
  9. ?>


I teraz, w przypadku logowania, w miejscu // jakis tam kod, odpowiadajacy za dana strone mam kod, odpowiadajacy za logowanie sie na strone. W tym kodzie mam też autologin, zrobiony po swojemu, który wciska losowy ciag znakow do ciastka i jesli user nie jest zalogowany to sprawdzane jest czy to ciastko u niego istnieje i jesli tak to sprawdzany jest ten losowy ciag znakow. Problem jest tego typu, ze to ciastko sie nigdy nie tworzy bo mam blad:

Cannot modify header information

Wiem czemu tak jest, ale nie wiem jak to sensownie poprawić. Wszystko przez jedną z funkcji szablonu, która odpowiada za wyświetlanie przetworzonego szablonu:

  1. public function display()
  2. {
  3. $tmp = file_get_contents($this->dir.$this->file);
  4. $tmp = str_replace(array_keys($this->tags), array_values($this->tags), $tmp);
  5. $tmp = preg_replace("#\(\.(.*?)\.\)#", "", $tmp);
  6. echo $tmp;
  7. }


przedostatnia linia, tam jest echo.

Jakieś sugestie? Nie bardzo odpowiadałoby mi wyświetlanie tego nagłówka gdzieś w środku kodu php, po setcookie() bo to przysporzy mase warunków dodatkowych, tym bardziej, że te ciastka będę chciał tworzyć w wielu miejscach ;/

Ten post edytował Michael2318 23.12.2012, 08:57:51
Go to the top of the page
+Quote Post
mortus
post 23.12.2012, 09:22:06
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


Skorzystaj z możliwości buforowania wyjścia, przyjżyj się dokumentacji ob_start() i ob_end_flush(). Buforowanie wyjścia działa w ten sposób, że podczas przetwarzania skryptu, nagłówki są wysyłane od razu na wyjście, a zawartość przechowywana jest w wewnętrznym buforze. Dopiero użycie odpowiedniej funkcji "wypluwa" kontent na wyjście.
  1. // Twój kod

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 12:43