Mowd 寫:根據我之前灌appserv2.4.2的經驗,發現它Mysql原來的PASSWORD()函式更新了,加密後變成32個字元,原來的只有16個字元。而原來的PASSWORD()被更名成為OLD_PASSWORD(),所以程式一定會出問題啦。
這是MySQL4.1.7的問題,4.1.8不知道有沒有這個問題。
呃~
PASSWORD()這個就我所知的~
是在建立/修改 mysql user的password時會有影響\r
也是為何最近蠻人多人問改了mysql密碼後~phpMyAdmin會登不進去的主因
至於PHPBB的使用者密碼則是使用MD5函式進行編碼~與PASSWORD()並無相關哦\r
以login.php的部份內容來證明
代碼: 選擇全部
$sql = "SELECT user_id, username, [color=blue]user_password[/color], user_active, user_level
FROM " . USERS_TABLE . "
WHERE username = '" . str_replace("\\\'", "''", $username) . "'";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Error in obtaining userdata', '', __LINE__, __FILE__, $sql);
}
if( $row = $db->sql_fetchrow($result) )
{
if( $row['user_level'] != ADMIN && $board_config['board_disable'] )
{
redirect(append_sid("index.$phpEx", true));
}
else
{
if( [color=blue]md5($password) == $row['user_password'][/color] && $row['user_active'] )
phpbb的程式是先查詢使用者的密碼、等級、帳號啟用狀況
若有查詢到~則再將使用者輸入的密碼做MD5編碼~並與資料庫中查詢到的password做比對
所以這個討論串的問題點並不是在PASSWORD()函式的身上
