русское значение из $_GET не узнается базой данных

Hummerstadt

Новичок
русское значение из $_GET не узнается базой данных

PHP:
//http://localhost/select.php?selected_user=%CF%E5%F2%FF&selected_time=2006-09-06

$selected_user=$_GET['selected_user'];

$result=mysql_query("SELECT * FROM `".secure_variable($mt_orders)."` WHERE `user` = '".secure_variable($selected_user)."' AND `time` > ".secure_variable($selected_time)." ",$mp) or exit(mysql_error());

function secure_variable($string) {

	if (get_magic_quotes_gpc()) {

        $string=stripslashes($string);
    }

    if (!is_numeric($string)) {

        $string=mysql_real_escape_string($string);
    }

    return $string;
}
MySQL не узнает это имя. С английскими именами нормально все. В тоже время выводит из базы в нормальном виде.
 

Trianon

Новичок
Re: русское значение из $_GET не узнается базой данных

дескриптор соединения у mysql_query и у mysql_real_escape_string в общем случае не один и тот же.
 

Hummerstadt

Новичок
ФАНАТ
в этом примере Петя :)
переменная $selected_user принимает значение Петя, а Петя в БД точно есть.
$result не должна быть пустой.
 

Hummerstadt

Новичок
Re: Re: русское значение из $_GET не узнается базой данных

Автор оригинала: Trianon
дескриптор соединения у mysql_query и у mysql_real_escape_string в общем случае не один и тот же.
у меня одно открытое соединение, если я правильно Вас понял

-~{}~ 06.09.06 20:06:

Автор оригинала: Фанат
откуда ты знаешь?
скопировал часть запроса из урла и вызвал файл
PHP:
<html>
<head>
<meta HTTP-EQUIV="Content-type" CONTENT="text/html; charset=windows-1251">
<?php


var_dump($_GET);

?>
 

Фанат

oncle terrible
Команда форума
Trianon
ты хорошо подумал?
Hummerstadt
не обращай внимания.
на мой вопрос отвечай.
и вообще - что за дурацкая беспомощность?
какая проблема передать слово петя из формы, вывести его же из базы, и сравнить посимвольно?
и убедиться, что либо в базе пети нету, либо приходит не петя!
занимайся

-~{}~ 06.09.06 20:09:

МЛЯ
при чём здесь var_dump($_GET);, если тебя спрашивали про $selected_user?!
ты не можешь одну переменную от другой отличить?

вот от этого и все твои проблемы - ты проверяешь не то, что не работает!
 

Trianon

Новичок
между прочим, time, которое 2006-09-06 у Вас отнюдь не is_numeric . И неплохо его было бы тоже взять в апострофы.
 

Фанат

oncle terrible
Команда форума
гм, а вот здесь товарищ абсолютно прав.
и не неплохо бы, а обязательно.
получаетсяЮ, что про английский ты нам наврал...
 

Hummerstadt

Новичок
Автор оригинала: Фанат
гм, а вот здесь товарищ абсолютно прав.
и не неплохо бы, а обязательно.
получаетсяЮ, что про английский ты нам наврал...
не наврал, я очень честный :)
 

Фанат

oncle terrible
Команда форума
в любом случае, мы зря поверили ему, что не работает именно петя.
и надо было заставить свести запрос к одному пете
 

Trianon

Новичок
Автор оригинала: Фанат
получаетсяЮ, что про английский ты нам наврал...
Почему обязательно наврал... Может случайно совпало...
А может проблема не только в time, а допустим, в криво настроенной charset клиента.
Так что смотреть и сравнивать действительно стоит, тут Вы правы. Как и в том, что первый раз подумал я плохо. Поспешил...
 

Hummerstadt

Новичок
Еще проверка ввода есть. Хоть ее показывать не надо? Потому что пробывал и просто
PHP:
$selected_user=$_GET['selected_user'];
Над петей думаю, просто спешил ответить, чтобы не ввести в заблуждение насчет цифр
 

Hummerstadt

Новичок
Из формы отправляется хтмл сущность & # 1055 ; & # 1077 ; & # 1090 ; & # 1103 ; (без пробелов). В форму она попадает из БД.
БД на запрос вывести юзеров тоже вывела Петю в виде & # 1055 ; & # 1077 ; & # 1090 ; & # 1103 ; (без пробелов).
А этот ужасный массив GET вывел петю как просто Петя !
Проблема решена.
Всем спасибо!
 

Фанат

oncle terrible
Команда форума
в консоли набери SELECT 2006-09-06 и удивись, с чем ты сравниваешь дату.
БД на запрос вывести юзеров тоже вывела Петю в виде & # 1055
а какого чёрта она выводит бедного петю в ТАКОМ виде?!
 
Сверху