Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Funkcja error
bne
post
Post #1





Grupa: Zarejestrowani
Postów: 83
Pomógł: 1
Dołączył: 18.10.2006

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


Witam, chciałbym stworzyć funkcje error, która wywalać będzie błąd na całej stronie i nie będzie przetwarzać jej dalej ale też nie będzie zwracać wcześniejszej zawartości...

prosty przykład :
plik index.php...
  1. <?php
  2. echo 'jakas tam zawartosc strony';
  3.  
  4. if($a=1) {
  5. error("error");
  6. }
  7. ?>

jeśli $a=1 wyskoczy error, aby dalej nie przetwarzało strony wystarczy exit; ale jak pozbyć się wcześniejszej zawartości strony?

Wcześniej korzystałem z funkcji powiązanej z smarty, niestety przy kodzie bez smarty jest bezużyteczne...
Lecz jeśli komuś to może podsunąć rozwiązanie to podaje niżej:
  1. <?php
  2. function error($text) {
  3.  
  4. global $smarty;
  5. global $db;
  6. global $start_time;
  7. global $player;
  8.  
  9. if (!ereg("<a href",$text)) {
  10. $text = $text." (<a href="".$_SERVER['PHP_SELF']."">Wróć</a>)";
  11. }
  12. $smarty->assign("Message", $text);
  13. $smarty->display('error.tpl');
  14. require_once("includes/foot.php");
  15. }
  16. ?>

Pozdrawiam
bne
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
cadavre
post
Post #2





Grupa: Zarejestrowani
Postów: 472
Pomógł: 7
Dołączył: 7.12.2005
Skąd: Gliwice

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


Output Control http://pl.php.net/manual/pl/ref.outcontrol.php ?

start i jeśli error to clean?
Go to the top of the page
+Quote Post
bne
post
Post #3





Grupa: Zarejestrowani
Postów: 83
Pomógł: 1
Dołączył: 18.10.2006

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


a coś po polsku?
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #4





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




@bne - manual to manual - chcesz programować, to musisz poznać chociaż podstawy angielskiego. Jeśli nie rozumiesz, co jest napisane, to spróbuj zrozumieć przedstawiony tam kod.

Uruchom to i zobacz co się stanie.
  1. <?php
  2. print "cos";
  3. ?>


Pozdrawiam.
Go to the top of the page
+Quote Post
bne
post
Post #5





Grupa: Zarejestrowani
Postów: 83
Pomógł: 1
Dołączył: 18.10.2006

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


Nie wyświetla mi "cos" ale jakie to ma mieć niby zastosowanie w mojej funkcji error ?
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #6





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Cytat
ale jak pozbyć się wcześniejszej zawartości strony?


Właśne tak. Strone zaczynasz od ob_start(); i jeśli jest error, to przed wywołaniem exit() wywołujesz ob_end_clean(). Czyli wszystko, co zostało do tej pory zbuforowane zostanie usunięte i się nie wyświetli.

Przykład:
  1. <?php
  2. $test=1;
  3.  
  4. print "cos";
  5. if ($test==1){
  6. print 'error';
  7. exit();
  8. }
  9. print "cos jeszcze";
  10. }
  11. ?>


Pozdrawiam.
Go to the top of the page
+Quote Post
bne
post
Post #7





Grupa: Zarejestrowani
Postów: 83
Pomógł: 1
Dołączył: 18.10.2006

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


Ok, dzięki zrozumiałem, zaraz wszystko przetestuje...

edit ...

zrobiłem tak :

na końcu headera ob_start();

i funckcja:

  1. <?php
  2. function error($message) {
  3. echo $message;
  4. require_once 'system/down.php';
  5. }
  6. ?>


i wszystko śmiga elegancko, dzięki za pomoc...

Ten post edytował bne 10.12.2006, 16:09:32
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.12.2025 - 21:53