Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Как получить содержимое формы поиска?

Как получить содержимое формы поиска?


     03.09.2017    search.php, search    Общие вопросы, Общие вопросы по PHP    1153

вопрос
Хочу записать в базу, что ищут на сайте. Не могу найти в /modules/search.php данные формы, чтоб прописать в базу значение.

Ответил: maks


Совместными усилиями у меня получилось вот, что.

Создаём таблицу

CREATE TABLE `dle_searchstory` (
  `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `name` varchar(40) NOT NULL DEFAULT '',
  `story` varchar(40) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  UNIQUE KEY `story` (`story`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;


В /engine/modules/search.php делаем запись, я её поставил перед if( preg_match( , но особой разницы наверное нет.
$db->query( "INSERT IGNORE INTO " . PREFIX . "_searchstory (name, story) values ('{$member_id['name']}', '$story')");


Всё работает, дублей нет, ошибок нет. Поправьте если, что-то можно улучшить.
Похо что слово ГОСТЬ не пишется, не комильфо как-то.

PS

Ещё вывод на сайт сделал, может кому пригодится.
Создайте файл в /engine/mods/searchstory.php с содержимым.
<?php
if(!defined('DATALIFEENGINE')) {
  	die("Hacking attempt!");
}
global $config;
$limit = $limit ? intval($limit) : "100";
if (!$r_search) {
    $sql = $db->query("SELECT * FROM " . PREFIX . "_search ORDER BY id DESC LIMIT 0,{$limit}");
    while ($row = $db->get_row($sql)) { 
        $r_search .= "<div class=\"searchstory\">{$row['id']}  {$row['name']}<span>{$row['story']}</span></div>";
    }
}
echo $r_search;
?>


В нужном шаблоне так.
{include file="engine/mods/searchstory.php"}

7 комментариев

maks
Юзер

maks - 4 сентября 2017 13:10 -

$text и $story и ТП, чет не работают, выводит ноль. Какое значение в запросе прописать?

nowheremany
Эксперт

nowheremany - 4 сентября 2017 13:30 -

if( isset( $_REQUEST['story'] ) ) $story = dle_substr( strip_data( rawurldecode( $_REQUEST['story'] ) ), 0, 90, $config['charset'] ); else $story = "";

Благодарность принимаю тут Связь

maks
Юзер

maks - 7 сентября 2017 14:22 -

Спасибо! А имя пользователя или гость, можно как нибудь вывести?
Это тот код?
if( isset( $_REQUEST['searchuser'] ) ) $searchuser = dle_substr( $_REQUEST['searchuser'], 0, 40, $config['charset'] ); else $searchuser = "";

Или это поиск по пользователям?
Просто не работает почему-то.

nowheremany
Эксперт

nowheremany - 7 сентября 2017 22:26 -

Если нужен текущий юзер, то можно так
$member_id['name'] // Логин


В $member_id находится данные из базы по текущему юзеру

Благодарность принимаю тут Связь

maks
Юзер

maks - 7 сентября 2017 22:43 -

C кавычками чет белый экран, а убираю работает, правильно?

(name, story) values ('$member_id[name]', '$story')");

nowheremany
Эксперт

nowheremany - 7 сентября 2017 23:04 -

Можно и так использовать

Благодарность принимаю тут Связь

LazyDev
PHP-developer

LazyDev - 8 сентября 2017 02:26 -

maks,
(name, story) values ('{$member_id['name']}', '$story')");

Мой блог: LazyDev.pro

Помогаю с решением проблем на платной основе.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх