![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 119 Pomógł: 0 Dołączył: 19.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Tak się zawsze zastanawiałem, jak sobie radzicie z przekierowaniami w PHP np po logowaniu.
Jak wiadomo istnieje funkcja header, no ale jeżeli przed tą funkcją został już wysłany jakiś tekst etc. to wypluje błąd w stylu already sent Przez to nie zawsze da się użyć header, ale wtedy z pomocą idzie funkcja ob_start(); która to bufferuje odpowiednio, ale czy to rozwiązanie jest bezpieczne i prawidłowe ? Spotkałem się także z echo i odpowiednim meta tagiem, ale to z kolei nie jest wg standardów W3C ponieważ meta tagi powinny być w sekcji head. Jak wy sobie z tym radzicie, jak to robić, aby to działało i było poprawne. Ten post edytował Reptile ReX 17.03.2011, 04:02:56 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Wszystkie ale to wszystkie operacje "logiczne" strony wykonuje jest przed jakimkolwiek wyświetleniem danych. Dopiero po ich wykonaniu zwracasz do przeglądarki cokolwiek. Dzięki temu zawsze jesteś w stanie zrobić przekierowania.
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 248 Pomógł: 31 Dołączył: 14.12.2010 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Ja wstawiam w ciąg php
zawsze działa nie trzeba używać ob_start() -------------------- Jeżeli pomogłem kliknij "Pomógł" :)
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 872 Pomógł: 94 Dołączył: 31.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Jak wiadomo istnieje funkcja header, no ale jeżeli przed tą funkcją został już wysłany jakiś tekst etc. to wypluje błąd w stylu already sent Wiec zle zaprojektowales aplikacje, jak wookieb napisal zwracanie odpowiedzi powinno sie odbywac po wykonaniu wszystkich operacji, bo jak przypuszczam Twoj kod to sieczka echo naprzemian z mysql_query i petlami. Wspolczesne frameworki bardzo dobrze pokazuja, jak mozna rozdzielic poszczegolne czesci aplikacji. Mozesz tez poczytac o wzorcu MVC, ktory wedlug mnie nie jest najlepszym wzorcem do pisania w php, ale pokazuje sedno sprawy.
Przez to nie zawsze da się użyć header |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 387 Pomógł: 66 Dołączył: 31.03.2005 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
OOP, MVC. Już się nie programuje w strukturach, te czasy odeszły i nastały: symfony, zend i cake lub napisanie jakiegoś swojego frameworka przy użyciu obiektów.
-------------------- ..::: Jak pomogłem to kliknij pomógł. Tak rzadko używacie tej opcji :( :::..
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
cudny... Odeszły jedynie dla nowych programistów. Ale i tak z czasem będziesz musiał pracować z serwisami strukturalnymi (choćby po to by takowy na obiektowy klientowi przepisać). Nie mówiąc o tym, że im mniej obiektówki, tym kod szybszy i czasem jest to powodem, by kod napisać jako porządny strukturalny. Odrzucanie kodu strukturalnego tylko dlatego, że "nie jest trendy" jest równie mądre co eutanazja "bo ktoś jest już stary". Zastanów się przy okazji czemu sterowniki i jądra systemów nie są pisane w językach nowoczesnych, ale Assemblerze czy C.
A co do tematu, to radzę autorowi poważnie przemyśleć strukturę strony i kod. Jak wspomniał wookieb, logika cała powinna się wykonać przed wysłaniem choćby bita informacji do przeglądarki. Jeśli już jest się zmuszonym, to powinno to być buforowane i dopiero po wykonaniu całej logiki wysłane. Unika sie wtedy właśnie błędów o jakich wspomina autor tematu. Poza tym przeplatany kod "czyta się" strasznie. -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Odrzucanie kodu strukturalnego tylko dlatego, że "nie jest trendy" jest równie mądre co eutanazja "bo ktoś jest już stary". Zastanów się przy okazji czemu sterowniki i jądra systemów nie są pisane w językach nowoczesnych, ale Assemblerze czy C. Powiedz, że żartujesz... -------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 387 Pomógł: 66 Dołączył: 31.03.2005 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
Nie mówiąc o tym, że im mniej obiektówki, tym kod szybszy Nigdy w życiu się z tym nie zgodzę, jeśli chodzi o zaczytywanie klas kiedy są one porządnie zrobione to jeśli trzepniesz sobie jakiegoś dobrego autoloadera albo używasz jakiegoś frameworka to masz tylko ten kod co cię interesuje, a nie setki linijek niepotrzebnych struktur. Zastanów się przy okazji czemu sterowniki i jądra systemów nie są pisane w językach nowoczesnych, ale Assemblerze czy C. Bo są bliższe procesorowi, co sprawia że działają szybciej - to nic nie ma wspólnego ze strukturami ! -------------------- ..::: Jak pomogłem to kliknij pomógł. Tak rzadko używacie tej opcji :( :::..
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 119 Pomógł: 0 Dołączył: 19.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie przekonuje mnie za bardzo obiektowość, wolę oldschoolowe programowanie strukturalne i też uważam, że jest szybsze niż obiektowe.
Ale nei chcę wywoływać burzy, więc mówię od razu, wiem że obiektowość jest wygodniejsza, ale nie mogę się przestawić póki co. Ale dziękuje za rady, dzięki temu wiem już jak planować swoje aplikacje i każdą logikę umieszczam przed wyświetlaniem treści. Pozdrawiam Serdecznie takich maniaków PHP jak ja ![]() |
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
@Wookieb - nie. Żeby obiektówka działała porównywalnie szybko jak dobrze napisany strukturalny kod to trzeba cudować z różnego rodzaju cachem, akceleratorami i używać jej w sposób wskazujący na naprawdę dobre zrozumienie idei oraz technik. Im więcej obiektówki tym kod wolniejszy. Większe projektyuwidaczniają to najlepiej. Nie jestem zwolennikiem i orędownikiem pisania kodu strukturalnego, ale też nie jestem zaślepiony kodem obiektowym. Czasem wolę w miejscach newralgicznych zrobić prosty strukturalny niż tworzyć na siłę obiektowy. Wszystko zależy od konkretnej sytuacji, kodu wcześniejszego i masy innych czynników.
A co do sterowników, to ile języków wysokiego poziomu pozwala na swobodne adresowanie pamięci poprzez choćby wstawki assemblerowe? A co do wątku, to zalecałbym autorowi poczytać o MVP, to by takich problemów zapewne uniknął ![]() -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 10.07.2025 - 05:54 |