[問題] 如何訪只會員暱稱重複?(已解決)
版主: 版主管理群
[問題] 如何訪只會員暱稱重複?(已解決)
之前搞了一下functions_validate.php
就是沒有辦法在註冊會員的時候,防止會員暱稱重複,只能檢查會員暱稱是否重複!
意思就是說無法防止會員的暱稱重複就對了!
不知道哪一位大大能提供方法~
已解決嚕!感謝自己還有下面那位大大!
就是沒有辦法在註冊會員的時候,防止會員暱稱重複,只能檢查會員暱稱是否重複!
意思就是說無法防止會員的暱稱重複就對了!
不知道哪一位大大能提供方法~
已解決嚕!感謝自己還有下面那位大大!
最後由 w2812451 於 2005-09-27 21:18 編輯,總共編輯了 1 次。
Re: [問題] 如何訪只會員暱稱重複?
我提供一個防止重複的方式w2812451 寫:之前搞了一下functions_validate.php
就是沒有辦法在註冊會員的時候,防止會員暱稱重複,只能檢查會員暱稱是否重複!
意思就是說無法防止會員的暱稱重複就對了!
不知道哪一位大大能提供方法~
不過....不是改functions_validate.php就是了
代碼: 選擇全部
#
#-----[ OPEN ]--------------------------------------------------
#
includes/usercp_register.php
#
#-----[ FIND ]---------------------------------------------------
#
if ( !$error )
{
if ( $avatar_sql == '' )
#
#-----[ BEFORE, ADD ]-----------------------------------------
#
// nickname check
$sql = "SELECT * FROM ". USERS_TABLE ." WHERE user_interests ='". $interests ."'";
if ( $result = $db->sql_query($sql) )
{
if ( $row = $db->sql_fetchrow($result) )
{
if ( $row['user_id'] !='' && $row['user_id'] != '-1' )
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Usernickname_taken'];
}
}
}
// nickname check
#
#-----[ OPEN ]-------------------------------------------------------
#
language/lang_chinese_traditional_taiwan/lang_main.php
#
#-----[ FIND ]-------------------------------------------------------
#
$lang['Username_taken'] = '很抱歉!! 您所選擇的會員名稱已被註冊使用';
#
#-----[ AFTER, ADD ]----------------------------------------------
#
// nickname check
$lang['Usernickname_taken'] = '很抱歉!! 您所選擇的暱稱已被使用';
// nickname check
#
#-----[ SAVE/CLOSE ALL FILES ]----------------------------------
#
#EoM其中....user_interests和$interests這兩個地方\r
請改用你所用的變數....^^
另外提供修改functions_validate.php的方式
你可能還必須針對一些部份做修改....
加油吧!!
我只是打上了check的部份而已
代碼: 選擇全部
#
#-----[ OPEN ]--------------------------------------------------
#
includes/usercp_register.php
#
#-----[ FIND ]---------------------------------------------------
#
if ( !$error )
{
if ( $avatar_sql == '' )
#
#-----[ BEFORE, ADD ]-----------------------------------------
#
// nickname check
$nickname_sql = '';
if ( empty($user_nickname) )
{
// Error is already triggered, since one field is empty.
$error = TRUE;
}
else if ( $username != $userdata['username'] || $mode == 'register')
{
if (strtolower($user_nickname) != strtolower($userdata['user_nickname']) || $mode == 'register')
{
$result = validate_nickname($user_nickname);
if ( $result['error'] )
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $result['error_msg'];
}
}
if (!$error)
{
$nickname_sql = "user_nickname = '" . str_replace("\'", "''", $user_nickname) . "', ";
}
}
// nickname check
#
#-----[ OPEN ]-------------------------------------------------------
#
language/lang_chinese_traditional_taiwan/lang_main.php
#
#-----[ FIND ]-------------------------------------------------------
#
$lang['Username_taken'] = '很抱歉!! 您所選擇的會員名稱已被註冊使用';
#
#-----[ AFTER, ADD ]----------------------------------------------
#
// nickname check
$lang['Usernickname_taken'] = '很抱歉!! 您所選擇的暱稱已被使用';
// nickname check
#
#-----[ OPEN ]-------------------------------------------------------
#
includes/functions_validate.php
#
#-----[ FIND ]--------------------------------------------------------
#
?>
#
#-----[ BEFORE, ADD ]----------------------------------------------
#
//
// Check to see if the nickname has been taken.
//
function validate_nickname($user_nickname)
{
global $db, $lang, $userdata;
// Remove doubled up spaces
$username = preg_replace('#\s+#', ' ', trim($user_nickname));
$username = phpbb_clean_username($user_nickname);
$sql = "SELECT user_id
FROM " . USERS_TABLE . "
WHERE LOWER(user_nickname) = '" . strtolower($user_nickname) . "'";
if ($result = $db->sql_query($sql))
{
if ($row = $db->sql_fetchrow($result))
{
if ( $row['user_id'] != '' && $row['user_id'] != '-1' )
{
$db->sql_freeresult($result);
return array('error' => true, 'error_msg' => $lang['Usernickname_taken']);
}
}
}
$db->sql_freeresult($result);
return array('error' => false, 'error_msg' => '');
}
#
#-----[ SAVE/CLOSE ALL FILES ]----------------------------------
#
#EoM加油吧!!
我只是打上了check的部份而已
防止暱稱重複輸入+防止暱稱沒有輸入\r
代碼: 選擇全部
// nickname check
if ( $mode == 'register' )
{
$user_nickname = trim(htmlspecialchars($HTTP_POST_VARS['nickname']));
if (empty($user_nickname))
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Nickname_empty'];
}
$sql ="SELECT user_nickname
FROM " . USERS_TABLE . "
WHERE user_nickname ='$user_nickname'";
if (!($result = $db->sql_query($sql)))
{
message_die(GENERAL_ERROR, '無法送出查詢資料', '', __LINE__, __FILE__, $sql);
}
$sql_username = $db->sql_fetchrow($result);
if ($sql_username)
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Nickname_taken'];
}
}
// nickname check這個其實只要修改以下部份就可以了w2812451 寫:防止暱稱沒有輸入
代碼: 選擇全部
#
#-----[ OPEN ]--------------------------------------------------
#
includes/usercp_register.php
#
#-----[ FIND ]---------------------------------------------------
#
if ( empty($username) || empty($new_password) || empty($password_confirm) || empty($email) )
#
#-----[ REPLACE ]----------------------------------------------
#
if ( empty($username) || empty($new_password) || empty($password_confirm) || empty($email) || empty($user_nickname) )
#
#-----[ SAVE/CLOSE FILE ]------------------------------------
#
#EoM不過....這種改法應該要看你前面的程式碼怎麼用....
不然可能會沒作用...Orz

