Jeżeli $nick zawiera polskie znaki np. ó, ż w nazwie nicka przesłanego z formularza to otrzymuje komunikat o błędzie.
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Program Files\WebServ\httpd-users\NOWA_WERSJA\login.php on line 42
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Program Files\WebServ\httpd-users\NOWA_WERSJA\login.php on line 44
A to fragment kodu przesyłającego zapytanie.
<?php $query = "SELECT id, haslo FROM uzytkownicy WHERE nick = '$nick'"; ?>
Natomiast jeśli w $nick nie ma polskich znaków to zapytanie wykonuj się normalnie i nie mam żadnego komunikatu o błędzie.
Kodowanie w bazie danych mam na utf8_unicode_ci, a nagłówki ustawione na stronie wyglądają tak:
<?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl" dir="ltr"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8"/> <meta http-equiv="Content-Language" content="pl"/>
Nie wiem dlaczego ten błąd mi się pojawia tylko wtedy gdy podaje w formularzu jako nick słowo zawierające polskie litery. To samo dzieje sie w innych formularzach jeśli podam w nich polskie znaki. :/
Czy to dlatego że jest kodowanie utf8. Może mam źle ustawione nagłówki xhtml. Tylko jak mam je ustawić aby to ruszyło. A może to wina bazy danych. Używam localhosta webserv2.
Gdy wykonuje zapytanie przez phpmyadmin to działa normalnie.
SELECT id, haslo FROM uzytkownicy WHERE nick = 'ósemka'
Proszę, może ktoś mi doradzi co mam zrobić?