第 1 頁 (共 1 頁)
[問題]我的網站上,生日狀態是否有bug?
發表於 : 2003-12-25 09:11
由 旋鋒
●架設主機作業系統:Windows 2000
●您的上網方式:ADSL
●您安裝的程式: php + MySql
●您的 phpBB2 版本:phpBB plus 1.2
請問各路高手;
我的網站上,生日狀態是否有bug,
因為最近 7 天內生日即將來臨的會員,
平時就常出現錯誤資料,
今日竟然顯示了近1/3的會員名稱,
且與事實不符,有無辦法改善呢?
發表於 : 2003-12-25 09:30
由 天霜
發表於 : 2003-12-25 09:59
由 旋鋒
謝謝天霜兄解惑,我來試試!
發表於 : 2003-12-25 10:44
由 旋鋒
天霜兄請問該加在哪一個檔案內呢?
檔案名稱為何?我找不到下列內容的檔案耶?
index.php也是找不到下列內容?
Code:#
#-----[ OPEN ]------------------------------------------
#
index.php
#
#-----[ FIND ]------------------------------------------
#
//
// Start output of page
#
#-----[ BEFORE, ADD ]------------------------------------------
發表於 : 2003-12-25 11:16
由 天霜
#
#-----[ OPEN 打開 ]----------------------------------------------------
#
#
#-----[ FIND 尋找 ]----------------------------------------------------
#
代碼: 選擇全部
// Birthday Mod, Show users with birthday
$sql = ($board_config['birthday_check_day']) ? "SELECT user_id, username, user_birthday,user_level FROM " . USERS_TABLE. " WHERE user_birthday!=999999 ORDER BY username" :"";
if($result = $db->sql_query($sql))
{
if (!empty($result))
{
$time_now = time();
$this_year = create_date('Y', $time_now, $board_config['board_timezone']);
$date_today = create_date('Ymd', $time_now, $board_config['board_timezone']);
$date_forward = create_date('Ymd', $time_now+($board_config['birthday_check_day']*86400), $board_config['board_timezone']);
while ($birthdayrow = $db->sql_fetchrow($result))
{
$user_birthday2 = $this_year.($user_birthday = realdate("md",$birthdayrow['user_birthday'] ));
if ( $user_birthday2 < $date_today ) $user_birthday2 += 1000;
if ( $user_birthday2 > $date_today && $user_birthday2 <= $date_forward )
{
// user are having birthday within the next days
$user_age = ( $this_year.$user_birthday < $date_today ) ? $this_year - realdate ('Y',$birthdayrow['user_birthday'])+1 : $this_year- realdate ('Y',$birthdayrow['user_birthday']);
switch ($birthdayrow['user_level'])
{
case ADMIN :
$birthdayrow['username'] = '<b>' . $birthdayrow['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor3'] . '"'; break;
case MOD :
$birthdayrow['username'] = '<b>' . $birthdayrow['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor2'] . '"'; break;
default: $style_color = '';
}
$birthday_week_list .= ' <a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $birthdayrow['user_id']) . '"' . $style_color .'>' . $birthdayrow['username'] . ' ('.$user_age.')</a>,';
} else if ( $user_birthday2 == $date_today )
{
//user have birthday today
$user_age = $this_year - realdate ( 'Y',$birthdayrow['user_birthday'] );
switch ($birthdayrow['user_level'])
{
case ADMIN :
$birthdayrow['username'] = '<b>' . $birthdayrow['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor3'] . '"'; break;
case MOD :
$birthdayrow['username'] = '<b>' . $birthdayrow['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor2'] . '"'; break;
default: $style_color = '';
}
$birthday_today_list .= ' <a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $birthdayrow['user_id']) . '"' . $style_color .'>' . $birthdayrow['username'] . ' ('.$user_age.')</a>,';
}
}
if ($birthday_today_list) $birthday_today_list[ strlen( $birthday_today_list)-1] = ' ';
if ($birthday_week_list) $birthday_week_list[ strlen( $birthday_week_list)-1] = ' ';
}
$db->sql_freeresult($result);
}
#
#-----[ REPLACE WITH 替換 ]--------------------------------------------
#
代碼: 選擇全部
//
// Birthday Mod, Show users with birthday
$time_now = time();
$date_now = create_date('md', $time_now, $board_config['board_timezone']);
$date_forward = create_date('md', $time_now+($board_config['birthday_check_day']*86400), $board_config['board_timezone']);
$sql = ($board_config['birthday_check_day']) ? "SELECT user_id, username, user_birthday, user_level FROM ".USERS_TABLE." WHERE user_birthday<>999999 AND
(user_birthday<0 OR DATE_FORMAT(FROM_DAYS(user_birthday),'%m%d') BETWEEN ".(($date_now<$date_forward) ? "'($date_now+0)' AND '$date_forward'" : "'($date_now+0)' AND '1231' OR DATE_FORMAT(FROM_DAYS(user_birthday),'%m%d') BETWEEN '0101' AND '$date_forward'") .") ORDER BY username" : "";
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, "Could not fetch birthday for users.", "", __LINE__, __FILE__, $sql);
} else
{
$birthdayrows = array();
$birthdayrows = $db->sql_fetchrowset($result);
}
if (!empty($birthdayrows))
{
$this_year = create_date('Y', $time_now, $board_config['board_timezone']);
$date_today = $this_year.$date_now;
$date_forward = $this_year.$date_forward;
while (list($user_number, $birthdayrow) = each($birthdayrows))
{
$user_birthday2 = $this_year.($user_birthday = realdate("md",$birthdayrow['user_birthday'] ));
// give user a year more, if he alread have had birthday
if ( $user_birthday2 < $date_today ) $user_birthday2 += 10000;
if ( $user_birthday2 == $date_today )
{
//user have birthday today
$user_age = $this_year - realdate ( 'Y',$birthdayrow['user_birthday'] );
switch ($birthdayrow['user_level'])
{
case ADMIN :
$birthdayrow['username'] = '<b>' . $birthdayrow['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor3'] . '"'; break;
case MOD :
$birthdayrow['username'] = '<b>' . $birthdayrow['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor2'] . '"'; break;
default: $style_color = '';
}
$birthday_today_list .= ' <a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $birthdayrow['user_id']) . '"' . $style_color .'>' . $birthdayrow['username'] . ' ('.$user_age.')</a>,';
} else if ( $user_birthday2 > $date_today && $user_birthday2 <= $date_forward )
{
// user are having birthday within the next days
$user_age = ( $this_year.$user_birthday < $date_today ) ? $this_year - realdate ('Y',$birthdayrow['user_birthday'])+1 : $this_year- realdate ('Y',$birthdayrow['user_birthday']);
switch ($birthdayrow['user_level'])
{
case ADMIN :
$birthdayrow['username'] = '<b>' . $birthdayrow['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor3'] . '"';break;
case MOD :
$birthdayrow['username'] = '<b>' . $birthdayrow['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';break;
default: $style_color = '';
}
$birthday_week_list .= ' <a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $birthdayrow['user_id']) . '"' . $style_color .'>' . $birthdayrow['username'] . ' ('.$user_age.')</a>,';
}
}
if ($birthday_today_list) $birthday_today_list[ strlen( $birthday_today_list)-1] = ' ';
if ($birthday_week_list) $birthday_week_list[ strlen( $birthday_week_list)-1] = ' ';
}
if (isset($result))
{
$db->sql_freeresult($result);
}
#
#-----[ SAVE/CLOSE ALL FILES 儲存並且關閉所有檔案 ]--------------------
#
# EoM
# 外掛結束
發表於 : 2003-12-25 14:38
由 旋鋒
發表於 : 2003-12-25 14:41
由 天霜
那麼建議你乾脆升級Birthday模組到最新比較好 ^^
發表於 : 2003-12-25 14:51
由 旋鋒
我的功力很弱,敢問如何升級Birthday模組到最新!
發表於 : 2003-12-26 01:07
由 依夢兒
旋鋒 寫:我的功力很弱,敢問如何升級Birthday模組到最新!
1. 先把你目前安裝的 Birthday Mod 拆掉。
2. 再到作者網站下載最新版重裝一次。
或是去看作者寫的更新說明,慢慢手動更新至最新版。
發表於 : 2003-12-26 11:20
由 旋鋒
您好人做到底,所謂作者網站是指哪一個作者?哪一個網站?
sorry ,我搞不清楚!
發表於 : 2003-12-26 11:22
由 NOFX
旋鋒 寫:您好人做到底,所謂作者網站是指哪一個作者?哪一個網站?
sorry ,我搞不清楚!
http://mods.db9.dk
發表於 : 2003-12-26 14:01
由 依夢兒
旋鋒 寫:您好人做到底,所謂作者網站是指哪一個作者?哪一個網站?
sorry ,我搞不清楚!
在外掛的安裝說明文件內都會註明,下次安裝其它外掛的時候請多留意一些。
發表於 : 2003-12-26 14:17
由 吉川拓也
旋鋒 寫:您好人做到底,所謂作者網站是指哪一個作者?哪一個網站?
sorry ,我搞不清楚!
1.請先看你自己的外掛模組列表 ...
2. http://www.hsuanchih.com/phpBB2/mods.php
3.找 Birthday Mod 這個模組名稱 . 點選Download ~
4.他就會自動連結到作者網站 ...
5.如果無法連結就找 http://mods.db9.dk/
6.用搜尋 (先註冊) 找 Birthday Mod 關鍵字 !
發表於 : 2003-12-26 18:31
由 旋鋒
謝謝各位前輩,幫小弟上了一課!
發表於 : 2003-12-30 01:46
由 fanphp
我是plus1.1的
但我已照改了
只有當天的才能顯示\r
但是七天內的就不能了
我該怎麼辦呢???