Здравствуйте.
Вот по заказу вручную написал инструментарий на голом php и всунул его в Drupal.
Короче, там есть несколько полей для ввода пользователям своего ФИО, Адреса, Доп. инфо...
И при извлечении этих данных для просмотра буквы кириллицы И, Ш некорректно выглядят, хотя и не всегда.
Только 2 эти буквы почему-то.
Я прикрепил скрин этих делов.
В чем тут может быть дело? Посоветуйте решение.
Спасибо.
Вложение | Размер |
---|---|
cod.jpg | 6.75 КБ |
Комментарии
Вот в чём:
Ну и..?
Обычная БД, обычные запросы. Какие тут подводные камни? И почему только 2 буквы И, Ш барахлят?
Вы правда думаете что API придумано чтобы поржать и порождать тормоза?
Не будьте умнее друпала, хотите быть умнее - пишите свою CMS, а пока вы работаете в контексте друпала, вы должны следовать его правилам
Угу...так что же нужно применить при записи данных в таблицу?
Давайте, я за вас и код напишу, что уж там.
Сайт api.drupal.ru и раздел "Базы данных" придумали только для избранных?
а ваш код сложно сюда скопировать?
Я не просил код писать, а только если кто знает, то в пару словах описать как избежать этой неприятности.
А что вы хотите, что бы я скопировал сюдаь? SQL запросы на insert?
Ну вот:
if(isset($_GET[$value])) $data=$_GET[$value];
else if(isset($_POST[$value])) $data=$_POST[$value];
else if(isset($_REQUEST[$value])) $data=$_REQUEST[$value];
else $data='';
return $data;
}
$sess_id=(int)getVar('hid_sess_id'); // ID сеанса
$film_name=getVar('hid_film_name'); // Название фильма
$date_session=getVar('hid_date_session'); // Дата сеанса
$time_session=getVar('hid_time_session'); // Время сеанса
$tickcol=(int)getVar('hid_tickcol'); // количество билетов
$tickets=getVar('hid_tickets'); // заказанные места
$summ=(int)getVar('hid_summ'); // сумма
$delivdate=getVar('hid_delivdate'); // дата доставки
$fio=getVar('hid_fio'); // ФИО
$phone=getVar('hid_phone'); // телефон
$adr=getVar('hid_adr'); // адрес
$dinfo=getVar('hid_dinfo'); // доп.инфо
$rndm=getVar('hid_rndm'); // рандом
$result1 = mysql_query("INSERT INTO zb_orders
(film_name, session_id, datetimesess, tick_col, places, status, totalsum, delivery_date, fio, phone,
adress, info, order_date, order_time, rndm)VALUES
('".$film_name."', ".$sess_id.", '".$date_session." ".$time_session."', ".$tickcol.",
'".substr($allplaces, 2)."', 'no', '".$summ."', '".$delivdate."', '".$fio."', '".$phone."', '".$adr."',
'".$dinfo."','".date('d.m.Y')."','".date('H:i')."', '".$rndm."')");
И еще! Этот код не в блоке Друпала, этот код в скрипте лежит на серваке в отдельном php файле.
И ответов куча...
Ладно, сам нашел.
Если не знаете, то вот вам решение:
$fio=iconv('utf-8','windows-1251',$fio);
// вывод с БД и отображение
echo iconv('windows-1251','utf-8',$row['fio']);
код одна сплошная дыра
Теперь уже две. Две сплошных дыры. Топикстартер, Вам самому не стыдно такое выкладывать?
Что нашли? Это называется решение? Вы программированию в Индии учились?
На всякий случай подскажу: при коннекте к мускулю можно кодировочку указать.
А чего тут стыдного? У меня нет общепринятых стереотипов по данному вопросу. Какое нашел решение - такое и использовал. Работает, проблем больше нету...
И подсказку можно ли реальную написать тут об указании кодировки?
топикстартер
начни хотя бы с того что поищи конструкцию
db_query("SELECT .... %d ....", $value);
Это ты оправдал таким образом уязвимость кода? Лучше бы спросил в чем дыры.
Ну, оправдание-не оправдание. Есть, что есть...
Я хочу получить указания на дыры в коде. Давай я посмотрю на них.
смотрите что написал kuzyakiev@drupal.org, а то 1 запрос и вся БД ушла злоумышленникам