[問題] 強制報到plus

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

版主: 版主管理群

主題已鎖定
shatinps
星球普通子民
星球普通子民
文章: 22
註冊時間: 2003-10-04 01:44
來自: 香港

[問題] 強制報到plus

文章 shatinps »

參考連結:御津闇慈前輩發表的強制報到plus ( http://phpbb-tw.net/phpbb/viewtopic.php?t=30217 )
網站程式:2.0.11版

本人安裝了之後, 在後台的[版面管理] --> [權限設定] 設定了某幾區可以 [所有會員] 閱讀, 但當未註冊的會員到那區閱讀文章時,卻出現 :

代碼: 選擇全部

請先完成報到手續,謝謝
點此進入該版面報到
請問有沒有修正方法?
~倉木麻衣~
竹貓忠實會員
竹貓忠實會員
文章: 1405
註冊時間: 2004-03-21 21:00

文章 ~倉木麻衣~ »

因為原MOD裡有使用user_level是否等於0來做判定
而剛好訪客的user_level 也是等於0

代碼: 選擇全部

#
#----[ OPEN ]----
#
posting.php

#
#----[ FIND ]----
#
if ((($mode == "newtopic" )||($mode == "reply" ))&& $forum_id != $board_config['checkin_coden'] && $userdata['user_level'] == 0 && $userdata['user_checkin'] == 0)

#
#----[IN-LINE, FIND]----
#
$userdata['user_checkin'] == 0

#
#----[IN-LINE, AFTER ADD]----
#
 && $userdata['user_id'] != ANONYMOUS

#
#----[ FIND ]----
#
elseif (($mode == "reply" ) && $forum_id == $board_config['checkin_coden'] && $userdata['user_level'] == 0 && $userdata['user_checkin'] == 0)

#
#----[IN-LINE, FIND]----
#
$userdata['user_checkin'] == 0

#
#----[IN-LINE, AFTER ADD]----
#
 && $userdata['user_id'] != ANONYMOUS

#
#----[ OPEN ]----
#
viewtopic.php

#
#----[ FIND ]----
#
if ($forum_id != $board_config['checkin_coden'] && $userdata['user_level'] == 0 && $userdata['user_checkin'] == 0)

#
#----[IN-LINE, FIND]----
#
$userdata['user_checkin'] == 0

#
#----[IN-LINE, AFTER ADD]----
#
 && $userdata['user_id'] != ANONYMOUS

#
#----[ SAVE/CLOSE ALL FILES ]----
#
#EoM
另外~有一個地方覺得怪怪的
原文中提到functions_post.php有一段要這麼改\r

代碼: 選擇全部

# 
#-----[ FIND ]------------------------------------------ 
# 
      $sql = "UPDATE " . USERS_TABLE . " 
         SET user_posts = user_posts $sign 

# 
#-----[ REPLACE WITH ]------------------------------------------ 
# 
      $sql = "UPDATE " . USERS_TABLE . " 
         SET user_posts = user_posts $sign $checkin [color=blue]";[/color]
改完後~這個SQL語法變成

代碼: 選擇全部

      $sql = "UPDATE " . USERS_TABLE . " 
         SET user_posts = user_posts $sign $checkin [color=blue]";[/color] 
			WHERE user_id = $user_id[color=orange]";[/color]
且要post文章時會出現底下的錯誤訊息\r
Parse error: parse error, unexpected T_STRING in /drive2/fpgshttpd/sabcat/phpBB2/includes/functions_post.php on line 479
蠻明顯的是字串結束符號的位置不正確所引起\r
個人覺得應該改成底下的樣子才正確~不知是否是御津闇慈前輩的筆誤\r
(其實是很納悶之前有裝的人怎沒有遇到這個問題?!)

代碼: 選擇全部

# 
#-----[ REPLACE WITH ]------------------------------------------ 
# 
      $sql = "UPDATE " . USERS_TABLE . " 
         SET user_posts = user_posts $sign $checkin
御津闇慈
竹貓忠實會員
竹貓忠實會員
文章: 645
註冊時間: 2001-11-17 10:59

文章 御津闇慈 »

~倉木麻衣~ 寫:因為原MOD裡有使用user_level是否等於0來做判定
而剛好訪客的user_level 也是等於0

代碼: 選擇全部

#
#----[ OPEN ]----
#
posting.php

#
#----[ FIND ]----
#
if ((($mode == "newtopic" )||($mode == "reply" ))&& $forum_id != $board_config['checkin_coden'] && $userdata['user_level'] == 0 && $userdata['user_checkin'] == 0)

#
#----[IN-LINE, FIND]----
#
$userdata['user_checkin'] == 0

#
#----[IN-LINE, AFTER ADD]----
#
 && $userdata['user_id'] != ANONYMOUS

#
#----[ FIND ]----
#
elseif (($mode == "reply" ) && $forum_id == $board_config['checkin_coden'] && $userdata['user_level'] == 0 && $userdata['user_checkin'] == 0)

#
#----[IN-LINE, FIND]----
#
$userdata['user_checkin'] == 0

#
#----[IN-LINE, AFTER ADD]----
#
 && $userdata['user_id'] != ANONYMOUS

#
#----[ OPEN ]----
#
viewtopic.php

#
#----[ FIND ]----
#
if ($forum_id != $board_config['checkin_coden'] && $userdata['user_level'] == 0 && $userdata['user_checkin'] == 0)

#
#----[IN-LINE, FIND]----
#
$userdata['user_checkin'] == 0

#
#----[IN-LINE, AFTER ADD]----
#
 && $userdata['user_id'] != ANONYMOUS

#
#----[ SAVE/CLOSE ALL FILES ]----
#
#EoM
另外~有一個地方覺得怪怪的
原文中提到functions_post.php有一段要這麼改\r

代碼: 選擇全部

# 
#-----[ FIND ]------------------------------------------ 
# 
      $sql = "UPDATE " . USERS_TABLE . " 
         SET user_posts = user_posts $sign 

# 
#-----[ REPLACE WITH ]------------------------------------------ 
# 
      $sql = "UPDATE " . USERS_TABLE . " 
         SET user_posts = user_posts $sign $checkin [color=blue]";[/color]
改完後~這個SQL語法變成

代碼: 選擇全部

      $sql = "UPDATE " . USERS_TABLE . " 
         SET user_posts = user_posts $sign $checkin [color=blue]";[/color] 
			WHERE user_id = $user_id[color=orange]";[/color]
且要post文章時會出現底下的錯誤訊息\r
Parse error: parse error, unexpected T_STRING in /drive2/fpgshttpd/sabcat/phpBB2/includes/functions_post.php on line 479
蠻明顯的是字串結束符號的位置不正確所引起\r
個人覺得應該改成底下的樣子才正確~不知是否是御津闇慈前輩的筆誤\r
(其實是很納悶之前有裝的人怎沒有遇到這個問題?!)

代碼: 選擇全部

# 
#-----[ REPLACE WITH ]------------------------------------------ 
# 
      $sql = "UPDATE " . USERS_TABLE . " 
         SET user_posts = user_posts $sign $checkin
是筆誤\r
因為當初有給其他一些人測試之後結果沒問題才放出來的
等下就修正\r
至於訪客部份
到SQL把訪各的user_checkin改成1即可\r
我可不想讓太多使用者因為增加一堆判斷式而導致一些負擔^^||
eduyian
星球公民
星球公民
文章: 177
註冊時間: 2004-09-16 16:44
來自: TET千里馬國際團隊
聯繫:

文章 eduyian »

小弟裝完之後,發現的問題是\r
從站長,版主以下的會員.....無論是vip會員或是一般會員。都需要再一次重新報到才能再觀看或發文(但只要重新報到後,就一切ok)
不知道是哪出了問題?!

以下為小弟的相關php檔
http://eduyian.no-ip.com/phpbb2/123.rar

--------------------------------------------------------------------

已解決~~ :mrgreen:
圖檔
●架設主機作業系統:Windows XP SP2
●我的上網方式:東森寬頻Cable
●我安裝的程式:Apache 2.44a+ PHP Version 4.3.10 + MySQL 版本 4.1.7 + phpMyAdmin 2.6.1-rc2
●我的 phpBB2 版本:phpBB2plus 2.0.21
主題已鎖定

回到「外掛問題討論」