Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%)
|
Piszę to w kontekscie wielu ostatnich postów, gdzie ludzie mieli podstawowe problemy z debugowaniem i analizą kodu.
Warto zacząć od: jak pisać? 1. Problemy z tablicami Często pomocną funkcją przy debugowaniu problemów z tablicami jest:
W ten sposób można np. sprawdzić co trzymamy w tablicy $_SESSION, w tablicach $_GET, $_POST oraz $_REQUEST i sprawdzać co zostało nam przesłane np. formularzem. Możesz równie dobrze w ten sposób kontrolować co zwraca Ci zapytanie z bazy danych:
2. Problemy z zapytaniem SQL Mamy jakieś zapytanie:
I coś niedobrego nam się dzieje. Wtedy można użyć funkcji mysql_error która podpowie nam co robimi źle:
3. Problem z session Czasmi, przed użyciem sesji zapominamy o session_start. 4. Problem z kodowaniem/czcionkami Aby wszystko było ze sobą "zgrane", zazwyczaj wystaczy używać edytora który zapisuje pliki w odpowiednim kodowaniu i dać na początku np:
gdzie utf-8 możemy zastąpić naszym kodowaniem. 5. Szukałem na forum ale nie znalazłem W opcjach wyszukiwania najlepiej wybrać: Gdzie szukać->Wszystkie fora oraz Szukaj postów od->kiedykolwiek 6.Cannot add header information - headers already sent Tak jak podał to aleksander w swoim przyczepionym poście, rozwiązanie znajduje się tutaj. 7. Notice: Undefined variable: ... Często serwery php mają ustawione: Cytat error_reporting = E_ALL & ~E_NOTICE w pliku php.ini i ten błąd nie wyskakuje, jednak aby się te błedy nie wyświetlały w wielu przypadkach, przed dokonaniem operacji na jakiejś zmiennej wystarczy użyć pętli oraz funkcji isset:
8. Kod mi nie działa i nie wyświetla żadnego błędu Jeśli kod nie działa i nie wyświetla żadnego błędu, możesz usunąć wszystkie znaki @ (o ile takie są) sprzed funkcji. Np:
9. Nie widać błędów (by strife) Często bywa tak, że nie widzimy błędów w skrypcie i wszystko wydaje nam się dobrze napisane, jednak skrypt działa niepoprawnie. Aby zaradzić temu, i szybko poprawiać napotkane błędy za wczasu, do każdego skryptu na początku dodajemy raportowanie błędów na E_ALL, w taki oto sposób:
Umożliwi to wykrywanie błędów, których nie dostrzegamy normalnie, a które mogą być ukryte poprzez po prostu konfigurację serwera. Jest to bardzo ważne. Dodatkowo (by Hacker) w PHP5 najlepjej stosować E_ALL | E_STRICT. 10. Na localu działa a na serwerze nie... (by nospor) Często takie zdanie słyszymy, gdy ktoś próbuje dobrać się do parametru w linku poprzez $zmienna a nie $_GET['zmienna']. Podobnie z formularzem przesyłanem postem. Zamiast pisać $_POST['zmienna'] piszą $zmienna. Konstrukcję $zmienna można stosować gdy włączone jest register_globals. Ale należy tego unikać gdyż jest to niebezpieczna praktyka i hostingi coraz częściej to wyłączają. Podsumowując: Dla linka: http://jakislink/?zmienna=1&zmienna2=2
Dla forma
Mam nadzieję, że to się komuś przyda (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował TomASS 24.05.2008, 09:27:04 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%)
|
Cytat funkcja mysql_fetch_row (i jej alternatywy) ma wewnętrzny wskaźnik, który jest przesuwany po kolejnych wierszach wyniku zapytania. właśnie dlatego pierwsza funkcja zawsze działała Nie zupelnie. To rezultat (wynik) zapytania (SELECT ...) ma ten wskaznik nie funkcja. Poza tym po co ci dwie identyczne funkcje i co chciales osiagnac? |
|
|
|
TomASS Najczęstsze błędy 4.04.2006, 22:22:28
mike_mech Skoro debugowanie to proces pozbywania się błądów ... 4.04.2006, 22:29:41
aleksander http://phppl.ezpublish.no/wortal/artykuly/...ch_pr... 5.04.2006, 07:06:07
sf http://php.faq.pl 5.04.2006, 17:01:41 
szopen Cytat(sf @ 5.04.2006, 18:01:41 ) http... 28.08.2008, 23:06:07
adam9870 Ja chciałbym trochę wspomnieć o kodowaniu znaków. ... 9.04.2006, 20:43:22 
elldiablo Cytat(adam9870 @ 9.04.2006, 21:43:22 ... 30.05.2009, 20:47:44
TomASS A czy to nie jest napisane w pkt 4 ?
Że trzeba us... 9.04.2006, 23:14:26
yavaho Sam pisze w większość w notatniku i problemow z ko... 10.04.2006, 03:20:23
emp mniej błędów sie też popełnia jak sie nie pisze w ... 10.04.2006, 08:53:16
adam9870 Cytat("TomASS")A czy to nie jest napisan... 10.04.2006, 14:19:41
yavaho Cytat(adam9870 @ 2006-04-10 15:19:41)nie zaws... 10.04.2006, 14:47:57
mariuszn3 Ad. 1 To dużo ładniejsze jest wyjscie z var_dump()... 10.04.2006, 15:16:43
nu_moon Z wlasnego doswiadczenia : Komunikaty zwrotne z ba... 24.05.2006, 15:08:01
mokry yavaho, zobacz tu: http://windows.online.pl/klawia... 7.06.2006, 22:32:48
yavaho Dzieki mokry
To mi w zupełności wystarczy do szcz... 7.06.2006, 23:34:45
r_a_d_e_k witam
mam problem ze stroną kodową.
przy... 21.06.2006, 12:00:42
yavaho Czy baza danych (a raczej tekst w bazie) już istni... 21.06.2006, 12:16:54
r_a_d_e_k zmiana strony kodowej powoduje wyświetlenie innego... 21.06.2006, 12:25:51
Hacker dodatkowo w PHP5 najlepjej stosować E_ALL | E_STRI... 1.07.2006, 19:10:26
PeHaPe Problem: php podczas próby wysłania cookie wyświet... 7.07.2006, 05:47:20
strife » PeHaPe - Czytałeś pkt. 6? 9.07.2006, 14:33:03
Turgon Błąd który ostatnio doprowadził mnie do białej gor... 7.10.2006, 10:12:41 
mariuszn3 Cytat(Turgon @ 7.10.2006, 11:12:41 ) ... 7.10.2006, 13:40:49
Turgon Tak mam klasę DAO pozwalająca na dostęp do bazy tz... 11.10.2006, 13:38:15
fx69 ja w tym tygodniu stoczyłem istną batali... 21.12.2006, 20:13:56
fx69 CytatTo rezultat (wynik) zapytania (SELECT ...) ma... 22.12.2006, 11:13:05
potreb Już tak często pojawiają się problemy z kodowaniem... 26.01.2008, 00:01:06
erix Odświeżam, bo ten byk pojawia się nader często.
J... 9.12.2008, 22:36:59
Chelo Dobrze mówi, polecam notepad++ i ked'a. 23.08.2009, 01:03:58
thomson89 Gdy błąd jest w linijce, w której nie ma błędu?
... 29.10.2009, 15:58:36
kupilemsobieksiazke Mam propozycję - może ktoś umieściłby tutaj sposób... 24.12.2009, 12:32:25
lnn Cytat(kupilemsobieksiazke @ 24.12.2009, 12... 24.12.2009, 15:03:06
melkorm Odnośnie punktu pierwszego, może troche więcej inf... 24.12.2009, 16:29:15
kupilemsobieksiazke Widzę, widzę. Wszystko ustawiłem, tylko teraz błąd... 24.12.2009, 23:36:24
Eagle @kupilemsobieksiazke
CytatOd 1 grudnia 2009 następ... 25.12.2009, 00:56:22
tomaszs2 Cytat(Eagle @ 25.12.2009, 00:56:22 ) ... 26.01.2010, 12:45:13
AdamAdax Witam po raz pierwszy tak w ogóle;)
Ja przedstawi... 23.03.2010, 19:02:40
erix Hmm, właściwie to nie tyczy się tylko PHP; wszystk... 23.03.2010, 23:48:37
thek To może dla mniej zaznajomionych z obsługą serweró... 24.03.2010, 00:06:49 ![]() ![]() |
|
Aktualny czas: 27.11.2025 - 06:54 |