Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] ob_start bardziej szczegółowo
codex
post 19.12.2015, 21:13:45
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 29.11.2015

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


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
darko
post 20.12.2015, 13:03:00
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


1. Powinno się.
2. exit


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
codex
post 20.12.2015, 15:49:04
Post #3





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 29.11.2015

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


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. ?>


Ten post edytował codex 20.12.2015, 15:50:13
Go to the top of the page
+Quote Post
com
post 20.12.2015, 17:45:47
Post #4





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


ob_start() a to wgl do czegoś potrzepujesz tam?, używaj jak jest potrzebne a nie bezmyślnie.
Go to the top of the page
+Quote Post
codex
post 20.12.2015, 18:12:39
Post #5





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 29.11.2015

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


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

Ten post edytował codex 20.12.2015, 18:18:31
Go to the top of the page
+Quote Post
Wazniak96
post 20.12.2015, 18:35:47
Post #6





Grupa: Zarejestrowani
Postów: 550
Pomógł: 75
Dołączył: 5.06.2012
Skąd: Lębork

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


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.
Go to the top of the page
+Quote Post
codex
post 20.12.2015, 20:49:21
Post #7





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 29.11.2015

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


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.
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: 19.07.2025 - 19:50