Pokaż wyniki od 1 do 8 z 8

Wątek: [PHP]Rodzaje błędów

  1. #1
    Zarejestrowany
    Dołączył
    Oct 2007
    Posty
    1,255

    Domyślnie [PHP]Rodzaje błędów

    Witajcie!
    Ostatnio przechadzając się po naszym forum zauważyłem, że wiele osób nie umie odczytać co parser php chciał nam przekazać wyrzucając błąd. Poniższy mini-artykulik ma za zadanie wyjażnić wam jakie rodzaje błędów istnieją w tym języku.

    1. Parse error - błąd składni
    Z reguły są to drobne pomyłki, literówki w poleceniach. Przykładem takiego błędu niech będzie takie polecenie
    Kod:
    <?php
    echo 'Hello World'&#58; // Błędna linijka
    ?>
    Błąd, który otrzymamy będzie brzmiał tak
    Kod:
    Parse error&#58; syntax error, unexpected '&#58;', expecting ',' or ';' in E&#58;\xampp\htdocs\lol.php on line 2
    Jak widzimy parser pokazuje nam na, której lini jest błąd (a w tym przypadku nawet jaki znak jest błędny).

    2. Call to undefined function - funkcja nie istnieje
    Błąd, który pojawia się w momencie gdy staramy się użyć nie istniejącej funkcji. Często występuje przez literówki, które popełniamy przy używaniu/tworzeniu funkcji. Dla przykładu
    Kod:
    <?php
    function hello&#40;&#41;&#123; 
    echo 'Hello World'; 
    &#125; 
    hallo&#40;&#41;; // Błędna linijka
    ?>
    Błąd wywołany przez ten kod może brzmieć tak
    Kod:
    Fatal error&#58; Call to undefined function hallo&#40;&#41; in E&#58;\xampp\htdocs\lol.php on line 5
    3. Cannot instantiate non-existent class
    Błąd wyrzucany, gdy staramy się użyć nie istniejącej klasy. Jest on popełniany z podobnych powodów jak poprzedni błąd. Dla przykładu
    Kod:
    <?php
    class hello&#123; 
    var $hello; 
    function sayHello&#40;&#41;&#123; 
    $this->hello = "Hello World"; 
    &#125; 
    &#125; 
    $obiekt = new hallo; // Błędna linijka
    ?>
    Błąd wywołany przez ten kod może brzmieć tak
    Kod:
    Fatal error&#58; Class 'hallo' not found in E&#58;\xampp\htdocs\lol.php on line 8
    4. Call to a member function on a non-object
    Kolejny błąd, który dotyczy programowania obiektowego. Mówi on, iż skrypter próbuje użyć metody (funkcji) w klasie, która nie została wczeżniej weń zdefiniowana. Dla przykładu
    Kod:
    <?php
    class hello&#123; 
    var $hello; 
    function sayHello&#40;&#41;&#123; 
    $this->hello = "Hello World"; 
    &#125; 
    &#125; 
    $obiekt = new hello; 
    $obiekt->sayHello&#40;&#41;; 
    $obiekt->sayBye&#40;&#41;;?>
    Błąd, który zostanie nam zwrócony
    Kod:
    Fatal error&#58; Call to undefined method hello&#58;&#58;sayBye&#40;&#41; in E&#58;\xampp\htdocs\lol.php on line 10
    5. PHP Timed out!
    Komunikat, który użytkownik może otrzymać, gdy skrypt wywołuje się za długo, co może być spowodowane jego nieskończonożcią czy też głupotą autora. Ten kod po dłuższym czasie na niektórych serwerach powinien włażnie taki błąd pokazać:
    Kod:
    <?php
    for&#40;$i=1;$i>0;$i++&#41;&#123; 
        echo 'a'; 
    &#125; 
    ?>
    6. Headers already sent
    Skrypt, który wyżwietla ten błąd przeważnie korzysta z sesji, a po funkcji session_start(); dołączane ma np. arkusze stylów .css. By usunąć taki błąd przed session_start(); można dopisać funkcję ob_start(); Będzie też jeżli wysyłamy jakiż kod html a potem rzucamy w php nagłówek header(); Dla przykładu:
    Kod:
    To jest tekst
    <?php
    header&#40;"Content-Type&#58; image/gif"&#41;; 
    ?>
    // Kiri

    7. Division by zero...
    Pamiętacie przysłowie "Nie dziel przez zero cholero"? Tego włażnie dotyczy ten błąd. Dozwolenie przez zero nie dozwolone jest nie tylko w szkole ale także w programowaniu.
    Kod:
    <?php
    2/0; 
    ?>
    Pokazuje nam błąd
    Kod:
    Warning&#58; Division by zero in E&#58;\xampp\htdocs\lol.php on line 2
    8. Failed to open stream
    Błąd dotyczący próby otworzenia pliku np. .txt lub dołączenia poprzez include czy require, który nie istnieje w skazanej przez użytkownika lokacji.
    Kod:
    <?php
    include&#40;"plik_nieistnieje.php"&#41;; 
    ?>
    Wywoła błąd (oczywiżcie jeżli plik plik_nieistnieje.php nie będzie we wskazanej lokacji.
    Kod:
    Warning&#58; include&#40;plik_nieistnieje.php&#41; &#91;function.include&#93;&#58; failed to open stream&#58; No such file or directory in E&#58;\xampp\htdocs\lol.php on line 2
    
    Warning&#58; include&#40;&#41; &#91;function.include&#93;&#58; Failed opening 'plik_nieistnieje.php' for inclusion &#40;include_path='.;E&#58;\xampp\php\pear\'&#41; in E&#58;\xampp\htdocs\lol.php on line 2
    9. Unexpected $end
    Jeżli mamy skrypt składający się z dużej ilożci warunków czy też pętli a nie dbamy o estetykę kodu to może pojawić się błąd Unexpected $end. Następujący kod wyrzuci włażnie taki błąd
    Kod:
    <?php
    if&#40;$a > 2&#41;&#123; 
    ?>
    Błąd:
    Kod:
    Parse error&#58; syntax error, unexpected $end in E&#58;\xampp\htdocs\lol.php on line 3
    Jak naprawić? Przeważnie wystarczy dopisać } przed ?>
    Dzięki Aven

    Jak zauważyliżcie każdy rodzaj błędu podaje linijkę w, której coż w naszym kodzie jest źle, jest to podstawą do zlokalizowania i usunięcia błędu. Dla pewnożci należy sprawdzać zarówno linijkę przed jak i linijkę po

    Są to tylko błędy niezwiązane z bazami danych. Jeżli o jakimż nie wspomniałem, proszę o dopisanie bądź poinformowanie mnie o tym na PW.

  2. #2
    Zarejestrowany Awatar Villentre Vearee
    Dołączył
    Jan 2008
    Posty
    334

    Domyślnie [Php] Rodzaje błędów

    Vielta, Wspaniałe ;]
    Za raz się zacznę tego na pamięć uczyć (albo sobie żciągę wydrukuję) ;]

    A tymczasem, może napijesz się piwa za mną :P

  3. #3
    Zarejestrowany
    Dołączył
    Mar 2008
    Posty
    25

    Domyślnie [Php] Rodzaje błędów

    Vielta, dopisz jeszcze że jak nie zamkniemy nawiasu klamrowego np. w if 'ie to wywali nam:
    "Parse error: parse error in c:\usr\apache\httpd\skrypt.php on line 4" czyli, jakby to powiedzieć?? W linki która nie istnieje i jest o 1 większa od ostatniej :jezyk: ??

    Ps. Fajny artykuł .

  4. #4
    Grupa MmoCenter Awatar Kiri
    Dołączył
    Sep 2007
    Posty
    1,741

    Domyślnie [Php] Rodzaje błędów

    Przy require masz fatal errora :P

    "6. Headers already sent " - Będzie też jeżli wysyłamy jakiż kod html a potem rzucamy w php nagłówek header();
    Sio, nie pomagam via PM !



  5. #5
    Zarejestrowany
    Dołączył
    Oct 2007
    Posty
    1,255

    Domyślnie [Php] Rodzaje błędów

    Kiri, napisałem na przykład ;>

  6. #6
    WAN
    WAN jest nieaktywny
    Grupa MmoCenter
    Dołączył
    Sep 2007
    Posty
    976

    Domyślnie [Php] Rodzaje błędów

    Vielta, Ty to wiesz, ja to wiem, Kiri to wie. Ale pamietaj, dla kogo pisales tego arta - oni tego wiedziec nie beda i nie domysla sie o co chodzi z bledem, skoro "Vielta napisal ze costam, a ja to mam dobrze"...

  7. #7
    Zarejestrowany
    Dołączył
    Jul 2008
    Posty
    98

    Domyślnie

    więcej przykładów błędów by się przydało, chociaż te najczęstsze opisane
    mam nadzieję, że mogę się tu zapytać co oznacza ten błąd
    Kod php:
    PHP Fatal error:  Cannot run code from this file in conjunction with non encoded files in 
    czytałem trochę na angielskich forach, ale jeszcze nie znam tak angielskiego, żeby zrozumieć co odpowiadali

    to chyba coś z kodowaniem nie?

  8. #8
    WAN
    WAN jest nieaktywny
    Grupa MmoCenter
    Dołączył
    Sep 2007
    Posty
    976

    Domyślnie

    Zdaje sie, ze uzywasz zend encodera i probujesz includowac niezakodowany plik i encoder na to nie pozwala, wypluwajac wlasnie tego fatala.

Informacje o wątku

Użytkownicy przeglądający ten wątek

Aktualnie 1 użytkownik(ów) przegląda ten wątek. (0 zarejestrowany(ch) oraz 1 gości)

Podobne wątki

  1. Rodzaje planet
    Przez Daldon w dziale Pytania dotyczące silnika Xnova
    Odpowiedzi: 5
    Ostatni post / autor: 24-02-2010, 17:10
  2. Rodzaje klas postaci - dostępne bronie
    Przez Meares w dziale PHP / MySql
    Odpowiedzi: 10
    Ostatni post / autor: 15-11-2009, 16:05
  3. pomoc w naprawieniu błędów..
    Przez Pomylony w dziale Support Vallheru
    Odpowiedzi: 5
    Ostatni post / autor: 22-08-2009, 12:42
  4. Xnova bez blędów
    Przez Mil0 w dziale Pytania dotyczące silnika Xnova
    Odpowiedzi: 3
    Ostatni post / autor: 24-05-2009, 11:05

Zakładki

Uprawnienia umieszczania postów

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •