1 頁 (共 2 頁)

[問題] 連續搜索時間間隔限制

發表於 : 2005-05-29 22:23
help
問題外掛:連續搜索時間間隔限制\r
參考連結:http://phpbb-tw.net/phpbb/viewtopic.php?t=32133
使用版本:phpBB 2.0.15
網站位置:n/a
狀況描述:

我已經安裝了連續搜索時間間隔限制\r
好像 Not work in 2.015
有沒有朋友可以趙小弟解決問題 ?

發表於 : 2005-05-30 12:30
vaio
小弟都試裝了,但都唔Work的‧請問段CODE有甚麼出錯呢?

發表於 : 2005-05-30 20:11
help
vaio 寫:小弟都試裝了,但都唔Work的‧請問段CODE有甚麼出錯呢?
我都不知道
希望有高人指點 ...

發表於 : 2005-08-14 12:50
sh85216s
我在2.0.17下安裝也是沒有效果,不知道哪位大哥大姐可以幫一下忙?

發表於 : 2005-08-15 17:02
~倉木麻衣~
請多加一行session_start();
意即將原作中要求加入的程式碼改成這樣\r

代碼: 選擇全部

/* 
    妖妖專用,請任意拍打餵食! 
    [url]http://deliabest.no-ip.com[/url] 
*/ 
session_start();
if(!session_is_registered("nowtime")) 
{ 
   //如果是第一次搜尋則把?#123;在的時間記錄起來 
   session_register('nowtime'); 
   $_SESSION['nowtime'] = time(); 
}else{ 
   //?#93;定搜尋間隔時間為10秒 
   $set_min_time = 10; 
   /* 
   判斷是不是在10秒內重複搜尋 
   是,罵人 
   否,紀錄?#123;在時間 
   */ 
   $_SESSION['nowtime'] > (time() - $set_min_time) ? message_die(GENERAL_MESSAGE, "請勿在 $set_min_time 秒內重複搜尋!") : $_SESSION['nowtime'] = time(); 
}

發表於 : 2005-08-15 17:32
心靈捕手
~倉木麻衣~ 寫:請多加一行session_start();
意即將原作中要求加入的程式碼改成這樣\r

代碼: 選擇全部

/* 
    妖妖專用,請任意拍打餵食! 
    [url]http://deliabest.no-ip.com[/url] 
*/ 
session_start();
if(!session_is_registered("nowtime")) 
{ 
   //如果是第一次搜尋則把?#123;在的時間記錄起來 
   session_register('nowtime'); 
   $_SESSION['nowtime'] = time(); 
}else{ 
   //?#93;定搜尋間隔時間為10秒 
   $set_min_time = 10; 
   /* 
   判斷是不是在10秒內重複搜尋 
   是,罵人 
   否,紀錄?#123;在時間 
   */ 
   $_SESSION['nowtime'] > (time() - $set_min_time) ? message_die(GENERAL_MESSAGE, "請勿在 $set_min_time 秒內重複搜尋!") : $_SESSION['nowtime'] = time(); 
}
剛剛在測試論壇, 發現:
多了這一行後,
一開始, 便無法搜尋了!

--
抱歉! 多試幾次, 又發現可以了! :mrgreen:
謝謝您!

發表於 : 2005-08-15 17:50
~倉木麻衣~
其實也不是一開始就不能搜尋了
而是點了「搜尋(search.php)」後, $_SESSION['nowtime']就被register並賦值了
而當填入搜尋條件再按下「搜尋」鈕後, 會因為postback的關係而啟動預設的10秒限制\r
剛有測過, 點search.php後, 再隔10秒才送出搜尋就可以運作
不過還是有些麻煩就是了 :-?

剛又測了一下, 雖然不是很滿意, 不過應該也足夠了吧\r
將原作要求加入的程式代碼改成這樣\r

代碼: 選擇全部

session_start();
if(!session_is_registered("nowtime") && ($HTTP_POST_VARS['mode'] == 'results' || $HTTP_GET_VARS['mode'] == 'results') ) 
{ 
   //如果是第一次搜尋則把?#123;在的時間記錄起來 
   session_register('nowtime'); 
   $_SESSION['nowtime'] = time(); 
}else{ 
   //?#93;定搜尋間隔時間為10秒 
   $set_min_time = 10; 
   /* 
   判斷是不是在10秒內重複搜尋 
   是,罵人 
   否,紀錄?#123;在時間 
   */ 
   if (session_is_registered("nowtime"))
   {
      $_SESSION['nowtime'] > (time() - $set_min_time) ? message_die(GENERAL_MESSAGE, "請勿在 $set_min_time 秒內重複搜尋!") : $_SESSION['nowtime'] = time(); 
   }
}

發表於 : 2005-08-15 19:24
sh85216s
感謝,確實可以用了!
另:我的站有設定訪客必須登入方可搜尋,即使登入後使用搜尋功能,亦被限制10秒內只能搜尋一次。

總而言之,這是一個很棒的"mod"

多謝~倉木麻衣~

發表於 : 2005-08-15 19:36
Kill
怎麼我用了之後搜尋會變成空白畫面 :-o

發表於 : 2005-08-15 20:24
~倉木麻衣~
k122417901 寫:怎麼我用了之後搜尋會變成空白畫面 :-o
會不會是在session_start()之後有其它的輸出動作?
例如echo

發表於 : 2005-08-15 20:29
Kill
沒有耶@@
他原本是長這個樣子

代碼: 選擇全部

define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
include($phpbb_root_path . 'includes/bbcode.'.$phpEx);
include($phpbb_root_path . 'includes/functions_search.'.$phpEx);

//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_SEARCH);

init_userprefs($userdata);

發表於 : 2005-08-15 20:31
~倉木麻衣~
k122417901 寫:沒有耶@@
他原本是長這個樣子
那麼, 借你家的search.php來瞧瞧吧 :mrgreen:

發表於 : 2005-08-15 20:39
Kill

發表於 : 2005-08-15 20:48
~倉木麻衣~
咦\r
我套用你的search.php並做搜尋時間限制的修改後, 一切都很正常
並不會出現空白頁面 :-o

發表於 : 2005-08-15 20:52
Kill
~倉木麻衣~ 寫:咦\r
我套用你的search.php並做搜尋時間限制的修改後, 一切都很正常
並不會出現空白頁面 :-o
這就奇怪了(汗
難道是因為我用php 4.4.0的緣故嗎...