Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] die; aka zniszcze twój szablon! :/
Forum PHP.pl > Forum > Przedszkole
lksh
Witam , no więc problem w tym, że zawsze kiedy użyje funkcji die cały szablon się psuję... czy jest jakiś sposób, żeby tak się nie działo? sadsmiley02.gif
Speedy
Umieść die() w odpowiednim miejscu. Zwróć uwagę, że funkcja die() powoduje NIEwykonywanie się wszystkiego co się pod nią znajdzie.
Możesz też użyć jakiegoś innego rozwiązania.

btw. nie widzę tego Twojego szablonu, więc mogę tylko się domyślać, co tam jest...
nasty
  1. <?php
  2. // twoj kod
  3. ?>

i tu jak bedzie die() to ci nic nie wyjdzie.... oprucz komunikatu die
lksh
No to wygląda mniej więcej tak:

index.php
  1. <?
  2. require "_config.php";
  3. polaczenie();
  4. ?>
  5. // --->poczatek szablonu
  6. -- tutaj jest środek i jest kod na include --
  7. // --->koniec szablonu


i teraz jak np. wpisuje adres http://www.pwned.pl/index.php?cmd=forum to mi się otwiera tam w środku szablonu no, a właśnie chodzi o to, że kiedy użyje funkcji die , cały szablon się ...
nospor
no bo die() konczy definitywnie aplikacje w miejscu, wktórym wystapilo die(). nic sie potym nie wykona. wiec jesli szablon zaczynal jakis blok i wsrodki wyskoczy die() no to przykro sie mowi, ale reszta szablonu sie nie wykona.
Takie rzeczy nalezy obslugiwac inaczej, bez korzystania z die(). Jakis system komunikatow se napisz czy cus smile.gif

pomysl nasty_psycho tez na nic sie nie zda, gdyz to co bylo przed die() i tak sie wyswietli. Tak wiec jego teoria:
Cytat
i tu jak bedzie die() to ci nic nie wyjdzie.... oprucz komunikatu die
jest bledna
nasty
Cytat
pomysl nasty_psycho tez na nic sie nie zda, gdyz to co bylo przed die() i tak sie wyswietli. Tak wiec jego teoria:

@nospor - masz racje zapomnaiejem, i tu masz sprostowanie :
  1. <?php
  2. // twoj kod
  3.  
  4. // jak bedziesz chcial uzyc die to zrob:
  5. die();
  6.  
  7. // dalej twoj kod
  8.  
  9. ?>


sorry...
nospor
@nasty_psycho o, i teraz to ma ręce i nogi i nawet ciekawy to pomysl.

Jednak dalej obstaje przy dobrym systemiku komunikatów. Zawsze to lepiej zoabczyc kawalek strony i komunikat, iz cos tam nie dziala, niz tylko bialy ekran z czarnym napisem. Mi to sie kojarzy od razu, iz calą aplikacje szlag trafil smile.gif
nasty
@nospor - zgadzam sie to moze :
  1. <?php
  2. // twoj kod
  3.  
  4. // jak bedziesz chcial uzyc die to zrob:
  5. $error_html = file_get_contents("error.html");
  6. $error_content = str_replace("ERROR_TEXT",$error,$error_html);
  7. die($error_content);
  8.  
  9. // dalej twoj kod
  10.  
  11. ?>

Wyjasniam: masz plik html ktory jest tylko i wylacznie do wyswietlania bledow, i jak ma sie bad jakis pokazac to czytamy error.html w ktorym jest caly kod strony w html i jest slowo ERROR_TEXT ktore jest zamieniane na zawartosc komunikatu z bledem i wszystko wyswietlamy...

i w takim przypadku robisz funkcje :
  1. <?php
  2. function ShowError($error)
  3. {
  4. $error_html = file_get_contents("error.html");
  5. $error_content = str_replace("ERROR_TEXT",$error,$error_html);
  6. die($error_content);
  7.  
  8. }
  9. ?>


i wtedy tylko ja wywolujesz podczas bledu
nospor
@nasty_psycho no ladnie, ladnie... naprawde smile.gif
Fajne rozwiązanie dla osob, którym nie przeszkadza zniknięcie calej strony spowodu jakiegos bledu. jesli wiec dla ~lksh to nie przeszkadza to ma idealne rozwiązanie.

Ja jednak obstaje przy systemiku komunikatów smile.gif W zasadzie wiekszosc bledow nie powinna likwidowac calej strony. no chyba ze w tym szablonie znajdzie sie wlasnie cala strona (lub jej prawie wierna kopia) - na chama dalo by sie zrobic (w zaleznosci od stopnia urozmaicenia strony na rozne akcje) smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.