![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 22.01.2011 Skąd: Murowana Goślina Ostrzeżenie: (0%) ![]() ![]() |
Powiedzmy, że masz stronę css napisaną w index.php.
Jeżeli wywołasz funkcję z innego pliku zawierającą <?php exit; ?> na stronie .php, wtedy od miejsca, w którym została wywołana kod css jest obcięty!!! Czy ktoś wie dlaczego tak się dzieje i jakie są sposoby, aby to ominąć? Przykład: index.php:
plik_z_exitem.php: No i zamiast wyświetlić takie coś:
To wyświetla samo logo:
Czyli wszystko co pod exit zostaje wycięte. Strasznie wnerwiające to, gdyż np. chcę wprowadzić obsługę błędów w innym pliku np. logowania czy rejestracji, łączenia z bazą itp. no i wszystko działa, tylko mi obcina resztę strony, przez co wygląda okropnie, jak jakieś pogniecione badziewie. Wie ktoś jak to omijają inni? Ten post edytował waqmaz 3.02.2011, 18:28:19 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 151 Pomógł: 36 Dołączył: 1.02.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
exit używa się tylko w krytycznych sytuacjach, kiedy jest jakiś błąd który powoduje, że strona nie będzie działać prawidłowo Ten post edytował Piogola 3.02.2011, 18:34:31 |
|
|
-mkdes- |
![]()
Post
#3
|
Goście ![]() |
exit;
Przerywa wykonywanie skryptu. Więc nic co masz poniżej niego się nie wykona. http://php.net/manual/en/function.exit.php |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 76 Pomógł: 8 Dołączył: 10.11.2010 Skąd: Polska,Katowice Ostrzeżenie: (0%) ![]() ![]() |
na chłopski rozum exit zachowuje się jak return w funkcji, tylko że exit działa na cały skrypt.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 3.02.2011 Ostrzeżenie: (0%) ![]() ![]() |
Ja zazwyczaj stopkę mam w oddzielnym pliku i w przypadku gdy chcę zakończyć skrypt z jakiegoś powodu, to wygląda u mnie tak:
Kod if (warunek) {
print "Informacja o błędzie"; require_once("plik stopki"); exit; } |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 22.01.2011 Skąd: Murowana Goślina Ostrzeżenie: (0%) ![]() ![]() |
Ja zazwyczaj stopkę mam w oddzielnym pliku i w przypadku gdy chcę zakończyć skrypt z jakiegoś powodu, to wygląda u mnie tak: Kod if (warunek) { print "Informacja o błędzie"; require_once("plik stopki"); exit; } Tak, tylko, że ja wyświetlam to w danym boxie w index.php a musiała by być pod tym boxem (IMG:style_emoticons/default/tongue.gif) btw. exit działa jak return true? |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 76 Pomógł: 8 Dołączył: 10.11.2010 Skąd: Polska,Katowice Ostrzeżenie: (0%) ![]() ![]() |
Może źle to ujałem. Bo nie zwraca żadnych danych, ale chodzi o samo zakańczanie działania skryptu. Ale możesz w exit wyświetlić informacje
exit('tresc'); |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 22.01.2011 Skąd: Murowana Goślina Ostrzeżenie: (0%) ![]() ![]() |
w sumie jak daję return true; zamiast exit; to nie ucina mi strony i skrypt działa, prawie poprawnie (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 111 Pomógł: 10 Dołączył: 16.07.2009 Skąd: Toruń Ostrzeżenie: (0%) ![]() ![]() |
przym przypadku nie ma znaczenia, co zwracasz, czy prawdę, czy fałsz, ważne, że return przerywa i tyle.
A exit robi to globalnie. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Tylko improwizujący amatorzy używają exit, die itp. bo nie potrafią (lub im się nie chce) zaimplementować obsługi błędów.
Najprościej wszędzie tam gdzie jest exit/die zrobić:
I sprawdzać często i gęsto czy tablica błędów jest pusta, jeśli nie jest to ją wyświetlić + szablon strony błędu. Ładna strona błędu świadczy o nas (IMG:style_emoticons/default/smile.gif) A w nowych aplikacjach oczywiście używać wyjątków. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 23:23 |