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 |
|
|
|
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
dr_bonzo Cytatfunkcja mysql_fetch_row (i jej alternatywy) m... 21.12.2006, 20:44:51
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: 24.10.2025 - 12:11 |