火车采集器软件交流官方论坛

 找回密码
 加入会员
搜索
火车采集器V9版免费下载火车浏览器 - 可视采集,万能群发,全自动脚本工具
查看: 3313|回复: 1

回应[bbswin]-关于SS5.0(5.5)的自己如何写提交页

[复制链接]
发表于 2007-5-11 19:25:41 | 显示全部楼层 |阅读模式
我以前用过一段时间SS5.0 因为2次登陆的问题 所以自己写了个提交页
现在SS5.5 和 5.0的发布应该都差不多吧 你自己或需要的朋友自己参考一下吧

其实有自己的服务器 完全可以使用直接入库的方式 虚拟主机只好使用在线发布了

  1. <?
  2. class dbstuff {
  3.         var $querynum = 0;

  4.         function connect($dbhost, $dbuser, $dbpw, $dbname = '', $pconnect = 0) {
  5.                 if($pconnect) {
  6.                         if(!@mysql_pconnect($dbhost, $dbuser, $dbpw)) {
  7.                                 $this->halt('Can not connect to MySQL server');
  8.                         }
  9.                 } else {
  10.                         if(!@mysql_connect($dbhost, $dbuser, $dbpw)) {
  11.                                 $this->halt('Can not connect to MySQL server');
  12.                         }
  13.                 }

  14.                 if($this->version() > '4.1') {
  15.                         global $charset, $dbcharset;
  16.                         if(!$dbcharset && in_array(strtolower($charset), array('gbk', 'big5', 'utf-8'))) {
  17.                                 $dbcharset = str_replace('-', '', $charset);
  18.                         }

  19.                         if($dbcharset) {
  20.                                 mysql_query("SET character_set_connection=$dbcharset, character_set_results=$dbcharset, character_set_client=binary");
  21.                         }

  22.                         if($this->version() > '5.0.1') {
  23.                                 mysql_query("SET sql_mode=''");
  24.                         }
  25.                 }

  26.                 if($dbname) {
  27.                         mysql_select_db($dbname);
  28.                 }

  29.         }

  30.         function select_db($dbname) {
  31.                 return mysql_select_db($dbname);
  32.         }

  33.         function fetch_array($query, $result_type = MYSQL_ASSOC) {
  34.                 return mysql_fetch_array($query, $result_type);
  35.         }

  36.         function query($sql, $type = '') {
  37.                 global $debug, $discuz_starttime, $sqldebug;


  38.                 $func = $type == 'UNBUFFERED' && @function_exists('mysql_unbuffered_query') ?
  39.                         'mysql_unbuffered_query' : 'mysql_query';
  40.                 if(!($query = $func($sql)) && $type != 'SILENT') {
  41.                         $this->halt('MySQL Query Error', $sql);
  42.                 }


  43.                 $this->querynum++;
  44.                 return $query;
  45.         }

  46.         function affected_rows() {
  47.                 return mysql_affected_rows();
  48.         }

  49.         function error() {
  50.                 return mysql_error();
  51.         }

  52.         function errno() {
  53.                 return intval(mysql_errno());
  54.         }

  55.         function result($query, $row) {
  56.                 $query = @mysql_result($query, $row);
  57.                 return $query;
  58.         }

  59.         function num_rows($query) {
  60.                 $query = mysql_num_rows($query);
  61.                 return $query;
  62.         }

  63.         function num_fields($query) {
  64.                 return mysql_num_fields($query);
  65.         }

  66.         function free_result($query) {
  67.                 return mysql_free_result($query);
  68.         }

  69.         function insert_id() {
  70.                 $id = mysql_insert_id();
  71.                 return $id;
  72.         }

  73.         function fetch_row($query) {
  74.                 $query = mysql_fetch_row($query);
  75.                 return $query;
  76.         }

  77.         function fetch_fields($query) {
  78.                 return mysql_fetch_field($query);
  79.         }

  80.         function version() {
  81.                 return mysql_get_server_info();
  82.         }

  83.         function close() {
  84.                 return mysql_close();
  85.         }

  86.         function halt($message = '', $sql = '') {
  87.                 return "db halt";
  88.         }
  89. }

  90. $dbhost = 'localhost';                        // database server
  91.                                         // 数据库服务器

  92. $dbuser = '';                        // database username
  93.                                         // 数据库用户名

  94. $dbpw = '';                        // database password
  95.                                         // 数据库密码

  96. $dbname = '';                        // database name
  97.                                         // 数据库名

  98. $adminemail = '';                // admin email
  99.                                         // 论坛系统 Email

  100. $dbreport = 0;                                // send db error report? 1=yes
  101.                                         // 是否发送数据库错误报告? 0=否, 1=是
  102. //上面其实就是dz里抄的代码
  103. $returnMessage = "";
  104. $db = new dbstuff;
  105. $db->connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect);
  106. unset($dbhost, $dbuser, $dbpw, $dbname, $pconnect);
  107. if ($_POST['message'] && $_POST['subject'] && $_POST['catid']){
  108.         $query = $db->query("SELECT subject FROM supe_spaceitems WHERE subject='".$_POST['subject']."'");
  109.         if ($data = $db->fetch_array($query)) {
  110.                 $returnMessage = "重复采集";
  111.         } else {
  112.                 //$_POST['message'] = strip_tags($_POST['message'],"<img>,<br>,<p>");
  113.                 $messageArray = explode("你定义的分页i符号",$_POST['message']);//5.0的分页和论坛的回复处理差不多。不知道5.5的分页处理是否还和5.0的一样。
  114.                 $catid = $_POST['catid'];
  115.                 $subject = $_POST['subject'];
  116.                 $from = $_POST['from']?$_POST['from']:"";
  117.                 $dateline = time();
  118.                 $uid = "";
  119.                
  120.                 $query = $db->query("INSERT INTO supe_spaceitems (catid,subject,uid,type,dateline,lastpost) VALUES ('$catid','$subject','$uid','news','$dateline','$dateline')");
  121.                 $itemid = $db->insert_id();
  122.                 foreach ($messageArray as $newMessage) {
  123.                         $query = $db->query("INSERT INTO supe_spacenews (itemid,message,newsfrom) VALUES ('$itemid','$newMessage','$from')");
  124.                 }
  125.                 $returnMessage = "成功";
  126.         }
  127. } else {
  128.         $returnMessage = "信息不全";
  129. }
  130. setcookie("user", "test", time() + 3600);
  131. setcookie("password", "test", time() + 3600);
  132. ?>
  133. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  134. <html xmlns="http://www.w3.org/1999/xhtml">
  135. <head>
  136. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  137. <title>无标题文档</title>
  138. </head>

  139. <body>
  140. 欢迎您回来

  141. <?=$returnMessage?>
  142. </body>
  143. </html>
复制代码


代码存为任意文件名php文件放入任意目录 作为提交页即可 没有安全机制检查 自己小心使用

错误或成功返回的信息为$returnMessage  (重复采集,信息不全,db halt,成功),你可以根据自己需要添加检测代码

不知道5.5的数据库变化大不大 自己可以参照官方的数据字典
$query = $db->query("INSERT INTO supe_spaceitems (catid,subject,uid,type,dateline,lastpost) VALUES ('$catid','$subject','$uid','news','$dateline','$dateline')");
$query = $db->query("INSERT INTO supe_spacenews (itemid,message,newsfrom) VALUES ('$itemid','$newMessage','$from')");

这2句是入库语句 其中涉及的字段可以参照官方的数据字典 和 你定义的火车头采集参数 修改
这是我以前采集的http://www.play528.com/club
http://www.play528.com/bthttp://www.play528.com/emule 也是用上面的采集代码改的
用了 5.5也未用过  请自己参考修改调试。

补充一句 : 栏目刷新页面可以使用网站地图页。如果需要全栏目,自己写个sql语句去读supe_categories

[ 本帖最后由 play528 于 2007-5-11 19:57 编辑 ]

评分

1

查看全部评分

发表于 2007-5-14 09:56:05 | 显示全部楼层
十分感谢!
您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

QQ|手机版|Archiver|火车采集器官方站 ( 皖ICP备06000549 )

GMT+8, 2026-3-31 07:51

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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