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 打開 ]----------------------------------------------------
#

代碼: 選擇全部

index.php
#
#-----[ 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
旋鋒
天霜大大我已取代了程式;
http://www.hsuanchih.com/phpBB2/portal.php
有4筆生日資料正確
http://www.hsuanchih.com/phpBB2/index.php
資料卻是空白的,這個錯誤該如何修正呢?
再麻煩一下!

發表於 : 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
但是七天內的就不能了

我該怎麼辦呢???