Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] ob_start bardziej szczegółowo
Forum PHP.pl > Forum > Przedszkole
codex
Witam. Jak nigdy dzisiaj wszystko działa u mnie elegancko, lecz zastanawiam się nad jedną rzeczą:
1. czy po użyciu ob_start() nie powinno się czasem używać którejś z funkcji ob_clean() ob_end_flash?
W manualu najczęściej po ob_start() wystepuje ob_end_clean() i widzę w przykładach, ze funkcja ta się zagnieżdża.
2. Jeżeli trzeba wykonać którąś z funkcji kończących to jak to zrobić gdy w kodzie występuje przekierowanie? ( po w sumie na razie tylko po to wykorzystuję ob_start() )
a może samo przekierowanie na inną stronę samoistnie zwalnia buforowanie i nie muszę się dalej martwić o zużywanie zasobów
darko
1. Powinno się.
2. exit
codex
no tak myślałem ... tylko jak mam to zrobić gdy mam tak:
index.php
  1. <?php
  2. if(!strcmp($_GET['argx'], 'loin')) { //logowanie
  3. $access = checkAcess($_POST['username'], $_POST['userpassword']); // sprawdzam czy nazwa usera i haslo pasuja.
  4. switch ($access) {
  5. case 0:
  6. $_SESSION['username'] = $_POST['username'];
  7. header("refresh: 1;");//*** tutaj ponownie uruchomi się funkcja ob_start() a nie mam gdzie wstawić ob_end_flash() ***
  8. break;
  9. case 1:
  10. $message = 'bledne haslo';
  11. header("Location: menu/login/login.php?$msg=$message");
  12. break;
  13. }
  14. } elseif (!strcmp($_GET['argx'], 'logout')) {
  15. header("refresh: 0;"); // *** tutaj ten sam problem ***
  16. }
  17.  
  18. ?>
com
ob_start() a to wgl do czegoś potrzepujesz tam?, używaj jak jest potrzebne a nie bezmyślnie.
codex
no właśnie potrzebne jest. bez tego przekierowanie przy pomocy funkcji header() nie działa.
wywala jakiś komunikat po angielsku z którego wynika, że przekierowanie zostało ustanowione i nie mogę go zmodyfikować - użycie ob_start() na początku kodu rozwiązuje ten problem
Wazniak96
Wywala Ci błąd bo zanim ustawiasz nagłówek Location wysyłasz do przeglądarki już jakieś dane. Funkcja header powinna być wykonana zanim zwrócisz do przeglądarki jakiekolwiek dane.
codex
podczas pisania odpowiedzi dostałem automatyczne przekierowanie do rozwiązania tego problemu na phpedii:
http://phpedia.pl/wiki/Cannot_add_header_i...rs_already_sent
dzięki za pomoc.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.