[問題]會員註冊出現問題!!(已解決)
版主: 版主管理群
版面規則
本區是討論關於 phpBB 2.0.X 架設安裝上的問題,只要有安裝任何外掛,請到外掛討論相關版面按照公告格式發表。
(發表文章請按照公告格式發表,違者砍文)
本區是討論關於 phpBB 2.0.X 架設安裝上的問題,只要有安裝任何外掛,請到外掛討論相關版面按照公告格式發表。
(發表文章請按照公告格式發表,違者砍文)
[問題]會員註冊出現問題!!(已解決)
小弟論壇從lycos搬家到acsite後...
會員註冊功能就出現了問題....
本人測試都無法完成註冊動作.....
但是在舊論壇上測試是ok的.....
我有將我的論壇備份檔對二個論壇個自重新上傳...
舊論壇可以註冊,但新的還是無法完成
以下是我二個論壇的註冊連結....
舊論壇註冊
新論壇註冊
請問這是哪裡出了問題呢???
感謝回答
會員註冊功能就出現了問題....
本人測試都無法完成註冊動作.....
但是在舊論壇上測試是ok的.....
我有將我的論壇備份檔對二個論壇個自重新上傳...
舊論壇可以註冊,但新的還是無法完成
以下是我二個論壇的註冊連結....
舊論壇註冊
新論壇註冊
請問這是哪裡出了問題呢???
感謝回答
最後由 Hsuing 於 2005-02-07 11:44 編輯,總共編輯了 1 次。
剛剛稍微測試了一下... 問題應該是這個吧?
新論壇註冊會一直顯示 "您必須確實填寫標示有*的項目" 即使所有項目都完全填入...
比較了一下兩個檔案, 之中的不同只有 style 跟 language, 新論壇沒有可以default style 跟 default language 可選...
問題可能是出在那個 language 上面...
可以先試試:
1. 還原 language 的檔案夾, (應該跟 lycos 的目錄一樣...)
確定有這兩個
\lang_english
\lang_chinese_traditional_taiwan
2. 系統管理控制台\基本組態\預設語系\r
應該為 "Chinese [ Traditional - Twiwan ]"
3. 還原 style 的檔案夾, (應該跟 lycos 的目錄一樣...)
確定有:
\templates\sky
\templates\subSilver
...
新論壇註冊會一直顯示 "您必須確實填寫標示有*的項目" 即使所有項目都完全填入...
比較了一下兩個檔案, 之中的不同只有 style 跟 language, 新論壇沒有可以default style 跟 default language 可選...
問題可能是出在那個 language 上面...
可以先試試:
1. 還原 language 的檔案夾, (應該跟 lycos 的目錄一樣...)
確定有這兩個
\lang_english
\lang_chinese_traditional_taiwan
2. 系統管理控制台\基本組態\預設語系\r
應該為 "Chinese [ Traditional - Twiwan ]"
3. 還原 style 的檔案夾, (應該跟 lycos 的目錄一樣...)
確定有:
\templates\sky
\templates\subSilver
...
我發現我將以上程式碼拿掉
還是會出現 您必須確實填寫標示有*的項目 這串文字.......
代碼: 選擇全部
else if ( $mode == 'register' )
{
if ( empty($username) || empty($new_password) || empty($password_confirm) || empty($email) || empty($userrealname) || empty($commend) || empty($mobilephone) || empty($address) )
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Fields_empty'];
}
}
啊... 原來如此...
把 (profile_add_body.tpl) 裡面的
下面這個部份修改一下("手機號碼?" 跟 "居住地址?" 是我亂加的 ):
實際內容會有出入, 不過找有 "icq" 的地方就是了~
<td class="row1"><span class="gen">(手機號碼?)</span></td>
<td class="row2">
<input type="text" name="icq" class="post"style="width: 100px" size="10" maxlength="15" value="{(手機號碼?)}" />
</td>
</tr>
<tr>
<td class="row1"><span class="gen">{(居住地址?)}:</span></td>
<td class="row2">
<input type="text" class="post"style="width: 150px" name="aim" size="20" maxlength="255" value="(居住地址?)" />
icq ===> mobilephone
aim ===> address
然後也要改 (usercp_register.php) 裡面的這一行:
$strip_var_list = array('username' => 'username', 'email' => 'email', 'icq' => 'icq', 'aim' => 'aim', 'msn' => 'msn', 'yim' => 'yim', 'website' => 'website', 'location' => 'location', 'occupation' => 'occupation', 'interests' => 'interests');
改成
'mobilephone' => 'mobilephone'
跟
'address' => 'address'
把 (profile_add_body.tpl) 裡面的
下面這個部份修改一下("手機號碼?" 跟 "居住地址?" 是我亂加的 ):
實際內容會有出入, 不過找有 "icq" 的地方就是了~
<td class="row1"><span class="gen">(手機號碼?)</span></td>
<td class="row2">
<input type="text" name="icq" class="post"style="width: 100px" size="10" maxlength="15" value="{(手機號碼?)}" />
</td>
</tr>
<tr>
<td class="row1"><span class="gen">{(居住地址?)}:</span></td>
<td class="row2">
<input type="text" class="post"style="width: 150px" name="aim" size="20" maxlength="255" value="(居住地址?)" />
icq ===> mobilephone
aim ===> address
然後也要改 (usercp_register.php) 裡面的這一行:
$strip_var_list = array('username' => 'username', 'email' => 'email', 'icq' => 'icq', 'aim' => 'aim', 'msn' => 'msn', 'yim' => 'yim', 'website' => 'website', 'location' => 'location', 'occupation' => 'occupation', 'interests' => 'interests');
改成
'mobilephone' => 'mobilephone'
跟
'address' => 'address'
我發現問題所在了
php 4.3.10 對我以下的程式碼無法判斷\r
但是在 php 4.3.8 上是可以執行的......
想辦法修改中
php 4.3.10 對我以下的程式碼無法判斷\r
代碼: 選擇全部
//check gradeclass start 期班的選擇
if ( $mode == 'register' )
{
if ( $usergradeclass_1 != '' && ( $usergradeclass_2 != '' || $usergradeclass_3 != '' || $usergradeclass_4 != '' ))
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['gradeclass_double'];
}
else if ( $usergradeclass_2 != '' && ( $usergradeclass_3 != '' || $usergradeclass_4 != '' ))
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['gradeclass_double'];
}
else if ( $usergradeclass_3 != '' && $usergradeclass_4 != '' )
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['gradeclass_double'];
}
if (!$error)
{
if ( $usergradeclass_1 != '' )
{
$usergradeclass = $usergradeclass_1;
}
else if ( $usergradeclass_2 != '' )
{
$usergradeclass = $usergradeclass_2;
}
else if ( $usergradeclass_3 != '' )
{
$usergradeclass = $usergradeclass_3;
}
else if ( $usergradeclass_4 != '' )
{
$usergradeclass = $usergradeclass_4;
}
}
if ( empty($usergradeclass) )
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Fields_empty'];
}
}
//check gradeclass end
想辦法修改中
應該是以下的程式碼出現了問題
因為我將以下程式碼拿掉
即可完成註冊....
但是在SQL裡usergradeclass欄位裡確沒有看見任何資料
代碼: 選擇全部
if (!$error)
{
if ( $usergradeclass_1 != '' )
{
$usergradeclass = $usergradeclass_1;
}
else if ( $usergradeclass_2 != '' )
{
$usergradeclass = $usergradeclass_2;
}
else if ( $usergradeclass_3 != '' )
{
$usergradeclass = $usergradeclass_3;
}
else if ( $usergradeclass_4 != '' )
{
$usergradeclass = $usergradeclass_4;
}
}
代碼: 選擇全部
if ( empty($usergradeclass) )
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Fields_empty'];
}
}
//check gradeclass end
但是在SQL裡usergradeclass欄位裡確沒有看見任何資料
一下也看不出來有什麼問題.....
試試看這個吧:
試試看這個吧:
代碼: 選擇全部
if ( $mode == 'register' )
{
$usergradeclass = '';
if (($usergradeclass_1 != '') && ($usergradeclass_2 == '') && ($usergradeclass_3 == '') && ($usergradeclass_4 == ''))
$usergradeclass = $usergradeclass_1;
else if (($usergradeclass_1 == '') && ($usergradeclass_2 != '') && ($usergradeclass_3 == '') && ($usergradeclass_4 == ''))
$usergradeclass = $usergradeclass_2;
else if (($usergradeclass_1 == '') && ($usergradeclass_2 == '') && ($usergradeclass_3 != '') && ($usergradeclass_4 == ''))
$usergradeclass = $usergradeclass_3;
else if (($usergradeclass_1 == '') && ($usergradeclass_2 == '') && ($usergradeclass_3 == '') && ($usergradeclass_4 != ''))
$usergradeclass = $usergradeclass_4;
else
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['gradeclass_double'];
if (empty($usergradeclass))
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Fields_empty'];
}
}
我修改為以下程式碼\r
雖然可以順利完成註冊.....
但是選單裡的值好像無法順利上傳至$usergradeclass
以下為profile_add_body.tpl的程式碼\r
努力除錯中.....
代碼: 選擇全部
if ( $mode == 'register' )
{
$usergradeclass = '';
if (($usergradeclass_1 != '') && ($usergradeclass_2 = '') && ($usergradeclass_3 = '') && ($usergradeclass_4 = '') && ($usergradeclass_5 = ''))
$usergradeclass = $usergradeclass_1;
else if (($usergradeclass_1 = '') && ($usergradeclass_2 != '') && ($usergradeclass_3 = '') && ($usergradeclass_4 = '') && ($usergradeclass_5 = ''))
$usergradeclass = $usergradeclass_2;
else if (($usergradeclass_1 = '') && ($usergradeclass_2 = '') && ($usergradeclass_3 != '') && ($usergradeclass_4 = '') && ($usergradeclass_5 = ''))
$usergradeclass = $usergradeclass_3;
else if (($usergradeclass_1 = '') && ($usergradeclass_2 = '') && ($usergradeclass_3 = '') && ($usergradeclass_4 != '') && ($usergradeclass_5 = ''))
$usergradeclass = $usergradeclass_4;
else if (($usergradeclass_1 = '') && ($usergradeclass_2 = '') && ($usergradeclass_3 = '') && ($usergradeclass_4 = '') && ($usergradeclass_5 != ''))
$usergradeclass = $usergradeclass_5;
else if (($usergradeclass_1 = '') && ($usergradeclass_2 = '') && ($usergradeclass_3 = '') && ($usergradeclass_4 = '') && ($usergradeclass_5 = ''))
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Fields_empty'];
else
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['gradeclass_double'];
}
但是選單裡的值好像無法順利上傳至$usergradeclass
以下為profile_add_body.tpl的程式碼\r
代碼: 選擇全部
<!-- BEGIN switch_namechange_allowed -->
<tr>
<td class="row1" width="20%"><span class="gen">{L_USERGRADECLASS}: *</span><br />
<span class="gensmall">{L_USERGRADECLASS_EXPLAIN}</span></td>
<td class="row2">
常士<select class="post" style="width:100px" name="usergradeclass_1">
<option>
<option>常士85年班\r
<option>常士86年班\r
<option>常士87年班\r
<option>常士88年班\r
<option>常士89年班\r
<option>常士90年班\r
<option>常士91年班</select>
士二專<select class="post" style="width:100px" name="usergradeclass_2">
<option>
<option>士二專85年班\r
<option>士二專86年班\r
<option>士二專87年班\r
<option>士二專88年班\r
<option>士二專89年班\r
<option>士二專90年甲班\r
<option>士二專90年乙班\r
<option>士二專91年班\r
<option>士二專92年班</select>
專科<select class="post" style="width:100px" name="usergradeclass_3">
<option>
<option>專科85年班\r
<option>專科86年班\r
<option>專科87年班\r
<option>專科88年班\r
<option>專科89年班\r
<option>專科90年甲班\r
<option>專科90年乙班\r
<option>專科91年班\r
<option>專科92年班</select>
二技<select class="post" style="width:100px" name="usergradeclass_4">
<option>
<option>二技93年班\r
<option>二技94年班\r
<option>二技95年班\r
<option>二技96年班\r
<option>二技97年班</select>
自填<input type="text" class="post" style="width:100px" name="usergradeclass_5" size="25" maxlength="25" value="{USERGRADECLASS_5}" /></td>
</tr>
<!-- END switch_namechange_allowed -->
這段程式前面加上這個試試看, 可能是中文的問題...
還有, 那些 == '' 的比較改成 == null
if (string != '') ===> if (string != null)
and
if (string == '') ===> if (string == null)
代碼: 選擇全部
$usergradeclass_1 = $HTTP_POST_VARS['usergradeclass_1']
$usergradeclass_2 = $HTTP_POST_VARS['usergradeclass_2']
$usergradeclass_3 = $HTTP_POST_VARS['usergradeclass_3']
$usergradeclass_4 = $HTTP_POST_VARS['usergradeclass_4']
if ($HTTP_POST_VARS['usergradeclass_5'] != null)
$usergradeclass_5 = "'" + $HTTP_POST_VARS['usergradeclass_5'] + "'";
if (string != '') ===> if (string != null)
and
if (string == '') ===> if (string == null)
感謝baboo的指導
選單已經可以正常工作了
但是還是有二個小bug...
1.
無法上傳字串至sql
2.就算5個選單都留空白 ,還是可以完成註冊...
選單已經可以正常工作了
但是還是有二個小bug...
1.
代碼: 選擇全部
if ($HTTP_POST_VARS['usergradeclass_5'] != null)
$usergradeclass_5 = "'" + $HTTP_POST_VARS['usergradeclass_5'] + "'";
2.
代碼: 選擇全部
else if (($usergradeclass_1 == null) && ($usergradeclass_2 == null) && ($usergradeclass_3 == null) && ($usergradeclass_4 == null) && ($usergradeclass_5 = null))
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Fields_empty'];
代碼: 選擇全部
if ($HTTP_POST_VARS['usergradeclass_5'] != null)
$usergradeclass_5 = "'" + $HTTP_POST_VARS['usergradeclass_5'] + "'";
代碼: 選擇全部
else if (($usergradeclass_1 == null) && ($usergradeclass_2 == null) && ($usergradeclass_3 == null) && ($usergradeclass_4 == null) && ($usergradeclass_5 = null))
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Fields_empty'];
還有, 應該改成
代碼: 選擇全部
else if (($usergradeclass_1 == null) && ($usergradeclass_2 == null) && ($usergradeclass_3 == null) && ($usergradeclass_4 == null) && ($usergradeclass_5 == null))
{
$error = TRUE;
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Fields_empty'];
}