Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Błędy - jak napisac do tego silnik?
Forum PHP.pl > Forum > PHP
Prophecy
Witam smile.gif

Nurtuje mnie pewnien problem, moze ktos zna rozwiazanie:

Otoz przyklad strony:

Kod
----------------------

linki1 | link1 | itd

----------------------



Witamy na stronie



[tresc]



---------------------

copyright

---------------------


Tam gdzie jest tresc mam np skrypt do bazy...
No ale skrypt ma blad krytyczny, nalezaloby go wylaczyc. Jesli zrobie to exit pojawi sie jedynie blad, i reszte strony szlag trafi. Nie bede mial juz nic nizej.

Jak napisac silnik, kotry przerwie dzialanie skryptu bazy, anie nie bedzie wylaczal glownego pliku index.php?

Mam nadzieje, ze jakos to wyjasnilem... Prosze o pomoc winksmiley.jpg

Pozdrawiam
scanner
Zacznij od:
http://pl2.php.net/manual/pl/ref.errorfunc.php
następnie mozesz poprzedzić każdą fubkcję, która moze zwracać błąd znakiem "@". W ten sposób wyłączysz wyświetlanie jej błędów. Za to piszesz linijki kontrolujące, co dana funkcja zwraca i wyswietlająca odpowiedni komunikatw formie, w jakiej chcesz.
Prophecy
Nie, nie, nie o to mi chodzi...
Wiem, ze nalezy poprzedzac @ funkcje i sprawdzac je samemu, no ale sa momenty w ktorych, dlasze wykonywanie skryptu moze naruszuc baze lub bezpoieczenstwo.

Zawsze sprawdzam czy npo wynik zapytania sie powiodl.. jak nie bno to przydaloby sie zakonczyc dzialanie skryptu. W zasadzie powinienem nazwac to "anulowanie jego dlaszej czesci".

Zaznacze tylko, ze nie jestem poczatkujacy, no ale tego nie umiem rozwiazac.

Pozdrawiam smile.gif
party
No to jest jeszcze coś takiego jak return smile.gif
[php:1:a65cc247ce]<?php
function Sprawdz( $plik )
{
if( !file_exists( $plik ) )
{
return 'Plik "'. $plik .'" nie istnieje!';
}
else
{
// rob cos dalej i zwracaj jakies rzeczy, a potem wyswietl sobie f-cje
}
}
?>[/php:1:a65cc247ce]
PMadej
jezeli masz cos w petli albo if to mozesz uzyc brake wtedy automatycznie zostanie przerwane jej dzialanie i skrypt pojdzie dalej.
Prophecy
Hhehe, widze ze musze to lepiej wytlumaczyc:

[php:1:c1097c0797]<?php
function baza()
{
// ...
// blad krytyczny
return false;
}

if(!baza())
{
// stalo sie cos nie dobrego, kociec skryptu...
exit; // spowoduje zamkniecie calej aplikacji
}

?>[/php:1:c1097c0797]

Moznaby cos robic w tym stylu:

[php:1:c1097c0797]<?php

if(!baza())
{
// wyswietl blad
}
else
{
// dalsza czesc kodu...
}
?>[/php:1:c1097c0797]

Co by dzialalo, jednak jak mialoby tak sprawdzac 50 funkcji pod zad no to juz kiepsko to widze...

Pozdrawiam.
Ludvik
Jeżeli pierwsza instrukcja warunkowa kończy skrypt, to można pominąć 'else', bo przecież i tak jeżeli nie będzie błędu, to skrypt pójdzie dalej.

[php:1:4e8fbf5ecc]<?php
if(!baza())
{ die('blad'); }

if(!funkcja2())
{ die('blad2'); }

?>[/php:1:4e8fbf5ecc]

Itd... Poza tym chyba był już link do error handlerów, które o ile się nie myle pozwalają dowolnie wyświetlać błędy.
tsharek
biggrin.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.