![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 155 Pomógł: 0 Dołączył: 26.07.2011 Ostrzeżenie: (20%) ![]() ![]() |
Tworzę już chyba z tydzień, system rejestracji z całym oprzyrządowaniem, przypomnienie hasła itd.. W związku z tym chciałbym poznać Twoją opinie.
Czy jest to nierozerwalnie związane z session_start? Zawsze jedno ob musi być przed nim a drugie ob za nim. Czy mają być na końcach plików, niezależnie od fragmentów <?php?>? Dowiedziałem się że przed każdym session_start(); musi być ob_start(); a na zakończenie(ale w którym dokładnie miejscu, co znaczy zakończenie?) ma być ob_end_flush(). Początek każdego pliku zazwyczaj wygląda u mnie tak.
Początek znaczy, nawet przed "<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">" Później mam kilka sektorów <?php?> i wszystko zdaje się działać niezależnie od tego czy w pliku jest gdziekolwiek ob_end_flush(); . Czy może tego nie widać, nie wywala błędów, ale trzeba to wstawić bo brak tego czymś grozi? Proszę mnie ignorancko nie odsyłać do manuala, bo gdybym tam nie sprawdzał, nie pisał bym takiego długiego postu. Tam jest bardziej definicja, a mi chodzi o OPINIE i rady. Czy i dlaczego nie wystarczy samo session_start(); ? Ten post edytował Tho 30.10.2011, 20:02:36 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Zacznijmy od tego:
Cytat Dowiedziałem się że przed każdym session_start(); musi być ob_start(); gdzie ty taką informację przeczytałeś? Dlaczego ci błąd zniknął? Najlepiej zobrazuje to ten skrypt: Kod <?php ob_start(); echo $nie_istniejaca_zmienna; ob_get_clean(); Normalnie powinieneś dostać notice, że użyłeś zmiennej która nie istnieje, a teraz zobacz na ten skrypt: Kod <?php ob_start(); echo $nie_istniejaca_zmienna; $ob = ob_get_clean(); echo $ob; $ob przechowuje teraz efekt działania echo $nie_istniejaca_zmienna; jeżeli wyświetlisz wynik $ob, w efekcie czego dostaniesz błąd, ten który powinieneś dostać, że używasz zmiennej ($nie_istniejaca_zmienna) która najzwyczajniej nie istnieje. Poczytaj sobie w manualu o buforze, tutaj to chyba dość łopatologicznie przedstawiłem. Często się używa bufora w celu manipulacji późniejszymi danymi, jak chociażby zmiana w html, czy inne rzeczy. Jeżeli nie potrzebujesz tego, to nie musisz używać ob_* nigdzie, a to że gdzieś pisze że z session musi być ob_* to jest bzdura. Zamiast czytać kursy w internecie, kup sobie porządną książkę, a wszystkie swoje wątpliwości co do języka weryfikuj w manualu (oczywiście nie omijaj również komentarzy pod opisem danej rzeczy w manualu, bo one są bardzo pomocne), bo w tej chwili zakładasz tematy i pytasz się niekiedy o rzeczy które są banalne i są umieszczone w manualu czy najprostszych kursach, efektem czego jest tworzenie jakiegoś kursu dla ciebie tutaj na forum. Taki formularz rejestracji czy nawet gotowy cały sklep, można napisać krok po kroku w wielu książkach, gdzie ci wytłumaczą każdą jedną rzecz co powinno rozwiać twoje wątpliwości. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 18:38 |