Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][PHP]ob_start i session
malminiart
post 26.03.2010, 18:32:14
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 16.05.2009
Skąd: GB

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


Witam wszystkich.
Problem dotyczy pliku logowania, a w zasadzie w/w funkcji:

plik wyswietla zawartosc html z formularzem logowania
formularz po SUBMIT jest przetwarzany w wewnetrznym skrypcie
sprawdzana jest baza danych - porownywanie hasla etc.
uruchamiana jest druga strona po zweryfikowaniu danych

Teraz problem:
po zweryfikowaniu danych przypisalem je do sesji
  1. $_SESSION['imie']
itd
przejscie do nowej strony zrobilem za pomoca
  1. header('Location:nowastrona.php');

azeby bylo mozliwe wyslanie naglowka musialem wpisac
na poczatku strony (zaraz za znacznikiem <?php)

I caly moj problem rozumuje jako:
przez to ze dodalem ob_start - sesje ktore sa pozniej zapisywane wewnatrz skryptu nie dzialaja bo wlaczone jest buforowanie wyjscia.
a jak wylacze buforowanie to nie dziala header gdyz juz cos jest wyslane do przegladarki (czyt. strona)

Nie mam pojecia jak to obejsc - moze nie do konca rozumiem zasady ich dzialania
juz sam nie wiem - bylbym naprawde wdzieczny za pomoc

pozdrawiam
Go to the top of the page
+Quote Post
Kszyhuu
post 26.03.2010, 19:54:26
Post #2





Grupa: Zarejestrowani
Postów: 157
Pomógł: 32
Dołączył: 24.08.2009

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


Cytat(malminiart @ 26.03.2010, 18:32:14 ) *
I caly moj problem rozumuje jako:
przez to ze dodalem ob_start - sesje ktore sa pozniej zapisywane wewnatrz skryptu nie dzialaja bo wlaczone jest buforowanie wyjscia.
a jak wylacze buforowanie to nie dziala header gdyz juz cos jest wyslane do przegladarki (czyt. strona)

A dodałeś przed ob-start();

questionmark.gif
Go to the top of the page
+Quote Post
malminiart
post 26.03.2010, 21:08:57
Post #3





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 16.05.2009
Skąd: GB

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


Tak - dodalem
moj plik logowanie.php rozpoczyna sie kodem
  1. <?php


pozniej jest html z formularzem i skrypt php ktory jest uruchamiany po submit
ten skrypt powinien sprawdzic dane z baza danych >> zapisac zmienne do session i przejsc do nowej strony

dodalem ob_start() zeby moc przejsc za pomoca header do nowej strony - tyle ze na tej stronie nie wyrzuca mi session - tak jak by ich nie zapisalo wczesniej do $_SESSION
mysle ze to przez ta funkcje ob_start() na poczatku skryptu - tyle ze jak wywale ta funkcje to nie moge uzyc header

i kolo sie zatacza
Go to the top of the page
+Quote Post
Fifi209
post 26.03.2010, 21:13:15
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Włącz sobie wyświetlanie błędów zobaczysz dlaczego, albo poczytaj o ob_start...

  1. <?php
  2.  
  3. // wcześniej żadnego nagłówka, żadnego kodu html, kodowanie utf-8 bez BOM
  4.  
  5.  
  6. // skrypt
  7.  
  8. header('Location: xxx.php');
  9.  
  10.  
  11. ?>


Ten post edytował fifi209 26.03.2010, 21:14:36


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
malminiart
post 26.03.2010, 21:24:13
Post #5





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 16.05.2009
Skąd: GB

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


czytalem... kwestia czy zrozumialem wstydnis.gif

czy to nie jest tak ze jedno wyklucza drugie?

czy gdy uzyje ob_start() >> przechodzi w tryb buforowania wyjscia i wowczas uzywanie session mija sie z celem gdyz i tak nic nie jest zapisywane w session?

sorry za nudzenie - ale nie moge tego sobie w glowie poukladac

Dzieki za odpowiedzi
Go to the top of the page
+Quote Post
Fifi209
post 26.03.2010, 21:26:11
Post #6





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(malminiart @ 26.03.2010, 21:24:13 ) *
czytalem... kwestia czy zrozumialem wstydnis.gif

czy to nie jest tak ze jedno wyklucza drugie?

czy gdy uzyje ob_start() >> przechodzi w tryb buforowania wyjscia i wowczas uzywanie session mija sie z celem gdyz i tak nic nie jest zapisywane w session?

sorry za nudzenie - ale nie moge tego sobie w glowie poukladac

Dzieki za odpowiedzi


On buforuje, ale nagłówki wyśle najpierw potem resztę (np. kod html) wszystko będzie działało poprawnie - jednak to nie jest dobra metoda moim zdaniem. (jeżeli musisz coś takiego robić to coś najprawdopodobniej źle zaprojektowałeś)

Ten post edytował fifi209 26.03.2010, 21:26:41


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
Kszyhuu
post 27.03.2010, 12:31:52
Post #7





Grupa: Zarejestrowani
Postów: 157
Pomógł: 32
Dołączył: 24.08.2009

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


Cytat(malminiart @ 26.03.2010, 21:24:13 ) *
czy to nie jest tak ze jedno wyklucza drugie?

czy gdy uzyje ob_start() >> przechodzi w tryb buforowania wyjscia i wowczas uzywanie session mija sie z celem gdyz i tak nic nie jest zapisywane w session?

Nie, nie jest tak, że jedno wyklucza drugie. Ja w moich systemach logowania zawsze korzystałem z obu funkcji. Popatrz nawet na dwa szkielety, które wrzuciłem tutaj na forum:
http://forum.php.pl/index.php?s=&showt...st&p=653850
A w szczególności:
http://forum.php.pl/index.php?s=&showt...st&p=688407
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: 25.07.2025 - 09:47