) ENGINE=MyISAM  DEFAULT CHARSET=utf8;

DROP TABLE IF EXISTS {$db_prefix}relationships;
CREATE TABLE {$db_prefix}relationships (
  cid mediumint(8) unsigned NOT NULL DEFAULT '0',
  mid mediumint(8) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (cid,mid)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

EOT;
    //添加新表
    runquery($add);
    $query = $DB->query("SELECT cid, name, displayorder FROM {$db_prefix}categories");
    while ($cate = $DB->fetch_array($query)) {
        $DB->query("INSERT INTO {$db_prefix}metas (name, type, displayorder) VALUES ('" . addslashes($cate['name']) . "', 'category', '" . addslashes($cate['displayorder']) . "')");
        $mid = $DB->insert_id();
        $articles = $DB->query("SELECT articleid, visible FROM {$db_prefix}articles WHERE cid='" . $cate['cid'] . "'");
        while ($article = $DB->fetch_array($articles)) {
            $r = $DB->fetch_one_array("SELECT cid FROM {$db_prefix}relationships WHERE mid='{$mid}' LIMIT 1");
            if (!$r) {
                $DB->query("INSERT INTO {$db_prefix}relationships (cid,mid) VALUES ('" . $article['articleid'] . "', '{$mid}')");
            } else {
                if ($article['articleid'] != $r['cid']) {
                    $DB->query("INSERT INTO {$db_prefix}relationships (cid,mid) VALUES ('" . $article['articleid'] . "', '{$mid}')");
                }
            }
            if ($article['visible']) {
                $DB->unbuffered_query("UPDATE {$db_prefix}metas SET count=count+1 WHERE mid='{$mid}' AND type='category'");
            }
        }
    }
 // spam_words
 if ($options['spam_words'] && $cur_user['flag'] < 99) {
     $spam_words_arr = explode(",", $options['spam_words']);
     $check_con = ' ' . $c_content;
     foreach ($spam_words_arr as $spam) {
         if (strpos($check_con, $spam)) {
             // has spam word
             $DBM->unbuffered_query("UPDATE `yunbbs_users` SET `flag`='0' WHERE `id`='{$cur_uid}'");
             $MMC->delete('u_' . $cur_uid);
             exit('403: dont post any spam.');
         }
     }
 }
 $c_content = htmlspecialchars($c_content);
 $DBM->query("INSERT INTO `yunbbs_comments` (`id`,`articleid`,`uid`,`addtime`,`content`) VALUES (null,{$tid}, {$cur_uid}, {$timestamp}, '{$c_content}')");
 $new_rid = $DBM->insert_id();
 $DBM->unbuffered_query("UPDATE `yunbbs_articles` SET `ruid`='{$cur_uid}',`edittime`='{$timestamp}',`comments`=`comments`+1 WHERE `id`='{$tid}'");
 $DBM->unbuffered_query("UPDATE `yunbbs_users` SET `replies`=`replies`+1,`lastreplytime`='{$timestamp}' WHERE `id`='{$cur_uid}'");
 // 更新u_code
 $new_ucode = md5($cur_uid . $cur_user['password'] . $cur_user['regtime'] . $cur_user['lastposttime'] . $timestamp);
 if ($cur_user['expires']) {
     $cookie_ex = $cur_user['expires'];
 } else {
     $cookie_ex = $timestamp + 86400 * 365;
 }
 setcookie("cur_uid", $cur_uid, $cookie_ex, '/');
 setcookie("cur_uname", $cur_uname, $cookie_ex, '/');
 setcookie("cur_ucode", $new_ucode, $cookie_ex, '/');
 $MMC->delete('u_' . $cur_uid);
 // del cache
 $MMC->delete('t-' . $tid);
     }
 } else {
     $errors[] = '用户名、密码、重复密码、验证码 必填';
 }
 ////
 if (!$errors) {
     $pwmd5 = md5($pw);
     $DBM = new DB_MySQL();
     $DBM->connect($servername_m, $dbport, $dbusername, $dbpassword, $dbname);
     if ($options['register_review']) {
         $flag = 1;
     } else {
         $flag = 5;
     }
     $DBM->query("INSERT INTO `yunbbs_users` (`id`,`name`,`flag`,`password`,`regtime`) VALUES (null,'{$name}', {$flag}, '{$pwmd5}', {$timestamp})");
     $new_uid = $DBM->insert_id();
     if ($new_uid == 1) {
         $DBM->unbuffered_query("UPDATE `yunbbs_users` SET `flag` = '99' WHERE `id`='1'");
     }
     $MMC->delete('site_infos');
     // 记录已注册ip
     $MMC->set('regip_' . $onlineip, '1', 0, intval($options['reg_ip_space']));
     //设置cookie
     $db_ucode = md5($new_uid . $pwmd5 . $timestamp . '00');
     $cur_uid = $new_uid;
     setcookie("cur_uid", $cur_uid, $timestamp + 86400 * 365, '/');
     setcookie("cur_uname", $name, $timestamp + 86400 * 365, '/');
     setcookie("cur_ucode", $db_ucode, $timestamp + 86400 * 365, '/');
     header('location: /');
     exit;
 }
         exit;
     }
 }
 if ($timestamp - $cur_user['lastposttime'] > $options['article_post_space']) {
     if ($p_title) {
         if (mb_strlen($p_title, 'utf-8') <= $options['article_title_max_len'] && mb_strlen($p_content, 'utf-8') <= $options['article_content_max_len']) {
             $conmd5 = md5($p_title . $p_content);
             if ($MMC->get('cm_' . $conmd5)) {
                 $tip = '请勿发布相同的内容 或 灌水';
             } else {
                 $DBM = new DB_MySQL();
                 $DBM->connect($servername_m, $dbport, $dbusername, $dbpassword, $dbname);
                 $p_title = htmlspecialchars($p_title);
                 $p_content = htmlspecialchars($p_content);
                 $DBM->query("INSERT INTO `yunbbs_articles` (`id`,`cid`,`uid`,`title`,`content`,`addtime`,`edittime`) VALUES (null,{$cid},{$cur_uid}, '{$p_title}', '{$p_content}', {$timestamp}, {$timestamp})");
                 $new_aid = $DBM->insert_id();
                 $DBM->unbuffered_query("UPDATE `yunbbs_categories` SET `articles`=`articles`+1 WHERE `id`='{$cid}'");
                 $DBM->unbuffered_query("UPDATE `yunbbs_users` SET `articles`=`articles`+1, `lastposttime`={$timestamp} WHERE `id`='{$cur_uid}'");
                 // 更新u_code
                 $cur_user['lastposttime'] = $timestamp;
                 //
                 $MMC->delete('u_' . $cur_uid);
                 $new_ucode = md5($cur_uid . $cur_user['password'] . $cur_user['regtime'] . $cur_user['lastposttime'] . $cur_user['lastreplytime']);
                 if ($cur_user['expires']) {
                     $cookie_ex = $cur_user['expires'];
                 } else {
                     $cookie_ex = $timestamp + 86400 * 365;
                 }
                 setcookie("cur_uid", $cur_uid, $cookie_ex, '/');
                 setcookie("cur_uname", $cur_uname, $cookie_ex, '/');
                 setcookie("cur_ucode", $new_ucode, $cookie_ex, '/');