Discuz!官方免费开源建站系统

 找回密码
 立即注册
搜索

[疑问] 版主来看一下,动网升级的问题,(register.php出错)

[复制链接]
enanhai 发表于 2007-10-23 14:59:43 | 显示全部楼层 |阅读模式

救助各们高手给看一下!



本人从DV  SQL7.0 SP1转至Discuz!5.5后,出现会员注册有问题,后又升级至Discuz!6.0,发现问题一样。不知道是什么原因,请各位给看看。谢谢!


Discuz! / SuperSite 所需配置当前服务器
操作系统不限WINNT
PHP 版本4.0.6+5.2.1
短标记状态开启开启
MySQL 支持支持5.0.27-community-nt
ZEND 支持支持3.2.2
磁盘空间10M+2346M
附件上传不限您可以上传附件的最大尺寸: 8M


会员注册时,提交资料后出错,信息如下:

Discuz! info: MySQL Query Error

Time: 2007-10-20 11:39am
Script: /bbs6/register.php

SQL: INSERT INTO [Table]members (username, password, secques, gender, adminid, groupid, regip, regdate, lastvisit, lastactivity, posts, credits, extcredits1, extcredits2, extcredits3, extcredits4, extcredits5, extcredits6, extcredits7, extcredits8, email, bday, sigstatus, tpp, ppp, styleid, dateformat, timeformat, pmsound, showemail, newsletter, invisible, timeoffset)
VALUES ('abc543', 'e10adc3949ba59abbe56e057f20f883e', '', '1', '0', '10', '123.176.83.8', '1192851590', '1192851590', '1192851590', '0', Array,0,0,0,0,0,0,0,0, 'enanhai@sohu.com', '2007-10-22', '1', '0', '0', '', '1', '2', '1', '', '1', '0', '9999')
Error: Unknown column 'Array' in 'field list'
Errno.: 1054



在PHPMYADMIN下执行这段SQL提示错误,如下:

SQL 查询:
INSERT INTO [
TABLE ]members( username,

PASSWORD ,
secques,
gender,
adminid,
groupid,
regip,
regdate,
lastvisit,
lastactivity,
posts,
credits,
extcredits1,
extcredits2,
extcredits3,
extcredits4,
extcredits5,
extcredits6,
extcredits7,
extcredits8,
email,
bday,
sigstatus,
tpp,
ppp,
styleid,
dateformat,
timeformat,
pmsound,
showemail,
newsletter,
invisible,
timeoffset
)

VALUES (

'abc543', 'e10adc3949ba59abbe56e057f20f883e', '', '1', '0', '10', '123.176.83.8', '1192851590', '1192851590', '1192851590', '0', Array, 0, 0, 0, 0, 0, 0, 0, 0, 'enanhai@sohu.com', '2007-10-22', '1', '0', '0', '', '1', '2', '1', '', '1', '0', '9999'
)


MySQL 返回:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[Table]members (username, password, secques, gender, adminid, groupid, regip, re' at line 1


========================================================================
升级后,没有对Discuz!6做任何修改,也没有安装任何组件、插件或程序。


附:register.php文件源码如下:


<?php
/*
[Discuz!] (C)2001-2007 Comsenz Inc.
This is NOT a freeware, use is subject to license terms
$Id: register.php 10457 2007-08-31 06:57:06Z tiger $
*/
define('CURSCRIPT', 'register');
define('NOROBOT', TRUE);
require_once './include/common.inc.php';
require_once DISCUZ_ROOT.'./forumdata/cache/cache_profilefields.php';
$discuz_action = 5;
if($discuz_uid) {
showmessage('login_succeed', $indexname);
} elseif (!$regstatus) {
showmessage('register_disable');
}
$inviteconfig = array();
$query = $db->query("SELECT * FROM {$tablepre}settings WHERE variable IN ('bbrules', 'bbrulestxt', 'welcomemsg', 'welcomemsgtitle', 'welcomemsgtxt', 'inviteconfig')");
while($setting = $db->fetch_array($query)) {
$$setting['variable'] = $setting['value'];
}
$invitecode = $regstatus > 1 && $invitecode ? dhtmlspecialchars($invitecode) : '';
if($regstatus > 1) {
$inviterewardcredit = $inviteaddcredit = $invitedaddcredit = '';
@extract(unserialize($inviteconfig));
}

$query = $db->query("SELECT groupid, allownickname, allowcstatus, allowavatar, allowcusbbcode, allowsigbbcode, allowsigimgcode, maxsigsize FROM {$tablepre}usergroups WHERE ".($regverify ? "groupid='8'" : "creditshigher<=".intval($initcredits)." AND ".intval($initcredits)."<creditslower LIMIT 1"));
$groupinfo = $db->fetch_array($query);
$groupinfo['allowavatar'] = $groupinfo['allowavatar'] == 3 ? 2 : $groupinfo['allowavatar'];
$seccodecheck = $seccodestatus & 1;
$fromuid = !empty($_DCOOKIE['promotion']) && $creditspolicy['promotion_register'] ? intval($_DCOOKIE['promotion']) : 0;
if(!submitcheck('regsubmit', 0, $seccodecheck, $secqaa['status'][1])) {
$referer = isset($referer) ? dhtmlspecialchars($referer) : dreferer();
if($bbrules && !submitcheck('rulesubmit')) {
  $bbrulestxt = nl2br("\n$bbrulestxt\n\n");
} else {
  $enctype = $groupinfo['allowavatar'] == 3 ? 'enctype="multipart/form-data"' : NULL;
  $accessexp = '/('.str_replace("\r\n", '|', preg_quote($accessemail, '/')).')$/i';
  $censorexp = '/('.str_replace("\r\n", '|', preg_quote($censoremail, '/')).')$/i';
  $accessemail = str_replace("\r\n", '/', $accessemail);
  $censoremail = str_replace("\r\n", '/', $censoremail);
  $advcheck = $regadvance ? 'checked="checked"' : '';
  $advdisplay = $regadvance ? '' : 'none';
  $fromuser = !empty($fromuser) ? dhtmlspecialchars($fromuser) : '';
  $styleselect = $dayselect = '';
  $query = $db->query("SELECT styleid, name FROM {$tablepre}styles WHERE available='1'");
  while($styleinfo = $db->fetch_array($query)) {
   $styleselect .= '<option value="'.$styleinfo['styleid'].'">'.$styleinfo['name'].'</option>'."\n";
  }
  if($fromuid) {
   $query = $db->query("SELECT username FROM {$tablepre}members WHERE uid='$fromuid'");
   if($db->num_rows($query)) {
    $fromuser = dhtmlspecialchars($db->result($query, 0));
   } else {
    dsetcookie('promotion', '');
   }
  }
  for($num = 1; $num <= 31; $num++) {
   $dayselect .= '<option value="'.$num.'">'.$num.'</option>';
  }
  $dateformatlist = array();
  if(!empty($userdateformat) && ($count = count($userdateformat))) {
   for($num =1; $num <= $count; $num ++) {
    $dateformatlist[$num] = str_replace(array('n', 'j', 'y', 'Y'), array('mm', 'dd', 'yy', 'yyyy'), $userdateformat[$num-1]);
   }
  }
}
if($seccodecheck) {
  $seccode = random(6, 1);
}
if($secqaa['status'][1]) {
  $seccode = random(1, 1) * 1000000 + substr($seccode, -6);
}
include template('register');
} else {
require_once DISCUZ_ROOT.'./include/discuzcode.func.php';
$email = trim($email);
$username = addslashes(trim(stripslashes($username)));
$alipay = trim($alipay);
if(strlen($username) < 3) {
  showmessage('profile_username_tooshort');
}
if(strlen($username) > 15) {
  showmessage('profile_username_toolong');
}
if($password != $password2) {
  showmessage('profile_passwd_notmatch');
}
$guestexp = '\xA1\xA1|\xAC\xA3|^Guest|^\xD3\xCE\xBF\xCD|\xB9\x43\xAB\xC8';
$censorexp = '/^('.str_replace(array('\\*', "\r\n", ' '), array('.*', '|', ''), preg_quote(($censoruser = trim($censoruser)), '/')).')$/i';
if(preg_match("/^\s*$|^c:\\con\\con$|[%,\*\"\s\t\<\>\&]|$guestexp/is", $username) || ($censoruser && @preg_match($censorexp, $username))) {
  showmessage('profile_username_illegal');
}
if($censoruser && (@preg_match($censorexp, $nickname) || @preg_match($censorexp, $cstatus))) {
  showmessage('profile_nickname_cstatus_illegal');
}
if(!$password || $password != addslashes($password)) {
  showmessage('profile_passwd_illegal');
}
$accessexp = '/('.str_replace("\r\n", '|', preg_quote($accessemail, '/')).')$/i';
$censorexp = '/('.str_replace("\r\n", '|', preg_quote($censoremail, '/')).')$/i';
$invalidemail = $accessemail ? !preg_match($accessexp, $email) : $censoremail && preg_match($censorexp, $email);
if(!isemail($email) || $invalidemail) {
  showmessage('profile_email_illegal');
}
if($alipay && !isemail($alipay)) {
  showmessage('profile_alipay_illegal');
}
if($msn && !isemail($msn)) {
  showmessage('profile_alipay_msn');
}
$fieldadd1 = $fieldadd2 = '';
foreach(array_merge($_DCACHE['fields_required'], $_DCACHE['fields_optional']) as $field) {
  $field_key = 'field_'.$field['fieldid'];
  $field_val = ${'field_'.$field['fieldid'].'new'};
  if($field['required'] && trim($field_val) == '') {
   showmessage('profile_required_info_invalid');
  } elseif($field['selective'] && $field_val != '' && !isset($field['choices'][$field_val])) {
   showmessage('undefined_action', NULL, 'HALTED');
  } else {
   $fieldadd1 .= ", $field_key";
   $fieldadd2 .= ', \''.dhtmlspecialchars($field_val).'\'';
  }
}
if($regverify == 2 && !trim($regmessage)) {
  showmessage('profile_required_info_invalid');
}
if($groupinfo['maxsigsize']) {
  if(strlen($signature) > $groupinfo['maxsigsize']) {
   $maxsigsize = $groupinfo['maxsigsize'];
   showmessage('profile_sig_toolong');
  }
} else {
  $signature = '';
}
if($ipregctrl) {
  foreach(explode("\n", $ipregctrl) as $ctrlip) {
   if(preg_match("/^(".preg_quote(($ctrlip = trim($ctrlip)), '/').")/", $onlineip)) {
    $ctrlip = $ctrlip.'%';
    $regctrl = 72;
    break;
   } else {
    $ctrlip = $onlineip;
   }
  }
} else {
  $ctrlip = $onlineip;
}
if($regstatus > 1) {
  if($regstatus == 2 && !$invitecode) {
   showmessage('register_invite_notfound');
  } elseif($invitecode) {
   $groupinfo['groupid'] = $invitegroupid ? intval($invitegroupid) : $groupinfo['groupid'];
   $query = $db->query("SELECT uid, invitecode, inviteip, expiration FROM {$tablepre}invites WHERE invitecode='$invitecode' AND status IN ('1', '3')");
   if(!$invite = $db->fetch_array($query)) {
    showmessage('register_invite_error');
   } else {
    if($invite['inviteip'] == $onlineip) {
     showmessage('register_invite_iperror');
    } elseif($invite['expiration'] < $timestamp) {
     showmessage('register_invite_expiration');
    }
   }
  }
}
if($regctrl) {
  $query = $db->query("SELECT ip FROM {$tablepre}regips WHERE ip LIKE '$ctrlip' AND count='-1' AND dateline>$timestamp-'$regctrl'*3600 LIMIT 1");
  if($db->num_rows($query)) {
   showmessage('register_ctrl', NULL, 'HALTED');
  }
}
$query = $db->query("SELECT uid FROM {$tablepre}members WHERE username='$username'");
if($db->num_rows($query)) {
  showmessage('profile_username_duplicate');
}
if(!$doublee) {
  $query = $db->query("SELECT uid FROM {$tablepre}members WHERE email='$email' LIMIT 1");
  if($db->num_rows($query)) {
   showmessage('profile_email_duplicate');
  }
}
if($regfloodctrl) {
  $query = $db->query("SELECT count FROM {$tablepre}regips WHERE ip='$onlineip' AND count>'0' AND dateline>'$timestamp'-86400");
  if($regattempts = $db->result($query, 0)) {
   if($regattempts >= $regfloodctrl) {
    showmessage('register_flood_ctrl', NULL, 'HALTED');
   } else {
    $db->query("UPDATE {$tablepre}regips SET count=count+1 WHERE ip='$onlineip' AND count>'0'");
   }
  } else {
   $db->query("INSERT INTO {$tablepre}regips (ip, count, dateline)
    VALUES ('$onlineip', '1', '$timestamp')");
  }
}
$password = md5($password);
$secques = quescrypt($questionid, $answer);
$tppnew = in_array($tppnew, array(10, 20, 30)) ? $tppnew : 0;
$pppnew = in_array($pppnew, array(5, 10, 15)) ? $pppnew : 0;
$dateformatnew = ($dateformatnew = intval($dateformatnew)) && !empty($userdateformat[$dateformatnew -1]) ? $dateformatnew : 0;
$icq = preg_match("/^([0-9]+)$/", $icq) && strlen($icq) >= 5 && strlen($icq) <= 12 ? $icq : '';
$qq = preg_match("/^([0-9]+)$/", $qq) && strlen($qq) >= 5 && strlen($qq) <= 12 ? $qq : '';
$bday = datecheck($bday) ? $bday : '0000-00-00';
//$avatar = dhtmlspecialchars($avatar);
$yahoo = dhtmlspecialchars($yahoo);
$taobao = dhtmlspecialchars($taobao);
$email = dhtmlspecialchars($email);
$msn = dhtmlspecialchars($msn);
$alipay = dhtmlspecialchars($alipay);
$bday = dhtmlspecialchars($bday);
$signature = censor($signature);
$sigstatus = $signature ? 1 : 0;
$sightml = addslashes(discuzcode(stripslashes($signature), 1, 0, 0, 0, ($groupinfo['allowsigbbcode'] ? ($groupinfo['allowcusbbcode'] ? 2 : 1) : 0), $groupinfo['allowsigimgcode'], 0));
$bio = censor(dhtmlspecialchars($bio));
$site = dhtmlspecialchars(trim(preg_match("/^https?:\/\/.+/i", $site) ? $site : ($site ? 'http://'.$site : '')));
$locationnew = cutstr(censor(dhtmlspecialchars($locationnew)), 30);
$nickname = $groupinfo['allownickname'] ? cutstr(censor(dhtmlspecialchars($nickname)), 30) : '';
$cstatus = $groupinfo['allowcstatus'] ? cutstr(censor(dhtmlspecialchars($cstatus)), 30) : '';
$invisiblenew = $invisiblenew && $groupinfo['allowinvisible'] ? 1 : 0;
$idstring = random(6);
$authstr = $regverify == 1 ? "$timestamp\t2\t$idstring" : '';
//avatar
if(!empty($urlavatar) && $groupinfo['allowavatar']) {
  $avatarimagesize = array();
  $avatar = $urlavatar;
  if(@preg_match("/^(images\/avatars\/.+?)$/i", $urlavatar)) {
   $avatarimagesize = @getimagesize($urlavatar);
  } elseif(preg_match("/^(http:\/\/.+?)$/i", $urlavatar)) {
   if(ini_get('allow_url_fopen') && (substr(PHP_OS, 0, 3) != 'WIN' || PHP_VERSION >= 5)) {
    $avatarimagesize = @getimagesize($urlavatar);
   }
  } else {
   showmessage('profile_avatar_invalid');
  }
  if(!in_array(strtolower(fileext($avatar)), array('gif', 'jpg', 'png'))) {
   showmessage('profile_avatar_invalid');
  }
  $avatar = dhtmlspecialchars(trim($avatar));
  if($avatarwidth == '*' || $avatarheight == '*' || $avatarwidth == '' || $avatarheight == '') {
   $avatarwidth = $avatarheight = ($maxavatarpixel ? round($maxavatarpixel * 0.6) : 80);
   @list($avatarwidth, $avatarheight) = $avatarimagesize ? $avatarimagesize : array($avatarwidth, $avatarheight);
  }
  $maxsize = max($avatarwidth, $avatarheight);
  if($maxsize > $maxavatarpixel) {
   $avatarwidth = $avatarwidth * $maxavatarpixel / $maxsize;
   $avatarheight = $avatarheight * $maxavatarpixel / $maxsize;
  }
} else {
  $avatar = $avatarwidth = $avatarheight = '';
}
$db->query("INSERT INTO {$tablepre}members (username, password, secques, gender, adminid, groupid, regip, regdate, lastvisit, lastactivity, posts, credits, extcredits1, extcredits2, extcredits3, extcredits4, extcredits5, extcredits6, extcredits7, extcredits8, email, bday, sigstatus, tpp, ppp, styleid, dateformat, timeformat, pmsound, showemail, newsletter, invisible, timeoffset)
  VALUES ('$username', '$password', '$secques', '$gendernew', '0', '$groupinfo[groupid]', '$onlineip', '$timestamp', '$timestamp', '$timestamp', '0', $initcredits, '$email', '$bday', '$sigstatus', '$tppnew', '$pppnew', '$styleidnew', '$dateformatnew', '$timeformatnew', '$pmsoundnew', '$showemailnew', '$newsletter', '$invisiblenew', '$timeoffsetnew')");
$uid = $db->insert_id();
$db->query("INSERT INTO {$tablepre}memberfields (uid, nickname, site, icq, qq, yahoo, msn, taobao, alipay, location, bio, sightml, customstatus, authstr, avatar, avatarwidth, avatarheight $fieldadd1)
  VALUES ('$uid', '$nickname', '$site', '$icq', '$qq', '$yahoo', '$msn', '$taobao', '$alipay', '$locationnew', '$bio', '$sightml', '$cstatus', '$authstr', '$avatar', '$avatarwidth', '$avatarheight' $fieldadd2)");
if($regctrl || $regfloodctrl) {
  $db->query("DELETE FROM {$tablepre}regips WHERE dateline<='$timestamp'-".($regctrl > 72 ? $regctrl : 72)."*3600", 'UNBUFFERED');
  if($regctrl) {
   $db->query("INSERT INTO {$tablepre}regips (ip, count, dateline)
    VALUES ('$onlineip', '-1', '$timestamp')");
  }
}
if($regverify == 2) {
  $db->query("REPLACE INTO {$tablepre}validating (uid, submitdate, moddate, admin, submittimes, status, message, remark)
   VALUES ('$uid', '$timestamp', '0', '', '1', '0', '$regmessage', '')");
}
if($invitecode && $regstatus > 1) {
  $db->query("UPDATE {$tablepre}invites SET reguid='$uid', regdateline='$timestamp', status='2' WHERE invitecode='$invitecode' AND status='1'");
  if($inviteaddbuddy) {
   $db->query("INSERT INTO {$tablepre}buddys (uid, buddyid, dateline) VALUES ('$invite[uid]', '$uid', '$timestamp')");
  }
  if($inviterewardcredit) {
   if($inviteaddcredit) {
    $db->query("UPDATE {$tablepre}members SET extcredits$inviterewardcredit=extcredits$inviterewardcredit+'$inviteaddcredit' WHERE uid='$uid'");
   }
   if($invitedaddcredit) {
    $db->query("UPDATE {$tablepre}members SET extcredits$inviterewardcredit=extcredits$inviterewardcredit+'$invitedaddcredit' WHERE uid='$invite[uid]'");
   }
  }
}
$discuz_uid = $uid;
$discuz_user = $username;
$discuz_userss = stripslashes($discuz_user);
$discuz_pw = $password;
$discuz_secques = $secques;
$groupid = $groupinfo['groupid'];
$styleid = $styleid ? $styleid : $_DCACHE['settings']['styleid'];
if($welcomemsg && !empty($welcomemsgtxt)) {
  $welcomtitle = !empty($welcomemsgtitle) ? $welcomemsgtitle : "Welcome to $bbname!";
  $welcomtitle = addslashes(replacesitevar($welcomtitle));
  $welcomemsgtxt = addslashes(replacesitevar($welcomemsgtxt));
  if($welcomemsg == 1) {
   $db->query("INSERT INTO {$tablepre}pms (msgfrom, msgfromid, msgtoid, folder, new, subject, dateline, message)
    VALUES ('System Message', '0', '$uid', 'inbox', '1', '$welcomtitle', '$timestamp','$welcomemsgtxt')");
   $db->query("UPDATE {$tablepre}members SET newpm='1' WHERE uid='$uid'");
  } elseif($welcomemsg == 2) {
   sendmail("$username <$email>", $welcomtitle, $welcomemsgtxt);
  }
}
if($fromuid) {
  updatecredits($fromuid, $creditspolicy['promotion_register']);
  dsetcookie('promotion', '');
}
require_once DISCUZ_ROOT.'./include/cache.func.php';
$_DCACHE['settings']['totalmembers']++;
$_DCACHE['settings']['lastmember'] = $discuz_userss;
updatesettings();
switch($regverify) {
  case 1:
   sendmail("$username <$email>", 'email_verify_subject', 'email_verify_message');
   showmessage('profile_email_verify');
   break;
  case 2:
   showmessage('register_manual_verify', 'memcp.php');
   break;
  default:
   if($_DCACHE['settings']['frameon'] && $_DCOOKIE['frameon'] == 'yes') {
    $extrahead .= '<script>if(top != self) {parent.leftmenu.location.reload();}</script>';
   }
   if($passport_status == 'shopex' && $passport_shopex) {
    $dreferer = dreferer();
    $verify = md5('login'.$dreferer.$passport_key);
    showmessage('register_succeed', 'api/relateshopex.php?action=login&forward='.rawurlencode($dreferer).'&verify='.$verify);
   } else {
    showmessage('register_succeed', dreferer());
   }
   break;
}
}
function replacesitevar($string, $replaces = array()) {
global $sitename, $bbname, $timestamp, $timeoffset, $adminemail, $adminemail, $discuz_user;
$sitevars = array(
  '{sitename}' => $sitename,
  '{bbname}' => $bbname,
  '{time}' => gmdate('Y-n-j H:i', $timestamp + $timeoffset * 3600),
  '{adminemail}' => $adminemail,
  '{username}' => $discuz_user,
  '{myname}' => $discuz_user
);
$replaces = array_merge($sitevars, $replaces);
return str_replace(array_keys($replaces), array_values($replaces), $string);
}
?>

[ 本帖最后由 enanhai 于 2007-10-23 15:05 编辑 ]
回复

使用道具 举报

 楼主| enanhai 发表于 2007-10-23 15:16:22 | 显示全部楼层
N多人看了,难道说,都解决不了吗?
回复

使用道具 举报

 楼主| enanhai 发表于 2007-10-23 15:16:33 | 显示全部楼层
N多人看了,难道说,都解决不了吗?
回复

使用道具 举报

 楼主| enanhai 发表于 2007-10-23 15:16:43 | 显示全部楼层
N多人看了,难道说,都解决不了吗?
回复

使用道具 举报

桃子(小敏) 发表于 2007-10-23 16:06:49 | 显示全部楼层
请到后台设置下积分,启用几个积分
回复

使用道具 举报

桃子(小敏) 发表于 2007-10-23 16:06:59 | 显示全部楼层
请到后台设置下积分,启用几个积分
回复

使用道具 举报

 楼主| enanhai 发表于 2007-10-23 17:24:30 | 显示全部楼层
原帖由 桃子(小敏) 于 2007-10-23 16:06 发表
请到后台设置下积分,启用几个积分



我启用了所有的积分,还是不成功。依然报错。



还在等待中。。。。
回复

使用道具 举报

孤独的阿狼 发表于 2007-10-25 03:58:43 | 显示全部楼层
credits字段的值为Array?
回复

使用道具 举报

桃子(小敏) 发表于 2007-10-25 09:23:08 | 显示全部楼层
PM我论坛地址,管理员帐号和密码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-9-14 03:58 , Processed in 0.124969 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表