X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> При переносе сайта на реальный хостинг перестал работать поиск
werd_34
werd_34
Topic Starter сообщение 18.11.2013, 0:04; Ответить: werd_34
Сообщение #1


Доюрого времени суток, уважаемые форумчане!

При переносе сайта на реальный хостинг перестал работать поиск. На локальном - всё отлично. В чём может быть причина?
Скрипт отрабатывает - пишет "Поисковый запрос должен содержать не менее 4-х символов", "Ничего не найдено!", но статьи не ищет...

config.php я изменил, связь с базой есть

<?php
require_once './config.php';
require_once './functions.php';
session_start();
if($_POST['submit_search']){
       $search = mysql_real_escape_string($_POST['search']);
       if(mb_strlen($search,'UTF-8') < 4){
       $_SESSION['res'] = '<p>Поисковый запрос должен содержать не менее 4-х символов</p>';
       header("Location: {$_SERVER['PHP_SELF']}");
       exit();
}else{
       $res = mysql_query("SELECT `article_id`, `title`, `date`, `short_text`, `views` FROM `articles` WHERE MATCH(title, short_text, content) AGAINST('{$search}') AND `visible`='1' ORDER BY `date` DESC") or die(mysql_error());
             if(mysql_num_rows($res) > 0){
/* если что-то найдено */
     while($row_search = mysql_fetch_assoc($res)){
     $result[] = $row_search;
     }
}else{
     $_SESSION['res'] = '<p>Ничего не найдено!</p>';
     header("Location: {$_SERVER['PHP_SELF']}");
     exit();
}
      }
}
?>



<h1>Результаты поиска</h1>
<?php
echo $_SESSION['res'];
unset($_SESSION['res']);
  
if(count($result) > 0){
   foreach($result as $item){ ?>
<h1><a href="<?php echo $site_url; ?>view_article.php?article_id=<?php echo $item['article_id']; ?>"> <?php echo htmlspecialchars($item['title']); ?></a></h1><?php echo $item['short_text']; ?>
         <?php }
     }
?>
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
fedornabilkin
fedornabilkin
сообщение 18.11.2013, 11:07; Ответить: fedornabilkin
Сообщение #2


Посмотри, что у тебя падает в $search и потом посмотри, что отдает mb_strlen($search,'UTF-8')
Скрипт отрабатывает - пишет "Поисковый запрос должен содержать не менее 4-х символов", "Ничего не найдено!", но статьи не ищет...
А это настораживает, по скрипту либо не менее 4 символов, либо ничего не найдено и при этом, конечно же, никакого результата не должно быть.
Мне кажется должно быть что-то одно:
  1. результат
  2. не менее 4 символов
  3. ничего не найдено

<h1>Результаты поиска</h1>
<?php
echo $_SESSION['res'];
unset($_SESSION['res']);

if(count($result) > 0){
   foreach($result as $item){ ?>
<h1><a href="<?php echo $site_url; ?>view_article.php?article_id=<?php echo $item['article_id']; ?>"> <?php echo htmlspecialchars($item['title']); ?></a></h1><?php echo $item['short_text']; ?>
                 <?php }
         }
?>

Этот код ужасен, предлагаю такой вариант
<?php
$html = '<h1>Результаты поиска</h1>';
$html .= $_SESSION['res'];
unset($_SESSION['res']);

if( count($result) > 0 ){
  foreach($result as $row){
   $html .= '
    <h2><a href="'.$site_url.'view_article.php?article_id='.$row['article_id'].'">'.$row['title'].'</a></h2>
    <div class="short">'.$row['short_text'].'</div>
   ';
  }
}

echo $html;


?>

htmlspecialchars, если и использовать, то при сохранении в БД, а не при выводе. Но тут уже кому как.
В цикле h2, потому что h1 на странице используется только один раз.
Еще я бы рекомендовал использовать кеширование для страниц поиска, что бы не нагружать лишний раз БД и для поисковиков лишняя страница.
Правда немного логику придется изменить.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
werd_34
werd_34
Topic Starter сообщение 19.11.2013, 11:43; Ответить: werd_34
Сообщение #3


В $search попадает текст, переданный методом POST при нажатии submit_search.

Спасибо за вариант кода, попробовал, но! У меня где-то есть ошибка (предполагаю, что в сессии) - даже не выводится значение $html = '<h1>Результаты поиска</h1>'
При наборе 1,2,3 символов выводит "Поисковый запрос должен содержать не менее 4-х символов"
При наборе слова выводит "Ничего не найдено!"
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
fedornabilkin
fedornabilkin
сообщение 25.11.2013, 10:09; Ответить: fedornabilkin
Сообщение #4


Как вариант, можно вывести на страницу строку запроса.
Вот эту строку
$res = mysql_query("SELECT `article_id`, `title`, `date`, `short_text`, `views` FROM `articles` WHERE MATCH(title, short_text, content) AGAINST('{$search}') AND `visible`='1' ORDER BY `date` DESC") or die(mysql_error());

Заменить на такое
$sql = "SELECT `article_id`, `title`, `date`, `short_text`, `views` FROM `articles` WHERE MATCH(title, short_text, content) AGAINST('{$search}') AND `visible`='1' ORDER BY `date` DESC"
$res = mysql_query($sql) or die(mysql_error());
echo $sql;

Получить строку запроса, скопировать и выполнить запрос непосредственно через пхпадмин, возможно действительно ничего не ищет.
Тогда уже смотреть сам запрос и параметры таблиц.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Какой % отказов нормален для сайта?
12 Aloof 2844 Сегодня, 17:05
автор: Liudmila
Открытая тема (нет новых ответов) Хостинг "Hostland" - качественный хостинг по разумным ценам и со своей Панелью Управления
0 artmeteor 404 18.4.2024, 22:46
автор: artmeteor
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыБыстрая индексация страниц сайта и обратных ссылок - 2Index
38 2Index 6646 18.4.2024, 12:56
автор: 2Index
Горячая тема (нет новых ответов) Услуги хостинг, аренда серверов США, Нидерланды, РФ | RICHHost
110 RICHHost 66920 17.4.2024, 1:30
автор: RICHHost
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыSiteAnalyzer - бесплатная программа для аудита и анализа сайта
77 Chaser 74225 9.4.2024, 11:36
автор: Chaser


 



RSS Текстовая версия Сейчас: 20.4.2024, 17:19
Дизайн