mam problem z porównywaniem znaków w skrypcie konkursowym. Działa to na zasadzie czatu AJAXowego, użytkownik musi trafić w jedną z trzech odpowiedzi. Niestety, okazuje się, że jeżeli odpowiedź prawidłowa zawiera polskie znaki a użytkownika nie, to i tak się zgadzają. Przykładowo SELECT 'pozar' = 'pożar' się zgadza. Nie wiem jak temu zapobiec.
Niżej kod, który to u mnie sprawdza (przed sprawdzeniem odpowiedzi konwertuję wszystkie litery na małe):
$message = $db->real_escape_string($message); $db->query("LOCK TABLE {$DBP_}contests READ"); $db->query("START TRANSACTION"); $update = $db->query( "UPDATE {$DBP_}contests SET `winner`='{$_SESSION['id']}' ". "WHERE `id`='{$contest['id']}' AND winner IS NULL AND '{$message_lowercase}' IN (answer, answer2, answer3)" ); // Dodawanie do chatu i tym podobne... $db->query('COMMIT'); $db->query('UNLOCK TABLES');
Kodowanie bazy to utf8_general_ci, przy połączeniu wykonuję SET NAMES UTF8. Wszystkie pliki są zakodowane w UTF8 bez BOM.
Ktoś miał podobny problem albo umie pomóc?