1 頁 (共 1 頁)

[問題]尋找帳號不會被砍的外掛

發表於 : 2004-08-18 07:55
依夢兒
問題外掛:快速砍人和自動砍人\r
參考連結:http://mods.db9.dk/viewtopic.php?t=21
     http://www.phpbbhacks.com/viewhack.php?id=1427
使用版本:phpBB 2.0.10
網站位置:見個人資料
狀況描述:

找了很久一直找不到,搜尋字串也不知道該打些什麼才能夠比較有效率的找到,所以就直接上來問了....

印象中有這樣的一個外掛,就是可以設定會員帳號不會被刪除,即使是在執行快速砍人和自動砍人外掛的情形下。
知道的人煩請告知一下,謝謝!

發表於 : 2004-08-18 08:49
coca
你的意思是說即使有達到砍的條件,那些被設定的帳號還是會被保留嗎?

發表於 : 2004-08-18 11:20
吉川拓也
我記得遠學長有寫出防止被快速砍人跟自動砍人砍除的 Add-on 啊 ..

發表於 : 2004-08-18 12:13
天霜
吉川拓也 寫:我記得遠學長有寫出防止被快速砍人跟自動砍人砍除的 Add-on 啊 ..
沒錯~ yuan有開發出對應其以上外掛的免死金牌 = =+

發表於 : 2004-08-18 13:25
shihchieh
天霜 寫:
吉川拓也 寫:我記得遠學長有寫出防止被快速砍人跟自動砍人砍除的 Add-on 啊 ..
沒錯~ yuan有開發出對應其以上外掛的免死金牌 = =+
都過這麼久了還記得喔~那就貼給大家試試吧~.~"
以下是針對自動刪除會員外掛的改法

代碼: 選擇全部

############################################################
# Auto Delete User Add-On
# By yuan
############################################################
#------[ SQL ]------
#
ALTER TABLE `phpbb_users` ADD `user_fake_delete` TINYINT( 1 ) DEFAULT '0' NOT NULL ; 
UPDATE phpbb_users SET user_fake_delete = '1' WHERE user_level > '0';
#
#------[ OPEN ]------
#
admin/admin_users.php
#
#------[ FIND ]------
#
$viewemail = ( isset( $HTTP_POST_VARS['viewemail']) ) ? ( ( $HTTP_POST_VARS['viewemail'] ) ? TRUE : 0 ) : 0;
#
#------[ BEFORE, ADD ]------
#
$fake_delete = ( isset( $HTTP_POST_VARS['fake_delete']) ) ? ( ( $HTTP_POST_VARS['fake_delete'] ) ? TRUE : 0 ) : 0;
#
#------[ FIND ]------
#
, user_viewemail = $viewemail
#
#------[ BEFORE, ADD ]------
#		
, user_fake_delete = $fake_delete
#
#------[ FIND ]------
#
$viewemail = $this_userdata['user_viewemail'];
#
#------[ BEFORE, ADD ]------
#
$fake_delete = $this_userdata['user_fake_delete'];
#
#------[ FIND ]------
#
$s_hidden_fields .= '<input type="hidden" name="viewemail" value="' . $viewemail . '" />';
#
#------[ BEFORE, ADD ]------
#		
$s_hidden_fields .= '<input type="hidden" name="fake_delete" value="' . $fake_delete . '" />';
#
#------[ FIND ]------
#
			'VIEW_EMAIL_YES' => ($viewemail) ? 'checked="checked"' : '',
			'VIEW_EMAIL_NO' => (!$viewemail) ? 'checked="checked"' : '',
#
#------[ BEFORE, ADD ]------
#
			'FAKE_DELETE_YES' => ($fake_delete) ? 'checked="checked"' : '',
			'FAKE_DELETE_NO' => (!$fake_delete) ? 'checked="checked"' : '',
#
#------[ FIND ]------
#
			'L_PUBLIC_VIEW_EMAIL' => $lang['Public_view_email'],
#
#------[ BEFORE, ADD ]------
#
			'L_FAKE_DELETE' => $lang['User_Fake_Delete'],
#
#------[ OPEN ]------
#
templates/fisubsilversh/admin/user_edit_body.tpl
#
#------[ FIND ]------
#
<tr> 
<td class="row1">{L_PUBLIC_VIEW_EMAIL}</td>
<td class="row2"> 
<input type="radio" name="viewemail" value="1" {VIEW_EMAIL_YES} />
{L_YES}   
<input type="radio" name="viewemail" value="0" {VIEW_EMAIL_NO} />
{L_NO}</td>
</tr>
#
#------[ BEFORE, ADD ]------
#
<tr> 
<td class="row1">{L_FAKE_DELETE}</td>
<td class="row2"> 
<input type="radio" name="fake_delete" value="1" {FAKE_DELETE_YES} />
{L_YES}   
<input type="radio" name="fake_delete" value="0" {FAKE_DELETE_NO} />
{L_NO}</td>
</tr>
#
#------[ OPEN ]------
#
language/lang_chinese_traditional_taiwan/lang_admin_auto_delete_users.php
#
#------[ FIND ]------
#
?>
#
#------[ BEFORE, ADD ]------
#
$lang['User_Fake_Delete'] = '帳號永久有效';
#
#------[ OPEN ]------
#
include/functions_admin_auto_delete_users.php
#
#------[ FIND ]------
#
define('FAKE_DELETE', false);
#
#------[ REPLACE ]------
#
define('FAKE_DELETE', true);
#
#------[ FIND ]------
#
		if (FAKE_DELETE)
		{
			$sql = 'UPDATE ' . USERS_TABLE . "
				SET user_fake_delete = 1
				WHERE user_id = $user_id";
			if(!$db->sql_query($sql))
			{
				message_die(GENERAL_ERROR, 'Could not fake delete this user', '', __LINE__, __FILE__, $sql);
			}  
		}
		else
#
#------[ REPLACE ]------
#
		/* if (FAKE_DELETE)
		{
			$sql = 'UPDATE ' . USERS_TABLE . "
				SET user_fake_delete = 1
				WHERE user_id = $user_id";
			if(!$db->sql_query($sql))
			{
				message_die(GENERAL_ERROR, 'Could not fake delete this user', '', __LINE__, __FILE__, $sql);
			}  
		}
		else */
#
#------[ SAVE AND CLOSE ALL FILES ]------
#
永久會員圖示\r

代碼: 選擇全部

#
#------[ OPEN ]------
#
viewtopic.php
#
#------[ FIND ]------
#
$poster_id = $postrow[$i]['user_id'];
#
#------[ AFTER, ADD ]------
#
$poster_fake_delete = ( $postrow[$i]['user_fake_delete'] ) ? '<img src="' . $images['icon_unfake'] . '" alt="永久會員" title="免死金牌" border="0" />':'';
#
#------[ FIND ]------
#
'POST_ID' => $postrow[$i]['post_id'],
#
#------[ AFTER, ADD ]------
#
'POST_FAKE_DELETE' => $poster_fake_delete,
#
#------[ OPEN ]------
#
templates/your_temp/viewtopic_body.tpl
#
#------[ FIND ]------
#
{postrow.AUTHOR_PANEL}
#
#------[ BEFORE, ADD ]------
#
{postrow.POST_FAKE_DELETE}
#
#------[ OPEN ]------
#
templates/your_temp/your_temp.cfg
#
#------[ FIND ]------
#
?>
#
#------[ BEFORE, ADD ]------
#
$images['icon_unfake'] = "$current_template_images/icon_unfake.gif";
#
#------[ UPLOAD ]------
#
icon_unfake.gif to templates/your_temp/images
#
#------[ SAVE AND CLOSE ALL FILES ]------
#
後台設定啟動

代碼: 選擇全部

#
#------[ SQL ]------
#
INSERT INTO phpbb_config ( config_name , config_value ) VALUES ( 'admin_auto_delete_active', '0' );
#
#------[ OPEN ]------
#
admin/admin_board.php
#
#------[ FIND ]------
#
$disable_board_yes = ( $new['board_disable'] ) ? "checked="checked"" : "";
$disable_board_no = ( !$new['board_disable'] ) ? "checked="checked"" : "";
#
#------[ AFTER, ADD ]------
#
$admin_auto_delete_active_yes = ( $new['admin_auto_delete_active'] ) ? "checked="checked"" : "";
$admin_auto_delete_active_no = ( !$new['admin_auto_delete_active'] ) ? "checked="checked"" : "";
#
#------[ FIND ]------
#
	"L_DISABLE_BOARD" => $lang['Board_disable'], 
	"L_DISABLE_BOARD_EXPLAIN" => $lang['Board_disable_explain'], 
#
#------[ BEFORE, ADD ]------
#		
	"L_ADMIN_AUTO_DELETE_ACTIVE" => $lang['Admin_Auto_Delete_Active'], 
	"L_ADMIN_AUTO_DELETE_ACTIVE_EXPLAIN" => $lang['Admin_Auto_Delete_Active_Explain'], 
#
#------[ FIND ]------
#
	"S_DISABLE_BOARD_YES" => $disable_board_yes,
	"S_DISABLE_BOARD_NO" => $disable_board_no,
#
#------[ BEFORE, ADD ]------
#
	"S_ADMIN_AUTO_DELETE_ACTIVE_YES" => $admin_auto_delete_active_yes,
	"S_ADMIN_AUTO_DELETE_ACTIVE_NO" => $admin_auto_delete_active_no,
#
#------[ OPEN ]------
#
templates/SubSilver/admin/board_config_body.tpl
#
#------[ FIND ]------
#
<tr> 
<td class="row1">{L_DISABLE_BOARD}<br />
<span class="gensmall">{L_DISABLE_BOARD_EXPLAIN}</span></td>
<td class="row2"> 
<input type="radio" name="board_disable" value="1" {S_DISABLE_BOARD_YES} />
{L_YES}   
<input type="radio" name="board_disable" value="0" {S_DISABLE_BOARD_NO} />
{L_NO}</td>
</tr>
#
#------[ AFTER, ADD ]------
#		
<tr> 
<td class="row1">{L_ADMIN_AUTO_DELETE_ACTIVE}<br />
<span class="gensmall">{L_ADMIN_AUTO_DELETE_ACTIVE_EXPLAIN}</span></td>
<td class="row2"> 
<input type="radio" name="admin_auto_delete_active" value="1" {S_ADMIN_AUTO_DELETE_ACTIVED_YES} />
{L_YES}   
<input type="radio" name="admin_auto_delete_active" value="0" {S_ADMIN_AUTO_DELETE_ACTIVE_NO} />
{L_NO}</td>
</tr>
#
#------[ OPEN ]------
#
includes/page_tail.php
#
#------[ FIND ]------
#
include($phpbb_root_path . 'includes/functions_admin_auto_delete_users.' . $phpEx);
auto_delete_users();
#
#------[ REPLACE ]------
#
if ( $board_config['admin_auto_delete_active'] )
{
	include($phpbb_root_path . 'includes/functions_admin_auto_delete_users.' . $phpEx);
	auto_delete_users();
}
#
#------[ OPEN ]------
#
language/lang_chinese_traditional_taiwan/lang_admin_auto_delete_users.php
#
#------[ FIND ]------
#
?>
#
#------[ BEFORE, ADD ]------
#
$lang['Admin_Auto_Delete_Active'] = '自動刪除會員';
$lang['Admin_Auto_Delete_Active_Explain'] = '設定系統是否依規則啟用自動刪除會員制';
$lang['Admin_Auto_Delete_Active_On'] = '執行中';
$lang['Admin_Auto_Delete_Active_Off'] = '未啟動';
#
#------[ OPEN ]------
#
admin/admin_auto_delete_users.php
#
#------[ FIND ]------
#
'L_VERSION' => 'Version',
#
#------[ BEFORE, ADD ]------
#
'L_ACTIVE' => ( $board_config['admin_auto_delete_active'] ) ? $lang['Admin_Auto_Delete_Active_On']:$lang['Admin_Auto_Delete_Active_Off'],
#
#------[ OPEN ]------
#
templates/SubSilver/admin/admin_auto_delete_users.tpl
#
#------[ FIND ]------
#
{L_VERSION} {VERSION}
#
#------[ AFTER, ADD ]------
#
 <span style="color:#FF0000">{L_ACTIVE}</span>
#
#------[ SAVE AND CLOSE ALL FILES ]------
#

發表於 : 2004-08-19 10:21
依夢兒
謝謝 yuan 兄,不過永久會員圖示的部份少了一個步驟。

開啟 viewtopic.php ,搜尋:

代碼: 選擇全部

//
// Go ahead and pull all data for this topic
//
$sql = "SELECT u.username, u.user_id
在 u.user_id 後面加上:

代碼: 選擇全部

, u.user_fake_delete
補上這一個步驟,圖示才會出現。

發表於 : 2004-08-19 10:55
依夢兒
怪怪,頁尾出現錯誤訊息:

DEBUG MODE

SELECT user_id, username, user_regdate FROM phpbb_users WHERE user_active = 0 AND user_id <> -1 AND user_fake_delete <> 1 HAVING (user_regdate + 604800) < 1092883724

Line : 256
File : /home/morning/public_html/phpbb/includes/functions_admin_auto_delete_users.php


第 256 行附近大概是這樣:

代碼: 選擇全部

			if ($board_config['admin_auto_delete_inactive'])
			{
				/* Find In-Active Users */
				$sql = 'SELECT user_id, username, user_regdate FROM ' . USERS_TABLE . '
					WHERE user_active = 0
					AND user_id <> ' . ANONYMOUS . "
					$fake_delete_sql
					HAVING (user_regdate + $deletion_time_inactive) < " . time();
				if (DEBUG_THIS_MOD)
				{
					print $sql . '<br />';
				}
				if (!$result = $db->sql_query($sql))
				{
					message_die(GENERAL_ERROR, $lang['Error_Auto_Delete'], '', __LINE__, __FILE__, $sql);
				}
				while ($row = $db->sql_fetchrow($result))
				{
					auto_delete_specific_user($row['user_id'], $row['username']);
				}
			}

發表於 : 2004-08-19 11:42
pc123
SQL有加嗎??

發表於 : 2004-08-19 18:23
依夢兒
當然有囉!

發表於 : 2004-08-20 00:27
shihchieh
那段我也是原始的,不過沒有出現那個問題,要不你有沒有備份,還原看看會不會就正常了,如果還原就正常的話,那可能我的改法有問題吧,不過我之前運作的都蠻正常的就是了~ :oops: