第 1 頁 (共 2 頁)
[問題]求~攔截廣告功能[已解決]
發表於 : 2004-10-25 22:20
由 momoC
各位大大:
我快被廣告逼瘋了。有些廣告每天都來貼,擋 ip 根本擋不完。
我到後台看到有文字過濾功能,希望能有個「留言攔截」的功能。如果系統發現有人在貼廣告固定用語或網站,就直接讓那個人不能留言。有人能提供嗎?
_______________________________\r
怕沒有人有在開發這功能,所以我已經開始動工:
目前我將「文字過濾」功能複製成「留言攔截」功能,進入 language folder 裡去裝 lang_admin.php,才將「文字過濾」那段複製一份,改成我想要「留言攔截」說明--還沒跑我改的攔截程式哦!後台就進不去,會出現這個錯誤訊息:
代碼: 選擇全部
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in c:\appserv\www\phpbb2\language\lang_chinese_traditional_taiwan\lang_admin.php on line 541
我肯定我只是加文字標籤,根本不會影響程式功能。請問要怎麼辦??
對不起,我知道我是 plus 版本,但我只求 phpbb 的版本,其他的我可以自己修改,謝謝大家!
發表於 : 2004-10-25 23:09
由 蕭遙
難道說標簽衝突?但是那並不會造成錯誤,也許又是分號丟了吧…………
發表於 : 2004-10-26 01:13
由 momoC
後來發現好像是 lang_admin.php 就是不給改,不知道為什麼它整個 admin folder 裡的檔案增減十分敏感,可能是它的特殊功能吧!我現在想開了,把 lang_admin.php 還原,比照 topic shadow 的寫法自己去傳呼一個新寫的 language_admin_blockpost 檔案。其他的....還在努力中....
--------------------------
可以了可以了,我的電腦很怪,修改似乎不會馬上被收到,不必用 topic shadow 的方式也行,現在麻煩的是程式寫法明明都一樣,資料庫也建了,卻一直和我說資料庫找不到!!!
發表於 : 2004-10-26 04:49
由 momoC
可不可以請問一下?
為什麼我改程式的時候,明明已經改了,但跑程式時卻跑不出來?等到我再換另一個方式改寫時,舊的修改出來了,新的修改還是沒出來?是我的電腦有問題嗎?難怪改老半天改不出結果....

發表於 : 2004-10-26 09:13
由 蕭遙
會不會是編輯器的原因?你用的什麽編輯器改寫?
發表於 : 2004-10-26 10:32
由 momoC
用 UEDIT32,不過我的系統是朋友幫忙裝的英文XP系統。之前 lang_admin.php問題發現是我明明是改好了,但存完再開檔發現UEDIT32會將「攔」這個字改為亂碼,但重新開機後再改一次竟然就不會了。後來又為了從 php 抓文字到 tpl 沒有注意函數的大小寫,整了我一天。現在「攔截留言」的存檔和編輯功能已經寫好,還在想要怎麼做攔截。找了找「文字過濾」的相關資料,才知道「文字過濾」對中文好像沒什麼用,傷腦筋~有點中計的感覺

不過,廣告應該一般都會留網址和電腦,攔英文如果可以的話,也許還是可以一試吧....
總之,是 UEDIT32不好,還是我系統可能會有中英文衝碼的問題呢?
發表於 : 2004-10-26 12:30
由 蕭遙
我想可能是系統的問題吧…… 我一個朋友也是這樣,用的英文XP加挂中文包,結果總是有很神奇的問題出現。後來一怒之下重灌系統之後就好了。
要是攔網址格式的話,那麽別人正常的網址也不能發了……
發表於 : 2004-10-26 12:53
由 momoC
想請教蕭兄一個問題,preg_match 要怎麼用?
我忽然發現我都白做了一堆,文字過濾功我看了一堆頭昏眼花的,找不到資料到底從哪裡帶進來。現在我改變想法,不加新的程式,而是在過濾功能中,將特定網址代換成 disapprove 這個字。然後用 preg_match 去抓發文裡有沒有 disapprove 的字串,如果有的話,就在 function_post 顯示問題。這樣一來只是加一個小小的判斷碼,省去所有的工程。
可是,我不會用 preg_match,也不知道要放哪裡,又試了一晚,快瘋了~
-----------------------
匹匹:我倒不是攔網址格式,而是特定網址,因為最惡搞的就那幾家網址和電話而已,其它的看到聲明都會尊重。
發表於 : 2004-10-26 16:14
由 蕭遙
發表於 : 2004-10-26 19:12
由 aiken
你的會員沒有e-mail認證嗎?
如果有的話...犯案的會員直接鎖他的username跟e-mail address就可以了
一個人頂多也才10幾20個e-mail吧~~
發表於 : 2004-10-26 20:59
由 momoC
aiken 寫:你的會員沒有e-mail認證嗎?
如果有的話...犯案的會員直接鎖他的username跟e-mail address就可以了
一個人頂多也才10幾20個e-mail吧~~
唉~我網站的宗旨是讓網友能不必具名地分享內心的隱私,很多訪客是不敢具名或留下任何資料,以免被認出來的。所以我開放了訪客留言。(提外話:我也試著用過會員認證的功能,不知道為什麼有人說他就是收不到認證信....,所以我就沒開啟那功能了。)謝謝建議~
謝謝蕭兄,這網頁我有找到過,我的問題目前是在於怎麼 check array?
代碼: 選擇全部
if( $preview )
{
$orig_word = array();
$replacement_word = array();
obtain_word_list($orig_word, $replacement_word);
[color=#ff007f]
$bangthis="no";
$bangresult=preg_match($replacement_word, $orig_word, $matches[0]);
if ( $bangresult > 0 )
{
if ( $replace_word=="disapprove" )
{
$bangthis="bang";
}
else
{
$bangthis="warn";
}
}
[/color]
我目前是做紅字部分的修改。語法好像有錯,什麼結果也沒有。不知道為什麼 $orig_word 和 $ replace_word 裡面好像也是空的,抓不出值,程式卻跑得出結果?$bangresult 因此沒有內容,該怎麼改這部分判斷呢?
發表於 : 2004-10-27 06:37
由 蕭遙
這個我不會用的說…… 不過我看到例子和function_post.php裏用到的地方,都在搜索的變量前後加限定符的說,會不會是這個原因?
發表於 : 2004-10-27 15:26
由 momoC
經過 Free Talk Area 裡 Joe 的幫忙,程式完成了主要比對功能,我後來決定還是將封鎖網址直接放在「文字過濾」功能裡,但替換字串一律定為 "disapprove"。程式只要抓到是 "disapprove" 的,就首先給警告,所以一點不影響「文字過濾」的作業。
這段文字要放在 function_post.php 裡 prepare_message function 的最後面。別忘了自己在 lang_main.php 定義 $lang。沒有人有討厭廣告的困擾嗎?這個外掛可以讓我多活很多年說.....
代碼: 選擇全部
// blockpost
$stop_words = array();
$sql = "SELECT word, replacement FROM " . WORDS_TABLE . " WHERE replacement='disapprove'";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not get blocked words from database', '', __LINE__, __FILE__, $sql);
}
if ( $row = $db->sql_fetchrow($result) )
{
do
{
$stop_words[] = $row['word'];
}
while ( $row = $db->sql_fetchrow($result) );
}
for ($i=0; $i < count($stop_words); $i++)
{
if( substr_count($message, $stop_words[$i])<>'0')
{
message_die(GENERAL_MESSAGE,$lang['stop_words_warning']);
}
}
發表於 : 2004-11-09 23:50
由 蕭遙
不好意思頂上來…… 想請教momoC兄有關preg_match的使用,我也被它搞到腦子亂掉了……
我是想要群發PM的功能,因爲沒有找到外掛,就打算自己寫。想法是讓會員在框内輸入多個收信人名稱,用逗號分隔,然後讀到$to_user_list裏,再用一個FOR循環多次寫入資料庫。 但是在抓取的時候卡住了,因爲不知道怎麽寫preg_match的正則表達式…………我也沒看懂那個網葉的說。momoC兄能指導一下嘛?
發表於 : 2005-06-30 03:20
由 momoC
蕭遙 寫:不好意思頂上來…… 想請教momoC兄有關preg_match的使用,我也被它搞到腦子亂掉了……
我是想要群發PM的功能,因爲沒有找到外掛,就打算自己寫。想法是讓會員在框内輸入多個收信人名稱,用逗號分隔,然後讀到$to_user_list裏,再用一個FOR循環多次寫入資料庫。 但是在抓取的時候卡住了,因爲不知道怎麽寫preg_match的正則表達式…………我也沒看懂那個網葉的說。momoC兄能指導一下嘛?
蕭遙兄,真是抱歉!我竟然沒看到你這則留言。我最近也開始用 phpbb ,才發現那時傻傻的,求到的 plus 版原來是無法用在 phpbb 2.0.16 上。所以現在又要努力了。我不知道我會不是因此研究出 preg_match 的使用方法,但我若有什麼發現,會報告乎你聽。祝我好運吧!我沒有擋廣告功能是不行的,有些廣告商實在太難纏了!
