Проблемы с поиском на русском языке

MailRes

Новичок
Проблемы с поиском на русском языке

Есть у меня на сайте такая формочка для поиска:
PHP:
<form name=\"form\" action=\"poisk.php\" method=\"get\">  
<input type=\"image\" src=\"****" align=\"top\" />
<input type=\"text\" value=\"Поиск\" name=\"searchtxt\" />
</form>
Работает, ищет) Но:
1) на латинице - ищет без проблем
2) на кириллице - если сделать запрос, например "привет", то выведет мне "Вы искали: привет", и пишет что ничего не найдено, если повторно ввести запрос, то выведет все корректно "Вы искали: привет" и выведет все результаты.

Вопрос: как сделать чтоб уже с первого запроса всё нормуль отображалось? (кодировка страниц UTF-8)
 

baev

‹°°¬•
Команда форума
Это реальный код?
Или Вы от балды что-то похожее изобразили?
 

MailRes

Новичок
ну да в, коде страницы есть такой код формы, ток src=\"****" - на месте звездочек путь к файлу картинки, а сам собственно поисковый скрипт выполняется в файле poisk.php

Поисковое значение получается таким образом
PHP:
$var = @$_GET['searchtxt'] ;
$trimmed = trim($var);
....
 

Вурдалак

Продвинутый новичок
Добавь в poisk.php вверху строку
PHP:
header("Content-Type: text/html; charset=utf-8");
и посмотри что изменилось
 

MailRes

Новичок
Вурдалак, перепроверил ещё раз, ну да она в вин-1251, ставил UTF-8, вижу теперь что сайт в порядке а страница с поисков в виде кракозябр. В ручную если ставлю (в браузере) кодировка UTF-8 то нормально отображается, но ток по умолчанию почему то браузер выбирает всегда Windows-1251 :(( (Касается это Оперы и ФФ)
Хотя у меня присутствует строка в poisk.php - <meta http-equiv="content-type" content="text/html; charset=utf-8" />
 

Вурдалак

Продвинутый новичок
Ну и меняй кодировку в редакторе.

-~{}~ 14.02.10 16:47:

И посылай заголовок с помощью header()
 

MailRes

Новичок
Вурдалак, ничего не изменилось :(

Так и выводит "Вы искали - привет"

Понять не могу почему он ток со 2го раза начинает искать на кириллице нормально?

-~{}~ 14.02.10 16:51:

header() - где следует писать, внутри тега <head> ??
 

Вурдалак

Продвинутый новичок
П...ц, header() — PHP-функция, куда ты там её в HTML-код собрался пихать?

Автор оригинала: MailRes
Понять не могу почему он ток со 2го раза начинает искать на кириллице нормально?
— браузер, скорее всего, проявляет «интеллект»

-~{}~ 14.02.10 16:55:

И ты вообще прочитал это:
Автор оригинала: Вурдалак
Ну и меняй кодировку в редакторе.
?
 

MailRes

Новичок
Вставил это код

PHP:
header("Content-Type: text/html; charset=utf-8");
Плюс ёще этот
PHP:
mysql_query ("SET NAMES uft8");
mysql_query ("set character_set_client='uft8'");
mysql_query ("set character_set_results='uft8'");
mysql_query ("set collation_connection='utf8_general_ci'");
и страницу сохранил в юникоде, ток терь вижу вместо русских букв - ромбики
запрос в виде цифр и латинице обрабатывается, результаты поиска в виде ромбиков, вместо кириллицы

-~{}~ 14.02.10 17:06:

Вставил её после тега </head>, таким образом

PHP:
<?php
header("Content-Type: text/html; charset=utf-8");
?>
 

MailRes

Новичок
Все таблицы создавал в phpmyadmin, там везде стоит что база данных и таблицы в ней - utf8_general_ci

Ну и когда например вывожу таблицы на страницы - они нормуль выводятся, ток вот с поиском заморочка :(
 

MailRes

Новичок
dimagolov, Вурдалак
Почитал статью, покопался в phpmyadmin, нарыл там что по умолчанию для БД стояла cp1251_general_ci, изменил её на utf8_general_ci, оставил в поиске строчку
PHP:
mysql_query ("SET NAMES uft8");
- и всё заработало :) спасибо вам :)
 
Сверху