[問題]限制引言字數

phpBB 2 MOD Support
無論是官方或非官方認證之外掛,安裝與使用問題討論。
(發表文章請按照公告格式發表,違者砍文)

版主: 版主管理群

messagebox
竹貓忠實會員
竹貓忠實會員
文章: 981
註冊時間: 2003-02-24 23:34

文章 messagebox »

找到問題所在了~
[php]<?php
function chk_qq($body){
$body=" ".$body;←已經下載者請加上這行
if (!strpos($body,"[quote")){
$q_text_len=0;
}else{
$s_t = strpos($body,"[quote=");
$e_t = strpos($body,"[/quote]")+8;
$chk_e_t=$e_t - $s_t;
$q_t = substr($body, $s_t, $chk_e_t);
$oth_t = substr($body, $e_t, strlen($body));
$q_text_len = strlen($q_t);
$oth_len = chk_qq($oth_t);
$q_text_len = $q_text_len + $oth_len;
}
return $q_text_len ;
}
?>[/php]
如果第一個字就是[quote
他就把它當成這段字已經沒有引言了
messagebox
竹貓忠實會員
竹貓忠實會員
文章: 981
註冊時間: 2003-02-24 23:34

文章 messagebox »

依夢兒 寫:新版本好像有問題,無論是回覆或是編輯都沒有用。
我引了 100 字,結果打 10 字文章照樣發送出去。(在 $must_len=intval($q_text_len*0.3); 的情況下)
之前那個舊版就沒有問題....

messagebox 寫:如果發言小於引言的30%就不給POST~
如果是引言字數大於發言內容的 20% 不給 POST 要怎麼設呢??
$must_len=intval($q_text_len*0.2);
$must_len發言字數(不包含引言部分)
$q_text_len引言字元數
依夢兒
竹貓忠實會員
竹貓忠實會員
文章: 2013
註冊時間: 2002-11-20 00:07

文章 依夢兒 »

messagebox 寫:
依夢兒 寫:如果是引言字數大於發言內容的 20% 不給 POST 要怎麼設呢??
$must_len=intval($q_text_len*0.2);
不行耶....我要的是「引言字數大於發言內容的 20% 就不給 POST」。
照上面的設定,我引言 20 字,自己回覆的內容只要打十幾個字,文章照樣發送出去....
照理說應該至少要打 100 字以上,這篇文章才能發送出去。

20% 好像太苛了,改 50% 好了。
有任何關於 phpBB 或是架站的問題,請在論壇上公開發表出來,大家一起討論。
請不要丟私人訊息問我,因為私訊是用來聊私事的。
這樣作對於解決您的問題一點幫助也沒有,也很沒有效率,小弟我一概謝絕。



搜尋是一種美德,在發問之前,請多加利用頂端的文章搜尋功能,搜尋可能的關鍵字。
確定您想問的問題找不到答案後,再發問。
messagebox
竹貓忠實會員
竹貓忠實會員
文章: 981
註冊時間: 2003-02-24 23:34

文章 messagebox »

依夢兒 寫:
messagebox 寫:
依夢兒 寫:如果是引言字數大於發言內容的 20% 不給 POST 要怎麼設呢??
$must_len=intval($q_text_len*0.2);
\r
不行耶....我要的是「引言字數大於發言內容的 20% 就不給 POST」。
照上面的設定,我引言 20 字,自己回覆的內容只要打十幾個字,文章照樣發送出去....
照理說應該至少要打 100 字以上,這篇文章才能發送出去。

20% 好像太苛了,改 50% 好了。
不給POST他會顯示你引言有多少字~你必須打多少字~你現在打多少字~
你可以從那裡看看
圖檔
像我這邊是30%~
引言部分是142個字元~所以必須至少發言42.6(取整數)個字~
因為我只輸入15個字元~~所以他就跳出這個了~
我自己重新計算一下~
判斷是不是達到規定是沒錯的~
messagebox
竹貓忠實會員
竹貓忠實會員
文章: 981
註冊時間: 2003-02-24 23:34

文章 messagebox »

依夢兒 寫:
messagebox 寫:
依夢兒 寫:如果是引言字數大於發言內容的 20% 不給 POST 要怎麼設呢??
$must_len=intval($q_text_len*0.2);
不行耶....我要的是「引言字數大於發言內容的 20% 就不給 POST」。
照上面的設定,我引言 20 字,自己回覆的內容只要打十幾個字,文章照樣發送出去....
照理說應該至少要打 100 字以上,這篇文章才能發送出去。

20% 好像太苛了,改 50% 好了。
終於懂了~
你這樣真的太嚴格了~
也就是說~引言有100個字~你需要人家輸入500個字??
0.5請改成10/2~~也就是5~~
老實說~~這樣真的太嚴格了~~
可能會有反對聲浪出現~~~
一般BBS比率大概是~
引言10行必須輸入3行文字~
就是總共13行文字~
我在這邊是改成~
引言10個字~~必須輸入3個字~~
也就是總共13個字~

你的需求似乎是希望發言要比引言還要多~~
那麼請這樣改~
$must_len=intval($q_text_len*5);
這麼一來~發言文字(不包含引言)必須大於引言部分的5倍~
也就是你所謂的~引言文字必須小於發言文字的??%
請將??%的分子分母掉換~
50%就是100/50~變成2倍~

不過還是一句話~你的板上肯定會大量減少引文~
反對聲浪也一定增加~~三思阿~
依夢兒
竹貓忠實會員
竹貓忠實會員
文章: 2013
註冊時間: 2002-11-20 00:07

文章 依夢兒 »

messagebox 寫:你這樣真的太嚴格了~
也就是說~引言有100個字~你需要人家輸入500個字??
只是想玩玩看效果如何啦,別那麼在意。

其實我是希望大家每一次引言不要引太多行,例如每段引言只能引二行或三行,就像我這一篇這樣。
因為我一直認為引言是挑重點引,通常在二、三行內就可以搞定了。
可是沒有辦法作到,只好想說用這種方式來限制。


老實說平衡點很難抓,也不知道該設多少才剛剛好。 @_@
如果以您原來內建的設定,引言了七、八行,結果自己回覆的內容只打二行,也能發送出去,感覺怪怪的。
有任何關於 phpBB 或是架站的問題,請在論壇上公開發表出來,大家一起討論。
請不要丟私人訊息問我,因為私訊是用來聊私事的。
這樣作對於解決您的問題一點幫助也沒有,也很沒有效率,小弟我一概謝絕。



搜尋是一種美德,在發問之前,請多加利用頂端的文章搜尋功能,搜尋可能的關鍵字。
確定您想問的問題找不到答案後,再發問。
messagebox
竹貓忠實會員
竹貓忠實會員
文章: 981
註冊時間: 2003-02-24 23:34

文章 messagebox »

依夢兒 寫:老實說平衡點很難抓,也不知道該設多少才剛剛好。
這個我同意~~
很多東西自己認為合情合理~~
在別人眼中可就不一定是~~

我那個設定是想說盡量別讓會員有太明顯的感覺~~
又可以防止無意義的大量引言~~

因為我討論版的設定是有發言就有錢~
你打1000字還是那麼多錢~~

所以我不會在意是否故意引言來灌水~~
GeniusKiKi
竹貓忠實會員
竹貓忠實會員
文章: 1086
註冊時間: 2003-10-28 14:50

文章 GeniusKiKi »

不知道大大是不是可以做個整合
順便把注音文外掛也整合進去~一.一|||
改成注音文超過幾個字就不給發表

現在的注音文外掛
使用 JavaScript 實在是很耗資源
發表一篇很多字的文章
就會 Lag 很久
再也不當爛好人...
好人是小白轉型成大白的墊腳石...
messagebox
竹貓忠實會員
竹貓忠實會員
文章: 981
註冊時間: 2003-02-24 23:34

文章 messagebox »

GeniusKiKi 寫:不知道大大是不是可以做個整合
順便把注音文外掛也整合進去~一.一|||
改成注音文超過幾個字就不給發表

現在的注音文外掛
使用 JavaScript 實在是很耗資源
發表一篇很多字的文章
就會 Lag 很久
找注音字是不難~~
只要判斷第一個字元是不是屬於注音的範圍~~
可是老實說~~注音文我比較不會在意~~

用PHP去找~~是很快沒錯啦~~
我是過將一篇
中日文混和的文章~3000字左右~
編譯成UTF-16的編碼~
只花了不到0.1秒~

java script是屬於直譯式語言~~跟PHP一樣~~
不過PHP優就優在~~~它使用ISAPI方式(UNIX例外)效能超棒~
比過去的CGI方式效能高過1倍~
所以我還是建議在WIN系統上使用PHP還要要用ISAPI方式~
不要在走回頭路去跑CGI了~~

UNIX就沒辦法了~~只能用CGI方式去跑PHP~
messagebox
竹貓忠實會員
竹貓忠實會員
文章: 981
註冊時間: 2003-02-24 23:34

文章 messagebox »

好了~~
請自己去下載
http://onlyou.org/download_file/chk_post.zip
裡面請尋找$ok_count這個變數~
將其值設定為你可以容忍的文章注音字數量(只有注音字~港字我看不懂~不會打)~(我預設為10~如果你希望的可容許值跟這個不一樣請自行更改)
只要文章裡面的注音超過這個值~~~就會叫他回去修改~並且告訴他哪邊錯了~

這份文件對於有經過posting.php來張貼資料的發表都有效
但是~必須有
$HTTP_POST_VARS['message']
$HTTP_POST_VARS['post']

這兩個變數才會有作用~~
預覽不會判讀~等他送出才叫他回去修改~~
至於快速回覆~因為我沒安裝過~
所以我不知道他送出過程~~
如果他一樣是送給posting.php來作判斷寫資料~
那一樣有效果~
但如果他是自行寫程式去寫入資料~~本程式將無效~
圖檔
這是我的測試範本\r

限制引言發言比率及限制注音文~新安裝方式
GeniusKiKi
竹貓忠實會員
竹貓忠實會員
文章: 1086
註冊時間: 2003-10-28 14:50

文章 GeniusKiKi »

多謝多謝~^^
目前對舊有的注音文防範有點感冒
有時候發表文章字數很多就會 Lag 很久

港字要抓應該會比較困難吧?
不知道那些字編碼有沒有連續
而且正常來說\r
港字使用率不會比注音文高

還有舊版快速回覆
ㄧ樣是送資料給 posting.php 寫入資料庫\r
所以應該是沒有問題的

還有大大說 UNIX 是使用 CGI 方式跑 PHP
那 Linux 也是ㄧ樣嗎?
基本上我不喜歡任何M$的東西
所以租用主機打死不用 Win 的
再也不當爛好人...
好人是小白轉型成大白的墊腳石...
messagebox
竹貓忠實會員
竹貓忠實會員
文章: 981
註冊時間: 2003-02-24 23:34

文章 messagebox »

GeniusKiKi 寫: 港字要抓應該會比較困難吧?
主要是香港用字~要是抓的話~~
我怕會導致一些正常發言會受影響~
改天在來試試看~~我可能會考慮不是BIG-5的編碼範圍都檔掉~~
GeniusKiKi 寫: 還有大大說 UNIX 是使用 CGI 方式跑 PHP
沒錯~UNIX系統並沒有辦法跑ISAPI~(至少我現在聽說是這樣)
效能會比用CGI方式的PHP文件還好~
不過一定比PERL的優~
只是CGI跟ISAPI相比的話~會差一點~
不過WIN本身就比UNIX吃資源~
我想應該不會有人架LINUX主機還開X-window吧~

我的測試是都在同一個環境下(WIN XP & APACHE)測試的~
LINUX~~說真的~~我沒天份~

另外聽說PERL也有支援在APACHE上用ISAPI方式執行~
不過~英文文件我真的看不懂~

用JAVA搭配PHP寫線上繪圖板~
剛剛玩了一下~~發現其實亂畫的漫畫還不錯看~~
GeniusKiKi
竹貓忠實會員
竹貓忠實會員
文章: 1086
註冊時間: 2003-10-28 14:50

文章 GeniusKiKi »

聽大大一席話
剛剛去看了一下我的主機商提供的資訊

Server API CGI

這應該是指 php 用 CGI 來跑吧?
不過應該也無所謂啦~
反正我打死不用M$的系統架站
再也不當爛好人...
好人是小白轉型成大白的墊腳石...
messagebox
竹貓忠實會員
竹貓忠實會員
文章: 981
註冊時間: 2003-02-24 23:34

文章 messagebox »

沒錯~
這邊所謂CGI是指方法而已~

在UNIX上面~確實一定是CGI~
因為他根本沒辦法支援ISAPI~
appletheme
星球普通子民
星球普通子民
文章: 11
註冊時間: 2004-02-25 00:10

文章 appletheme »

要如何留下引言回覆的username
但是不要有引言的文章??
主題已鎖定

回到「外掛問題討論」