|
|
|
| Ранее создавал подобную тему...Но опять проблема...
Я ищу по нику в таблице юзеров заведомо несуществующую запись. Вместо этого мне выдает совершенно не тот результат. Например:
<?php
//Соединение с базой данных
include("config.php");
//Допустим пользователь посылает такой логин
$_POST['login'] = "РђРђ"; //Текст в UTF-8 "АА"
//Запрос
$sql = mysql_query("SELECT * FROM `accounts` WHERE `login` = '".mysql_escape_string($_POST['login'])."' LIMIT 1;");
if(mysql_affected_rows() == 0)
{
echo "К сожалению, пользователь ".htmlspecialchars($_POST['login'])." не найден в базе данных.<br />\n";
}
else
{
echo "Найдено.<br />\n";
$user_data = mysql_fetch_array($sql);
$user_id = $user_data['id'];
$nickname = $user_data['nickname'];
echo "ID: ".$user_id."<br />\n";
echo "Вы искали: ".$nickname."<br />\n"; //При чем возвращает, гад, нормальный ник, а не ерундовый.
//Я искал "АА", мне вернуло "ЮС".
//Я заметил, что зависит от количества букв.
//Могу ввести "ЙУХ", он мне вернет данные пользователя "ОЛЯ".
}
?>
|
Таблица:
CREATE TABLE `chat_users` (
`id` int(11) unsigned NOT NULL auto_increment,
`nickname` tinytext NOT NULL,
`password` tinytext NOT NULL,
`ip` tinytext NOT NULL,
`ua` text NOT NULL,
`level` tinyint(1) NOT NULL default '0',
`photo` tinytext NOT NULL,
`invisible` tinyint(1) NOT NULL default '0',
`status` tinytext NOT NULL,
`kick` int(11) unsigned NOT NULL default '0',
`moder` tinytext NOT NULL,
`reason` text NOT NULL,
`ban` tinyint(1) NOT NULL default '0',
`name` tinytext NOT NULL,
`sex` tinyint(1) NOT NULL default '0',
`email` text NOT NULL,
`site` text NOT NULL,
`birthday` tinytext NOT NULL,
`from` text NOT NULL,
`mobile` tinytext NOT NULL,
`about` text NOT NULL,
`posts` int(11) NOT NULL default '0',
`answers` int(11) NOT NULL default '0',
`gbalans` int(11) NOT NULL default '0',
`smiles` tinyint(1) NOT NULL default '1',
`translit` tinyint(1) NOT NULL default '0',
`msgs` tinyint(2) NOT NULL default '5',
`refresh` tinyint(3) unsigned NOT NULL default '20',
`fsize` tinyint(1) NOT NULL default '1',
`security` tinyint(1) NOT NULL default '1',
`place` mediumint(9) NOT NULL default '0',
`time` int(11) unsigned NOT NULL default '0',
`intim` int(11) unsigned NOT NULL default '0',
`key` tinytext NOT NULL,
`regdate` tinytext NOT NULL,
`hidden` tinyint(1) NOT NULL default '0',
`mood` tinyint(2) NOT NULL default '0',
`emotions` tinyint(1) NOT NULL default '1',
PRIMARY KEY (`id`)
) TYPE=MyISAM ;
|
Ниче не пойму. =/
P.S. А че это подсветка криво сработала?.. | |
|
|
|
|
|
|
|
для: Unkind™
(26.09.2006 в 23:38)
| | 1. А страница в какой кодировке сохранена?
2. Подсветка не сработала из-за ошибки в строке
<?php
$sql = mysql_query("SELECT * FROM `accounts` WHERE `login` = '".mysql_escape_string($_POST['login'])' LIMIT 1;");
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(26.09.2006 в 23:49)
| | Страница с формой поиска в UTF-8 сохранена. | |
|
|
|
|
|
|
|
для: Unkind™
(26.09.2006 в 23:53)
| | А почему тогда используется искажённое значение логина?
<?php
$_POST['login'] = "РђРђ"; //Текст в UTF-8 "АА"
?>
|
Эта строка должна выглядеть обычно
<?php
$_POST['login'] = "АА"; //Текст в UTF-8 "АА"
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(26.09.2006 в 23:59)
| | Ну это я тут так набрал. Чтобы было понятнее что БД обрабатывает...Этот форум же в Windows-1251... | |
|
|
|