public function update()
 {
     $data['sitetitle'] = trim($_POST['sitetitle']);
     $data['sitetitle2'] = trim($_POST['sitetitle2']);
     $data['siteurl'] = trim($_POST['siteurl']);
     $data['updown'] = trim($_POST['updown']);
     $data['xgwz'] = trim($_POST['xgwz']);
     $data['sitedescription'] = trim($_POST['sitedescription']);
     $data['sitekeywords'] = trim($_POST['sitekeywords']);
     $data['sitelx'] = trim($_POST['sitelx']);
     $data['sitetcp'] = trim($_POST['sitetcp']);
     $data['sitelang'] = trim($_POST['sitelang']);
     $data['watermark'] = trim($_POST['watermark']);
     $data['watermarkimg'] = trim($_POST['watermarkimg']);
     $data['sitetpl'] = trim($_POST['sitetpl']);
     $data['indexrec'] = trim($_POST['indexrec']);
     $data['indexhot'] = trim($_POST['indexhot']);
     $data['indexlink'] = trim($_POST['indexlink']);
     $data['indexpic'] = trim($_POST['indexpic']);
     $data['noticeid'] = trim($_POST['noticeid']);
     $data['noticenum'] = trim($_POST['noticenum']);
     $data['isping'] = trim($_POST['isping']);
     $data['pingoff'] = trim($_POST['pingoff']);
     $data['bookoff'] = trim($_POST['bookoff']);
     $data['mood'] = trim($_POST['mood']);
     $data['sitelogo'] = trim($_POST['sitelogo']);
     $data['ishits'] = trim($_POST['ishits']);
     $data['iscopyfrom'] = trim($_POST['iscopyfrom']);
     $data['isauthor'] = trim($_POST['isauthor']);
     $data['indexvote'] = trim($_POST['indexvote']);
     $data['ishomeimg'] = trim($_POST['ishomeimg']);
     $data['mouseimg'] = trim($_POST['mouseimg']);
     $data['iszy'] = trim($_POST['iszy']);
     $data['id'] = trim($_POST['id']);
     $data['artlistnum'] = trim($_POST['artlistnum']);
     $data['artlisthot'] = trim($_POST['artlisthot']);
     $data['artlistrec'] = trim($_POST['artlistrec']);
     $data['articlerec'] = trim($_POST['articlerec']);
     $data['articlehot'] = trim($_POST['articlehot']);
     $data['rollnum'] = trim($_POST['rollnum']);
     $data['postovertime'] = trim($_POST['postovertime']);
     $data['urlmode'] = trim($_POST['urlmode']);
     $data['flashmode'] = trim($_POST['flashmode']);
     $data['indexnoticetitle'] = trim($_POST['indexnoticetitle']);
     $data['indexrectitle'] = trim($_POST['indexrectitle']);
     $data['indexhottitle'] = trim($_POST['indexhottitle']);
     $data['indexvotetitle'] = trim($_POST['indexvotetitle']);
     $data['indexpictitle'] = trim($_POST['indexpictitle']);
     $data['indexpicnum'] = trim($_POST['indexpicnum']);
     $data['indexpicscroll'] = trim($_POST['indexpicscroll']);
     $data['indexlinktitle'] = trim($_POST['indexlinktitle']);
     $data['indexlinkimg'] = trim($_POST['indexlinkimg']);
     $data['indexdiylink'] = trim($_POST['indexdiylink']);
     $data['listrectitle'] = trim($_POST['listrectitle']);
     $data['listhottitle'] = trim($_POST['listhottitle']);
     $data['listshowmode'] = trim($_POST['listshowmode']);
     $data['artrectitle'] = trim($_POST['artrectitle']);
     $data['arthottitle'] = trim($_POST['arthottitle']);
     $data['suffix'] = trim($_POST['suffix']);
     $data['is_build_html'] = intval($_POST['is_build_html']);
     $data['istrade'] = intval($_POST['istrade']);
     switch ($data['suffix']) {
         case 0:
             $resuffix = '.html';
             break;
         case 1:
             $resuffix = '.htm';
             break;
         case 2:
             $resuffix = '.shtml';
             break;
         case 3:
             $resuffix = '.php';
             break;
         case 4:
             $resuffix = '.asp';
             break;
         case 5:
             $resuffix = '.aspx';
             break;
         case 6:
             $resuffix = '.jsp';
             break;
     }
     $type = M('config');
     $config = F('basic', '', './Web/Conf/');
     switch ($config['suffix']) {
         case 0:
             $suffix = '.html';
             break;
         case 1:
             $suffix = '.htm';
             break;
         case 2:
             $suffix = '.shtml';
             break;
         case 3:
             $suffix = '.php';
             break;
         case 4:
             $suffix = '.asp';
             break;
         case 5:
             $suffix = '.aspx';
             break;
         case 6:
             $suffix = '.jsp';
             break;
     }
     $old_tpl = $config['sitetpl'];
     unset($config);
     $result = $type->data($data)->save();
     //重写缓存
     F('basic', $data, './Web/Conf/');
     //url模式处理
     $path = './Web/Conf';
     if ($data['urlmode'] == 0) {
         $fp = fopen($path . "/config.php", "r");
         $configStr = fread($fp, filesize($path . "/config.php"));
         fclose($fp);
         $configStr = preg_replace("/'URL_MODEL'=>[0-9]/", "'URL_MODEL'=>1", $configStr);
         $configStr = preg_replace("/'IS_BUILD_HTML'=>[0-9]/", "'IS_BUILD_HTML'=>" . intval($_POST['is_build_html']), $configStr);
         $configStr = str_replace("'" . $old_tpl . "'", "'" . $data['sitetpl'] . "'", $configStr);
         $configStr = str_replace("=>'" . $suffix . "'", "=>'" . $resuffix . "'", $configStr);
         $configStr = str_replace('index.php?s=', 'index.php/', $configStr);
         @chmod($path, 0777);
         $fp = fopen($path . "/config.php", "w") or die("<script>alert('写入配置失败,请检查../Web/Conf目录是否可写入!');history.go(-1);</script>");
         fwrite($fp, $configStr);
         fclose($fp);
     } elseif ($data['urlmode'] == 1) {
         $fp = fopen($path . "/config.php", "r");
         $configStr = fread($fp, filesize($path . "/config.php"));
         fclose($fp);
         $configStr = preg_replace("/'URL_MODEL'=>[0-9]/", "'URL_MODEL'=>2", $configStr);
         $configStr = preg_replace("/'IS_BUILD_HTML'=>[0-9]/", "'IS_BUILD_HTML'=>" . intval($_POST['is_build_html']), $configStr);
         $configStr = str_replace("'" . $old_tpl . "'", "'" . $data['sitetpl'] . "'", $configStr);
         $configStr = str_replace("=>'" . $suffix . "'", "=>'" . $resuffix . "'", $configStr);
         $configStr = str_replace('index.php?s=', 'index.php/', $configStr);
         @chmod($path, 0777);
         $fp = fopen($path . "/config.php", "w") or die("<script>alert('写入配置失败,请检查../Web/Conf目录是否可写入!');history.go(-1);</script>");
         fwrite($fp, $configStr);
         fclose($fp);
     } else {
         $fp = fopen($path . "/config.php", "r");
         $configStr = fread($fp, filesize($path . "/config.php"));
         fclose($fp);
         $configStr = preg_replace("/'URL_MODEL'=>[0-9]/", "'URL_MODEL'=>3", $configStr);
         $configStr = preg_replace("/'IS_BUILD_HTML'=>[0-9]/", "'IS_BUILD_HTML'=>" . intval($_POST['is_build_html']), $configStr);
         $configStr = str_replace("'" . $old_tpl . "'", "'" . $data['sitetpl'] . "'", $configStr);
         $configStr = str_replace("=>'" . $suffix . "'", "=>'" . $resuffix . "'", $configStr);
         $configStr = str_replace('index.php/', 'index.php?s=', $configStr);
         @chmod($path, 0777);
         $fp = fopen($path . "/config.php", "w") or die("<script>alert('写入配置失败,请检查../Web/Conf目录是否可写入!');history.go(-1);</script>");
         fwrite($fp, $configStr);
         fclose($fp);
     }
     //网站语言
     if ($data['sitelang'] == 0) {
         $path = './Web/Tpl/' . $data['sitetpl'] . '/js/';
         $fp = fopen($path . "/language.js", "r");
         $configStr = fread($fp, filesize($path . "/language.js"));
         fclose($fp);
         $configStr = str_replace('Default_isFT=1', 'Default_isFT=0', $configStr);
         @chmod($path, 0777);
         $fp = fopen($path . "/language.js", "w") or die("<script>alert('写入配置失败,请检查" . $path . "目录是否可写入!');history.go(-1);</script>");
         fwrite($fp, $configStr);
         fclose($fp);
     }
     if ($data['sitelang'] == 1) {
         $path = './Web/Tpl/' . $data['sitetpl'] . '/js/';
         $fp = fopen($path . "/language.js", "r");
         $configStr = fread($fp, filesize($path . "/language.js"));
         fclose($fp);
         $configStr = str_replace('Default_isFT=0', 'Default_isFT=1', $configStr);
         @chmod($path, 0777);
         $fp = fopen($path . "/language.js", "w") or die("<script>alert('写入配置失败,请检查" . $path . "目录是否可写入!');history.go(-1);</script>");
         fwrite($fp, $configStr);
         fclose($fp);
     }
     //保存邮件配置
     $config_file = "./Public/Config/config.ini.php";
     $fp = fopen($config_file, "r");
     $configStr = fread($fp, filesize($config_file));
     fclose($fp);
     $configStr = preg_replace("/'MAIL_TRADE'=>.*.,/", "'MAIL_TRADE'=>" . htmlspecialchars($_POST['MAIL_TRADE']) . ",", $configStr);
     $configStr = preg_replace("/'MAIL_SMTP_SERVER'=>'.*'/", "'MAIL_SMTP_SERVER'=>'" . (string) $_POST['MAIL_SMTP_SERVER'] . "'", $configStr);
     $configStr = preg_replace("/'MAIL_FROM'=>'.*'/", "'MAIL_FROM'=>'" . htmlspecialchars($_POST['MAIL_FROM']) . "'", $configStr);
     if (C('MAIL_PASSSWORD') != $_POST['MAIL_PASSSWORD']) {
         $configStr = preg_replace("/'MAIL_PASSSWORD'=>'.*'/", "'MAIL_PASSSWORD'=>'" . dami_encrypt($_POST['MAIL_PASSSWORD']) . "'", $configStr);
     }
     $configStr = preg_replace("/'MAIL_TOADMIN'=>'.*'/", "'MAIL_TOADMIN'=>'" . htmlspecialchars($_POST['MAIL_TOADMIN']) . "'", $configStr);
     $configStr = preg_replace("/'MAIL_PORT'=>.*.,/", "'MAIL_PORT'=>" . htmlspecialchars($_POST['MAIL_PORT']) . ",", $configStr);
     $fp = fopen($config_file, "w") or die("<script>alert('写入配置失败,请检查安装目录/Public/Config/config.ini.php是否可写入!');history.go(-1);</script>");
     fwrite($fp, $configStr);
     fclose($fp);
     //清理缓存
     $Webpath = './Web/Runtime/';
     $Adminpath = './Admin/Runtime/';
     if (is_dir($Webpath)) {
         @deldir($Webpath);
     }
     if (is_dir($Adminpath)) {
         @deldir($Adminpath);
     }
     $this->assign("jumpUrl", U('Config/index'));
     $this->success('操作成功!');
 }
 function find_password()
 {
     if ($_POST) {
         self::check_verify();
         $_POST = array_map('strval', $_POST);
         if (empty($_POST['username']) || empty($_POST['email']) || !preg_match("/^[\\w\\-\\.]+@[\\w\\-\\.]+(\\.\\w+)+\$/", $_POST['email'])) {
             $this->error('请输入用户名与注册邮件');
         }
         $map['username'] = inject_check($_POST['username']);
         $map['email'] = inject_check($_POST['email']);
         $t = M('member')->where($map)->find();
         if (!$t) {
             $this->error('用户名与邮件不匹配');
         } else {
             $map['hash'] = dami_encrypt(time());
             $map['addtime'] = time();
             M('find_password')->add($map);
             $url = 'http://' . $_SERVER['HTTP_HOST'] . '/' . U('Member/reset_password', $map);
             $body = "您在" . date('Y-m-d H:i:s') . "提交了找回密码请求。请点击下面的链接重置密码(48小时内有效)。<br><a href=\"{$url}\" target=\"_blank\">{$url}</a>";
             send_mail($t['email'], $t['email'] . '用户', '用户找回密码邮件', $body);
             $this->assign("waitSecond", 30);
             $this->assign("jumpUrl", U('Member/login'));
             $this->success('找回密码成功!请在48小时内登陆邮箱重置密码!');
         }
     } else {
         $this->display();
     }
 }