Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 0 Dołączył: 20.02.2003 Skąd: Poznań Ostrzeżenie: (0%)
|
Pytanie: jak obejść "ograniczenie" php, które wymusza użycie header("Location: ") przed wysłaniem danych do przeglądarki?
W dokumentcji można przeczytać: Cytat Note: As of php 4, you can use output buffering to get around this problem, with the overhead of all of your output to the browser being buffered in the server until you send it. You can do this by calling manual/en/function.ob-start.php" target="_blank and manual/en/function.ob-end-flush.php" target="_blank in your script, or setting the output_buffering configuration directive on in your php.ini or server configuration files.
|
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 166 Pomógł: 0 Dołączył: 1.04.2004 Skąd: Gdynia Ostrzeżenie: (0%)
|
Sam sobie odpowiedziałeś. Inny sposób poza podanym przez Ciebie, a zaczerpniętym z dokumentacji, jest użycie szablonów (Smarty).
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 0 Dołączył: 20.02.2003 Skąd: Poznań Ostrzeżenie: (0%)
|
Kumam po angielsku, ale niektórych słów z powyższego cytatu nie rozumiem. Więc zapytam tak: na ile ustawić wartość output_buffering?
Obecnie mam wartość domyślną: 4096 (i nie działa) Czy zmiana tego parametru może stanowić potencjalną lukę w bezpieczeństwie (myślę, że raczej nie, ale wolę się upewnić)? |
|
|
|
Post
#4
|
|
|
Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%)
|
Przede wszystkim to nie jest ograniczenie php, tylko protokolu HTTP.
Po drugie to, ze masz problem z "headers already sent" z reguly swiadczy o zlym zaplanowaniu kodu, wszystko da sie zrobic bez problemu, trzeba tylko chciec i troszke pomyslec. Po trzecie jak juz naprawde chcesz skorzystac z output buffering to raczej rob to w skrypcie korzystajac z funkcji ob_*, ze wzgledu na to, ze innym serwerze niz Twoj skrypty moga nie dzialac, jak nie bedziesz mial dostepu do konfiguracji, zeby wlaczyc buforowanie. |
|
|
|
![]() ![]() |
|
Aktualny czas: 22.12.2025 - 19:49 |