diff --git a/html/user/forum_text_search_action.php b/html/user/forum_text_search_action.php
index d0c9cc023e..b01a16b953 100644
--- a/html/user/forum_text_search_action.php
+++ b/html/user/forum_text_search_action.php
@@ -2,54 +2,64 @@
require_once("../inc/forum.inc");
require_once("../inc/time.inc");
+require_once("../inc/translation.inc");
db_init();
-$search_string = $_GET['search_string'];
-$offset = $_GET['offset'];
+$search_string = stripslashes(get_str('search_string'));
+$search_string_clean = mysql_real_escape_string($search_string);
+$offset = get_int('offset',true);
if (!$offset) $offset=0;
$count = 10;
$what = '';
-if ($_GET['titles']) {
+if (isset($_GET['titles'])) {
$what = 'titles=1';
- page_head("Titles containing '$search_string'");
- $q = "select * from thread where match(title) against ('$search_string') order by create_time desc limit $offset,$count";
- $result = mysql_query($q);
- echo "
";
- $n = 0;
- while ($thread = mysql_fetch_object($result)) {
- show_thread($thread, $n+$offset+1);
- $n += 1;
- }
- echo "
";
- mysql_free_result($result);
-
- if ($offset==0 && $n==0) {
- echo "No titles found containing '$search_string'";
- }
-}
-
-if ($_GET['bodies']) {
- if (! empty ($what)) {
- $what .= '&';
- }
- $what .= 'bodies=1';
-
- page_head("Messages containing '$search_string'");
- $q = "select * from post where match(content) against ('$search_string') order by timestamp desc limit $offset,$count";
+ page_head(sprintf(tr(FORUM_SEARCH_TITLES),$search_string)); //"les containing '$search_string'");
+ $q = "SELECT * FROM `thread` WHERE `title` LIKE '%$search_string_clean%' AND `hidden` = 0 ORDER BY `create_time` DESC LIMIT $offset,$count";
$result = mysql_query($q);
echo mysql_error();
echo "";
$n = 0;
- while ($post = mysql_fetch_object($result)) {
- show_post2($post, $n+$offset+1);
- $n += 1;
+ if (mysql_num_rows($result) > 0) {
+ echo "";
+ $n = 0;
+ while ($n < mysql_num_rows($result)) {
+ $thread = mysql_fetch_object($result);
+ show_thread($thread, $n+$offset+1);
+ $n += 1;
+ }
+ echo "
";
+ }
+ mysql_free_result($result);
+
+ if ($offset==0 && $n==0) {
+ echo sprintf(tr(FORUM_SEARCH_TITLES_NO),$search_string);//"No titles found containing '$search_string'";
+ }
+
+} else if (isset($_GET['bodies'])) {
+ $what .= 'bodies=1';
+
+ page_head(sprintf(tr(FORUM_SEARCH_BODIES),$search_string));
+ $q = "SELECT * FROM post ";
+ $q .= "LEFT JOIN thread ON post.thread = thread.id ";
+ $q .= "WHERE MATCH(post.content) AGAINST ('$search_string_clean') ";
+ $q .= "AND post.hidden = 0 AND thread.hidden = 0 ";// Don't show a post if it is in a hidden thread or hidden
+ $q .= "ORDER BY post.timestamp DESC LIMIT $offset,$count";
+ $result = mysql_query($q);
+ if (mysql_num_rows($result) > 0) {
+ echo "";
+ $n = 0;
+ while ($n < mysql_num_rows($result)) {
+ $post = mysql_fetch_object($result);
+ show_post2($post, $n+$offset+1);
+ $n += 1;
+ }
+ echo "
";
}
- echo "
";
mysql_free_result($result);
if ($offset==0 && $n==0) {
- echo "No messages found containing '$search_string'";
+ echo sprintf(tr(FORUM_SEARCH_BODIES_NO),$search_string);
}
}