Najczęstsze błędy, Zanim zapytasz, to sprawdź. |
Najczęstsze błędy, Zanim zapytasz, to sprawdź. |
4.04.2006, 22:22:28
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 Ten post edytował TomASS 24.05.2008, 09:27:04 -------------------- |
|
|
9.04.2006, 20:43:22
Post
#2
|
|
Grupa: Zarejestrowani Postów: 32 Pomógł: 0 Dołączył: 6.04.2006 Ostrzeżenie: (0%) |
Ja chciałbym trochę wspomnieć o kodowaniu znaków. Na wielu forach widzę, że są z tym problemy to tu napiszę jak temu zaradzić
Często źle są wyświetlane polskie znaki takie jak ł, ś, ć itp. Aby to naprawić trzeba mieć w dokumencie: Kod <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2"> a jak będzie źle wyświetlać to tekst można przekonwertować np. programem Ogonki97. Albo wpisywać polskie znaki wg. tej tablicy: http://webdesign.art.pl/atelier/ISO_8859-2.html np. zamiast ł trzeba wpisać ł. I powinno być ok. Często też wielu Webmasterów pisze stronę tylko przy użyciu notatnika. On niestety nie koduje znaków w iso-8859-2 i najlepiej robić strony w jakimś edytorze tekstowym (np. EditPlus 2. W większości programów można ustawić aby kodowało w iso-8859-2). Ten post edytował adam9870 9.04.2006, 20:46:56 |
|
|
30.05.2009, 20:47:44
Post
#3
|
|
Grupa: Zarejestrowani Postów: 79 Pomógł: 1 Dołączył: 30.05.2009 Ostrzeżenie: (0%) |
Ja chciałbym trochę wspomnieć o kodowaniu znaków. Na wielu forach widzę, że są z tym problemy to tu napiszę jak temu zaradzić Często źle są wyświetlane polskie znaki takie jak ł, ś, ć itp. Aby to naprawić trzeba mieć w dokumencie: Kod <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2"> a jak będzie źle wyświetlać to tekst można przekonwertować np. programem Ogonki97. Albo wpisywać polskie znaki wg. tej tablicy: http://webdesign.art.pl/atelier/ISO_8859-2.html np. zamiast <span style="font-weight: bold;">ł</span> trzeba wpisać <span style="font-weight: bold;">ł</span>. I powinno być ok. Często też wielu Webmasterów pisze stronę tylko przy użyciu notatnika. On niestety nie koduje znaków w iso-8859-2 i najlepiej robić strony w jakimś edytorze tekstowym (np. EditPlus 2. W większości programów można ustawić aby kodowało w iso-8859-2). Witam, Osobiście polecam programować w NOTEPAD++. Następnie plik który zapiszemy w formacie np. index.php w opcjach wybieramy "Format/Koduj w utf-8 (bez BOM)" i zaraz po połączeniu z bazą danych wpisać polecenie: mysql_query ("SET NAMES utf8"); Działa na 100% |
|
|
Wersja Lo-Fi | Aktualny czas: 25.09.2024 - 23:37 |