codex
19.12.2015, 21:13:45
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
20.12.2015, 13:03:00
1. Powinno się.
2. exit
codex
20.12.2015, 15:49:04
no tak myślałem ... tylko jak mam to zrobić gdy mam tak:
index.php
<?php
if(!strcmp($_GET['argx'], 'loin')) { //logowanie $access = checkAcess($_POST['username'], $_POST['userpassword']); // sprawdzam czy nazwa usera i haslo pasuja.
switch ($access) {
case 0:
$_SESSION['username'] = $_POST['username'];
header("refresh: 1;");//*** tutaj ponownie uruchomi się funkcja ob_start() a nie mam gdzie wstawić ob_end_flash() *** break;
case 1:
$message = 'bledne haslo';
header("Location: menu/login/login.php?$msg=$message"); break;
}
} elseif (!strcmp($_GET['argx'], 'logout')) { header("refresh: 0;"); // *** tutaj ten sam problem *** }
?>
ob_start() a to wgl do czegoś potrzepujesz tam?, używaj jak jest potrzebne a nie bezmyślnie.
codex
20.12.2015, 18:12:39
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
20.12.2015, 18:35:47
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
20.12.2015, 20:49:21
podczas pisania odpowiedzi dostałem automatyczne przekierowanie do rozwiązania tego problemu na phpedii:
http://phpedia.pl/wiki/Cannot_add_header_i...rs_already_sentdzię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.