Помогите пожалуйста разобраться. У меня проблемы с поиском причем на домашнем денвере все работало замечательно, перенес на хост - работать перестало :cry: . Вероятно в обработчик result.php приходят краказябры, т.е. неверная кодировка потому обработчик выводит результат "Ничего не найдено". Все странички в кодировке: UTF-8 БД Mysql все в кодировке: UTF-8 Видимо что то с POST приходит не то, кто сталкивался подскажите... Файл с формой: index.php HTML: <html> <meta http-equiv="content-type" content="text/html" Charset="UTF-8" /> <form action="result.php" method="post"> <input class="search" size="20" name="search" id="searchsite" value="Поиск.."> <input value="Поиск »" class="submit" type="submit" > </form> </html> Обработчик: result.php PHP: <?php require 'connect.php'; $table = 'news'; $search = mysql_real_escape_string($_POST['search']); $select_sql = "SELECT * FROM $table WHERE `text` LIKE '%$search%' OR `text` LIKE '%$search%' ORDER BY id" ; $result = MYSQL_QUERY($select_sql); if(!$result) exit(mysql_error()); $query = "SELECT * FROM $table WHERE `text` LIKE '%$search%' OR `text` LIKE '%$search%' "; $ctg = mysql_query($query); if (mysql_num_rows($result) > 0) { echo '<br><center><b class="zag">Результат поиска</b></center><br><img src="image/stick5.gif" align="left"><b class="inf"> Найдено совпадений: '.mysql_num_rows($result).'</b><hr><br>'; WHILE ($arr = mysql_fetch_array($result)) { $id = $arr['id']; $text = $arr['text']; $type = $arr['imagesmall']; $class = $arr['imagebig']; $short = $arr['short']; $fotos = $arr['zagolovok']; $autor = $arr['autor']; $textshort = $arr['textshort']; $date = $arr['data']; if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $data)) echo ' <div id="vivod">'.$id.'<br>'.$text.'</div>'; } } else { echo 'Ничего не найдено'; } ?>
Еще возник следующий вопрос. Если поиск осуществляется через библиотеку prototype.js И сам подключаемый script.js [js]function search() { var sSearch = $F("search_input"); if (sSearch.length < 3) { alert("Запрос должен быть не короче 3-х символов."); return false; } $('search_results').hide(); $('searching').show(); new Ajax.Updater('search_results', 'search.php', { method: 'get', parameters: { search: sSearch }, onComplete: function () { $('search_results').show(); $('searching').hide(); } } ); }[/js] HTML: <meta http-equiv="content-type" content="text/html" Charset="UTF-8" /> <script type="text/javascript" src="/script.js"></script> <script src="/prototype.js" type="text/javascript"></script> <script type="text/javascript"></script> <div id="result"><br> <h4>Поиск в базе</h4> <div id="wrap"> <form onsubmit="search(); return false;"> <input type="text" class="search" id="search_input" value=""> <input type="submit" class="submit" id="search_button" value="Поиск » "> </form><br> <div id="search_results"> </div> <div id="searching" style="display: none"> поиск </div> </div> </div> После заполнения формы, отправляем его скрипту на проверку валидности не менее 3-х символов если да то передаем далее данные скриптуsearch.php search.php: PHP: <?php include 'config.php'; header('Content-type: application/html; charset=utf-8'); header('Cache-Control: no-cache'); $sString = mysql_real_escape_string($_GET["search"], $db); $sql="SELECT * FROM `announce` WHERE `text` LIKE '%$sString%' OR `text` LIKE '%$sString%' ORDER BY `id` DESC "; $rs=mysql_query($sql,$db); mysql_query('SET NAMES `utf-8`'); if (mysql_num_rows($rs) > 0) { while ($row = mysql_fetch_array($rs)) { $text=htmlspecialchars(strip_tags($row["text"])); if (mb_strlen($text, "utf-8") > 250) $test = mb_substr($text, 0, 250, "utf-8") . "..."; $date = $row['data']; if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $data)) echo ' <table cellspacing="1" valign="top" width="100%"> <tr> <td bgcolor="#ffffff" width="120"> <img src="'.htmlspecialchars($row["foto"]).'" align="left"> </td> <td align="left"> '.htmlspecialchars($row["class"]).'<br> '.htmlspecialchars($row["text"]).'<br><br> '.htmlspecialchars($row["cash"]).'<br> Контактная информация: <b>'.htmlspecialchars($row["contact"]).'</b><br> </td> </tr> <tr> <td COLSPAN="2"> <div id="down"><img src="image/stick12.gif"> <a>Добавлено: </a> '.$data[3].'-'.$data[2].'-'.$data[1].' г.</div> </td> </b></tr> </table>'; } } else { echo 'Ничего не найдено'; } ?> Если в вышеописанном примере помогло, назначить кодировку, то тут не получается, вероятно вся проблема в передаче GET через скрипт. Как можно это исправить?