ACSite.NET 線上服務論壇

疑問與討論 => 虛擬主機使用疑問 => 主題作者是: heiwa 於 一月 28, 2005, 04:29:51 pm



主題: [問題]會員註冊出現問題!!
作者: heiwa一月 28, 2005, 04:29:51 pm
小弟論壇會員註冊功能出現了問題....
在搬家後...本人測試都無法完成測試動作.....
但是在舊論壇上測試是ok的.....

我有將我的論壇備份檔對二個論壇個自從新上傳...
舊論壇可以註冊,但新的還是無法完成

以下是我二個論壇的註冊連結....
舊論壇註冊 (http://members.lycos.co.uk/heiwawu/dragon_forum/phpbb/profile.php?mode=register)
新論壇註冊 (http://dsif.org/profile.php?mode=register)

請問這是哪裡出了問題呢???
感謝回答


主題: [問題]會員註冊出現問題!!
作者: acsite一月 28, 2005, 05:37:23 pm
正在研究中...


主題: [問題]會員註冊出現問題!!
作者: heiwa一月 28, 2005, 05:42:42 pm
感謝....
小弟也在研究中..........


主題: [問題]會員註冊出現問題!!
作者: heiwa一月 31, 2005, 11:49:45 am
這有沒有可能是SQL的問題啊..... :o  


主題: [問題]會員註冊出現問題!!
作者: acsite一月 31, 2005, 12:11:58 pm
目前我們認為問題比較可能出在程式上面
因為如果SQL有問題的話
應該整個版面都無法顯示


主題: [問題]會員註冊出現問題!!
作者: heiwa一月 31, 2005, 09:45:10 pm
程式是指php的程式碼有問題嗎???

對了
lycos 資料庫基本資料如下
phpMyAdmin MySQL-Dump : version 2.2.1-dev
PHP Version: 4.3.8
 


主題: [問題]會員註冊出現問題!!
作者: acsite一月 31, 2005, 09:58:55 pm
抱歉目前仍無法確定問題的原因


主題: [問題]會員註冊出現問題!!
作者: heiwa二月 01, 2005, 09:38:43 pm
我發現我將以下程式碼拿掉
程式碼:
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'];
  }
}

還是會出現  您必須確實填寫標示有*的項目  這串文字.......


主題: [問題]會員註冊出現問題!!
作者: heiwa二月 04, 2005, 03:55:17 pm
我發現問題所在了
php 4.3.10 對我以下的程式碼無法判斷
程式碼:
   //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
但是在 php 4.3.8 上是可以執行的...... :angry:
想辦法修改中  :unsure:  


主題: [問題]會員註冊出現問題!!
作者: acsite二月 04, 2005, 04:02:04 pm
很高興您已經找出原因 :)
不好意思在這個問題上沒有提供什麼有用的協助


主題: [問題]會員註冊出現問題!!
作者: heiwa二月 04, 2005, 04:03:18 pm
應該是以下的程式碼出現了問題
程式碼:
 
  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欄位裡確沒有看見任何資料


主題: [問題]會員註冊出現問題!!
作者: heiwa二月 06, 2005, 07:45:55 pm
我修改為以下程式碼
程式碼:
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   :unsure:

以下為profile_add_body.tpl的程式碼
程式碼:
<!-- 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年班
         <option>常士86年班
         <option>常士87年班
         <option>常士88年班
         <option>常士89年班
         <option>常士90年班
         <option>常士91年班</select>
     士二專<select class="post" style="width:100px" name="usergradeclass_2">
         <option>
         <option>士二專85年班
         <option>士二專86年班
         <option>士二專87年班
         <option>士二專88年班
         <option>士二專89年班
         <option>士二專90年甲班
         <option>士二專90年乙班
         <option>士二專91年班
         <option>士二專92年班</select>
     專科<select class="post" style="width:100px" name="usergradeclass_3">
         <option>
         <option>專科85年班
         <option>專科86年班
         <option>專科87年班
         <option>專科88年班
         <option>專科89年班
         <option>專科90年甲班
         <option>專科90年乙班
         <option>專科91年班
         <option>專科92年班</select>
     二技<select class="post" style="width:100px" name="usergradeclass_4">
         <option>
         <option>二技93年班
         <option>二技94年班
         <option>二技95年班
         <option>二技96年班
         <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 -->
努力除錯中.....  :angry:  


主題: [問題]會員註冊出現問題!!
作者: acsite二月 06, 2005, 07:58:46 pm
也許您可以試著 echo 所有 $usergradeclass_1~5 的值
這樣比較容易找出錯誤的原因 :)  


主題: [問題]會員註冊出現問題!!
作者: heiwa二月 06, 2005, 08:11:08 pm
不好意思....
不太懂您的意思說.... :unsure:  


主題: [問題]會員註冊出現問題!!
作者: acsite二月 06, 2005, 08:22:33 pm
可以試試看在 $usergradeclass = '';  的後面使用
echo "usergradeclass_1=" .  $usergradeclass_1;
將所有變數的值列出
也許便能藉此觀察後面 if 判斷是不是有什麼錯誤的地方


主題: [問題]會員註冊出現問題!!
作者: heiwa二月 06, 2005, 08:39:48 pm
引用
可以試試看在 $usergradeclass = '';  的後面使用
echo "usergradeclass_1=" .  $usergradeclass_1;
將所有變數的值列出
也許便能藉此觀察後面 if 判斷是不是有什麼錯誤的地方
出現了以下的錯誤,也就是插入echo "usergradeclass_1=" .  $usergradeclass_1;的那一行:
Parse error: parse error, unexpected T_ELSE in /home/heiwa/public_html/includes/usercp_register.php on line 451
 


主題: [問題]會員註冊出現問題!!
作者: acsite二月 06, 2005, 08:57:02 pm
引用
出現了以下的錯誤,也就是插入echo "usergradeclass_1=" .  $usergradeclass_1;的那一行:
Parse error: parse error, unexpected T_ELSE in /home/heiwa/public_html/includes/usercp_register.php on line 451
T_ELSE 代表 "else" 語法問題
此外我們剛剛在 home/heiwa/public_html/includes/usercp_register.php 內
放入 echo "usergradeclass_1=" .  $usergradeclass_1;
並未發生語法錯誤的情形
所以應該不是這行程式的問題


主題: [問題]會員註冊出現問題!!
作者: heiwa二月 06, 2005, 09:59:04 pm
我剛才測試了一下
將code改為以下
程式碼:
if ( $mode == 'register' )
{
   $usergradeclass == $usergradeclass_1;    

}
然後進入註冊,選第一個選項
發現   $usergradeclass = $usergradeclass_1;    
是沒有作用的................
這要怎麼改啊!!!!!!!!  :blink:


主題: [問題]會員註冊出現問題!!
作者: acsite二月 06, 2005, 11:02:49 pm
"==" 與 "=" 是不相同的運算子
關於程式語法的詳細說明則必須請您自行參考其他文件


主題: [問題]會員註冊出現問題!!
作者: heiwa二月 07, 2005, 04:53:16 am
我又測試了一下
我確定是
 
程式碼:
 if (($usergradeclass_1 != '') && ($usergradeclass_2 == '') && ($usergradeclass_3 == '') && ($usergradeclass_4 == '') )
發生了錯誤.....
程式根本就無法判斷 '' 裡的東西


主題: [問題]會員註冊出現問題!!
作者: heiwa二月 07, 2005, 07:52:46 am
將程式碼改為以下
程式碼:
if ( $mode == 'register' )
{
   $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'];
   $usergradeclass_5 = $HTTP_POST_VARS['usergradeclass_5'];

       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['gradeclass_double'];
      }
      else if ( $usergradeclass_2 != null && ( $usergradeclass_3 != null || $usergradeclass_4 != null || $usergradeclass_5 != null ))
      {
         $error = TRUE;
         $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['gradeclass_double'];
      }
      else if ( $usergradeclass_3 != null && ( $usergradeclass_4 != null || $usergradeclass_5 != null ))
      {
         $error = TRUE;
         $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['gradeclass_double'];
      }
      else if ( $usergradeclass_4 != null && $usergradeclass_5 != null)
      {
         $error = TRUE;
         $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['gradeclass_double'];
      }

      if (!$error)
      {
          if ( $usergradeclass_1 != null )
          {
               $usergradeclass = $usergradeclass_1;
          }
          else if ( $usergradeclass_2 != null )
          {
               $usergradeclass = $usergradeclass_2;
          }
          else if ( $usergradeclass_3 != null )
          {
               $usergradeclass = $usergradeclass_3;
          }
          else if ( $usergradeclass_4 != null )
          {
               $usergradeclass = $usergradeclass_4;
          }
          else if ( $usergradeclass_5 != null )
          {
               $usergradeclass = $usergradeclass_5;
          }
       }
      
      if ( empty($usergradeclass) )
      {
         $error = TRUE;
         $error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['Fields_empty'];
      }
}

選單.重覆選擇.空白的判斷一切正常  :P

感謝acsite兄 這幾天以來的指教~~~~~~


主題: [問題]會員註冊出現問題!!
作者: acsite二月 07, 2005, 09:47:08 am
很高興您已經解決此問題
不好意思其實沒有提供什麼幫助 :P