Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вечная проблема с кириллицей

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
improbable
Отправлено: 21 Марта, 2012 - 22:05:01
Post Id



Частый гость


Покинул форум
Сообщений всего: 139
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)




В общем есть скрипт авторизации через ip:

PHP:
скопировать код в буфер обмена
  1. include 'database.php';
  2. $login = mysql_real_escape_string($_POST['username']);
  3. $pass = mysql_real_escape_string($_POST['password']);
  4. $rResult = mysql_query('SELECT * FROM `accounts` WHERE `username` = "'.$login.'" AND `password` = "'.$pass.'"');
  5. $status = '1';
  6.         if($login!==''){
  7.                 if($password!==''){
  8.                         if(!mysql_num_rows($rResult)){
  9.                                 echo '<center><b><font color="#ff0000">Такая комбинация логина и пароля не найдена в базе данных.</font></b></center>';
  10.                         }else{
  11.                                 if(!mysql_num_rows(mysql_query('SELECT * FROM `accounts` WHERE `username` = "'.$login.'" AND `status` = "'.$status.'"'))){
  12.                                         echo '<center><b><font color="#ff0000">Извините, Ваш аккаунт заблокирован.</font></b></center>';
  13.                                         }else{
  14.                                                 echo '<center><b><font color="#008000">Вход произведен успешно</font></b></center>';   
  15.                                                         $ip = $_SERVER['REMOTE_ADDR'];
  16.                                                         $date = date("d") . "." . date("m") . "." . date("Y") . " - " . date("H:i:s");
  17.                                                                 $session = 'INSERT INTO `sessions` (`username`,`ip`,`date`) VALUES ("'.$login.'","'.$ip.'","'.$date.'")';
  18.                                                                         mysql_query($session);
  19.                         }
  20.                 }
  21.                 }
  22.                 }


Кодировку всех скриптов преобразовал в UTF-8 через Notepad.
В базе данных у поля "username" кодировка utf8_general_ci
Все отображается корректно, как на сайте, так и в самой БД, но когда дело доходит до сравнения - ни в какую не хочет признавать, что "Артём" и "Артём" - одинаковы.

Объясню подробнее:

Через форму авторизации, зарегистрированный пользователь вводит свои данные (с латинским логином всё фурычит), после чего они сравниваются с данными в БД.

Вот, например, вам аккаунты:

Логин: тест
Пароль: 123

Логин: test
Пароль: 123

На русский не заходит, можете проверить - www[dot]mocrenco[dot]comuf[dot]com/login.php
Что делать? Завтра курсовую утром сдавать!!
(Добавление)
Вот html форма, но думаю она не нужна, проблема в кодировках.

Спойлер (Отобразить)

(Добавление)
аккаунты удалены, решил не думать над кириллицей, так как работу сдавать уже утром.
сделаю регистрацию строго на латинском
 
 Top
Bio man
Отправлено: 21 Марта, 2012 - 22:43:29
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




Ого! Текст на латинице != кириллический текст, как минимум по той причине, что разные символы находятся в таблице символов под разными адресами, и, что русская буква занимает 2 байта, по крайне мере в UTF-8
(Добавление)
А не, я не так понял проблему. Хм
 
 Top
improbable
Отправлено: 21 Марта, 2012 - 23:28:30
Post Id



Частый гость


Покинул форум
Сообщений всего: 139
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)




решил проблему с помощью

после подключения к БД
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Если скрипт не работает »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB