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

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

wordpress的自发布接口乱加 tag

[复制链接]
发表于 2011-7-3 15:23:09 | 显示全部楼层 |阅读模式
本帖最后由 iart 于 2011-7-3 15:24 编辑

接口把已有的tag随机加到文章中,该改什么地方“
  1. <?php
  2. /*********密码验证****************************/
  3. $password='jiekou';
  4. if($password!=$_POST['pw']) exit('验证密码错误!');
  5. //note 加载数据库配置文件
  6. include('wp-config.php');
  7. $dbhost=DB_HOST;
  8. $dbuser=DB_USER;
  9. $dbname=DB_NAME;
  10. $dbpw=DB_PASSWORD;
  11. $dbcharset = 'utf8';
  12. $charset = 'utf-8';      
  13. $tablepre=$table_prefix;

  14. /****以下代码非专业人员不建议修改***************/
  15. set_magic_quotes_runtime(0);
  16. define('MAGIC_QUOTES_GPC', get_magic_quotes_gpc());
  17. $timestamp=time();

  18. if(PHP_VERSION < '4.1.0') {
  19.         $_GET = &$HTTP_GET_VARS;
  20.         $_POST = &$HTTP_POST_VARS;
  21.         $_COOKIE = &$HTTP_COOKIE_VARS;
  22.         $_SERVER = &$HTTP_SERVER_VARS;
  23.         $_ENV = &$HTTP_ENV_VARS;
  24.         $_FILES = &$HTTP_POST_FILES;
  25. }

  26. if (isset($_REQUEST['GLOBALS']) OR isset($_FILES['GLOBALS'])) {
  27.         exit('Request tainting attempted.');
  28. }

  29. foreach(array('_COOKIE', '_POST', '_GET') as $_request) {
  30.         foreach($_request as $_key => $_value) {
  31.                 $_key{0} != '_' && $_key = daddslashes($_value);
  32.         }
  33. }

  34. if (!MAGIC_QUOTES_GPC && $_FILES) {
  35.         $_FILES = daddslashes($_FILES);
  36. }

  37. /*****************以下是核心的处理代码******************/
  38. extract($_POST,EXTR_OVERWRITE);// 获取POST过来的参数
  39. $db = new db($dbhost,$dbuser,$dbpw,$dbname,$charset,$dbcharset);
  40. if(empty($actiontype) || !in_array($actiontype, array('getcat', 'addcat', 'addartices'))){
  41.         exit("参数错误");
  42. }

  43. //note 获取所有分类
  44. if($actiontype == 'getcat'){
  45.         $sql = "SELECT tt.term_id,tt.term_taxonomy_id,t.name,tt.term_id,t.term_id,tt.taxonomy,tt.parent from ".$tablepre."terms t,".$tablepre."term_taxonomy tt where t.term_id=tt.term_id AND tt.taxonomy='category' ";
  46.         $cateinfo = $db->get_array($sql);// 获取所有分类
  47.         $ids = maketree($cateinfo,0,'');
  48.         echo substr($ids, 0, -1);
  49.         exit;
  50. }
  51. //note 添加分类
  52. if($actiontype == 'addcat'){
  53.         $namestring = iconv("gb2312", "UTF-8", $namestring);
  54.         if(empty($namestring)) exit('分类名不能为空');
  55.         $parent = $parent == '' ? 0 : $parent;
  56.         if($parent){
  57.                 $sql = "SELECT term_id FROM {$tablepre}term_taxonomy WHERE term_taxonomy_id='{$parent}' LIMIT 1";
  58.                 $parent_taxonomy = $db->fetch_first($sql);
  59.                 $parentid = $parent_taxonomy['term_id'];
  60.         }else{
  61.                 $parentid = 0;
  62.         }
  63.        
  64.         $name_arr = explode(",",$namestring);
  65.         foreach ($name_arr as $key => $name){
  66.                 if(!empty($name)){
  67.                         //note 判断分类是否已存在
  68.                         $sql = "SELECT term_id FROM {$tablepre}terms WHERE name='{$name}' LIMIT 1";
  69.                         $term_info = $db->fetch_first($sql);
  70.                         if($term_info['term_id']){
  71.                                 echo '此名已存在:' . $name . '<br/>';
  72.                                 continue;
  73.                         }
  74.                         $slug = urlencode($name);
  75.                         $sql = "INSERT INTO {$tablepre}terms SET name='{$name}',slug='{$slug}'";
  76.                         $result = $db->query($sql);
  77.                         $term_id = $db->insert_id();
  78.                        
  79.                         $sql = "INSERT INTO {$tablepre}term_taxonomy SET term_id='{$term_id}',taxonomy='category',parent='{$parentid}'";
  80.                         $result = $db->query($sql);
  81.                         if($result){
  82.                                 echo '添加分类<' . $name . '>成功<br/>';
  83.                                 continue;
  84.                         }else{
  85.                                 echo '添加分类<' . $name . '>失败<br/>';
  86.                                 continue;
  87.                         }
  88.                 }
  89.         }
  90. }
  91. //note 发布文章
  92. if($actiontype == 'addartices'){
  93.         $title = iconv("gb2312", "UTF-8", $title);
  94.         $content = iconv("gb2312", "UTF-8", $content);
  95.         $username = iconv("gb2312", "UTF-8", $username);
  96.         $post_excerpt = iconv("gb2312", "UTF-8", $excerpt);
  97.         $tags = iconv("gb2312", "UTF-8", $tags);
  98.         $post_mime_type = iconv("gb2312", "UTF-8", $mime_type);
  99.         if(!$title){
  100.                 exit('标题不能为空');
  101.         }
  102.         if(!$content){
  103.                 exit('内容不能为空');
  104.         }

  105.         //note 获得所有文章分类
  106.         $sql = "SELECT term_taxonomy_id FROM {$tablepre}term_taxonomy";
  107.         $catarr = $db->get_array($sql);
  108.         $catid_arr = array();
  109.         foreach ($catarr as $v){
  110.                 $catid_arr[] = $v['term_taxonomy_id'];
  111.         }
  112.         //note 如果没有发送分类或分类错误,则随机发布
  113.         if(empty($catid) || !in_array($catid, $catid_arr)){
  114.                 $key = mt_rand(0,count($catid_arr)-1);
  115.                 $catid = $catid_arr[$key];
  116.         }
  117.         //note 随机分配发布用户
  118.         $userinfo=$db->get_array("Select ID from {$tablepre}users");
  119.         $user_key = mt_rand(0,count($userinfo)-1);
  120.         $uid = $userinfo[$user_key]['ID'];
  121.        
  122.         //note 摘要
  123.         if(empty($post_excerpt)){
  124.                 $post_excerpt = substr(strip_tags($content), 0, 100);
  125.         }
  126.        
  127.         //note 发布文章
  128.         $post_date=date("Y-m-d H:i:s");
  129.         $name = urlencode($title);
  130.         $sql="INSERT INTO `".$tablepre."posts` ( `post_author`, `post_date`, `post_date_gmt`, `post_content`, `post_title`,`post_excerpt`, `post_status`, `comment_status`, `ping_status`, `post_password`, `post_name`, `to_ping`, `pinged`, `post_modified`, `post_modified_gmt`, `post_content_filtered`, `post_parent`, `guid`, `menu_order`, `post_type`, `post_mime_type`, `comment_count`) VALUES ('$uid', '$post_date', '$post_date', '$content', '$title', '$post_excerpt', 'publish', 'open', 'open', '', '$name', '', '', '$post_date', '$post_date', '$post_content_filtered', 0, '', '0', 'post', '$post_mime_type', '0')";
  131.         $query=$db->query($sql);
  132.         $postid=$db->insert_id();
  133.         $sqledit="INSERT INTO `".$tablepre."postmeta` (post_id ,meta_key ,meta_value ) VALUES ($postid,'_edit_lock','$timestamp'),($postid,'_edit_last',1)";
  134.         $query2=$db->query($sqledit);
  135.        
  136.         $sqlcid="INSERT INTO `".$tablepre."term_relationships` (object_id ,term_taxonomy_id ) VALUES ($postid,'$catid')";
  137.         $result=$db->query($sqlcid);
  138.         //note 更改分类的count
  139.         $sql_update="UPDATE {$tablepre}term_taxonomy SET count=count+1 WHERE term_taxonomy_id='{$catid}'";
  140.         $result=$db->query($sql_update);
  141.        
  142.         //note 处理文章标签
  143.         if($tags){
  144.                 $tagss= array_unique(explode(",",$tags));
  145.                 foreach($tagss as $var){
  146.                         $ssql="SELECT * from ".$tablepre."terms where name='$var' ";
  147.                         $squery=$db->fetch_first($ssql);
  148.                         if($squery){
  149.                                 $tagidss=$db->fetch_first($ssql);
  150.                                 $tagids=$tagidss['term_id'];
  151.                                 $gettagid="SELECT term_taxonomy_id,term_id from ".$tablepre."term_taxonomy where term_id='$tagids' ";
  152.                                 $gettag=$db->fetch_first($gettagid);
  153.                                 $tagid=$gettag['term_taxonomy_id'];
  154.                                 $sqltag="INSERT INTO `".$tablepre."term_relationships` (object_id ,term_taxonomy_id ) VALUES ($postid,'$tagid')";
  155.                                 $result=$db->query($sqltag);
  156.                         }else{
  157.                                 $uc=urlencode($var);
  158.                                 $addtag="INSERT INTO `".$tablepre."terms` (name,slug) VALUES ('$var','$uc')";
  159.                                 $addquery=$db->query($addtag);
  160.                                 $addtagid=$db->insert_id($addtag);
  161.                                 $addterm="INSERT INTO `".$tablepre."term_taxonomy` (term_id,taxonomy) VALUES ('$addtagid','post_tag')";
  162.                                 $termquery=$db->query($addterm);
  163.                                 $tagids=$db->insert_id();
  164.                                 $sqltag="INSERT INTO `".$tablepre."term_relationships` (object_id ,term_taxonomy_id ) VALUES ($postid,'$tagids')";
  165.                                 $result=$db->query($sqltag);
  166.                         }
  167.                 }
  168.         }
  169.         if($result){
  170.                 exit('发布成功');
  171.         }else{
  172.                 exit('发布失败');
  173.         }
  174. }
  175. exit;

  176. /***生成目录的一个遍历算法***/
  177. function maketree($ar,$id,$pre)
  178. {
  179.         $ids = '';
  180.         foreach($ar as $k=>$v){
  181.                 $fup=$v['parent'];
  182.                 $name=$v['name'];
  183.                 $fid=$v['term_id'];
  184.                 $term_taxonomy_id = $v['term_taxonomy_id'];
  185.                 if($fup==$id)
  186.                 {
  187.                         $ids.=$term_taxonomy_id . '|' . $pre . $name . '□';
  188.                         foreach($ar as $kk=>$vv)
  189.                         {
  190.                                 $pp=$vv['parent'];
  191.                                 if($pp==$fid)
  192.                                 {
  193.                                         $ids.=maketree($ar,$fid,$pre."--");
  194.                                         break;
  195.                                 }
  196.                         }
  197.                 }
  198.         }
  199.         return $ids;
  200. }

  201. /****************************以下为公共类库及函数库******************************/
  202. function daddslashes($string, $force = 0) {
  203.         !defined('MAGIC_QUOTES_GPC') && define('MAGIC_QUOTES_GPC', get_magic_quotes_gpc());
  204.         if(!MAGIC_QUOTES_GPC || $force) {
  205.                 if(is_array($string)) {
  206.                         foreach($string as $key => $val) {
  207.                                 $string[$key] = daddslashes($val, $force);
  208.                         }
  209.                 } else {
  210.                         $string = addslashes($string);
  211.                 }
  212.         }
  213.         return $string;
  214. }


  215. /*当前为数据库操作类库*/
  216. class db {

  217.         var $mlink;

  218.         function db($dbhost, $dbuser, $dbpw, $dbname = '',$charset='gbk',$dbcharset='gbk', $pconnect=0){
  219.                 if($pconnect){
  220.                         if(!$this->mlink = @mysql_pconnect($dbhost, $dbuser, $dbpw)){
  221.                                 $this->halt('Can not connect to MySQL');
  222.                         }
  223.                 } else {
  224.                         if(!$this->mlink = @mysql_connect($dbhost, $dbuser, $dbpw)){
  225.                                 $this->halt('Can not connect to MySQL');
  226.                         }
  227.                 }
  228.                 if($this->version()>'4.1'){
  229.                         if('utf-8'==strtolower($dbcharset)){
  230.                                 $dbcharset='utf8';
  231.                         }
  232.                         if($dbcharset){
  233.                                 mysql_query("SET character_set_connection=$dbcharset, character_set_results=$dbcharset, character_set_client=binary", $this->mlink);
  234.                         }
  235.                         if($charset){
  236.                                 mysql_query("SET $charset", $this->mlink);
  237.                         }
  238.                        
  239.                         if($this->version() > '5.0.1'){
  240.                                 mysql_query("SET sql_mode=''", $this->mlink);
  241.                         }
  242.                 }
  243.                 if($dbname){
  244.                         mysql_select_db($dbname, $this->mlink);
  245.                 }
  246.         }

  247.         function select_db($dbname){
  248.                 return mysql_select_db($dbname, $this->mlink);
  249.         }
  250.        
  251.         function get_array($sql){
  252.                 $list = array();
  253.                 $query=$this->query($sql);
  254.                 while($row=$this->fetch_array($query)){
  255.                         $list[]=$row;
  256.                 }
  257.                 return $list;
  258.         }
  259.        
  260.         function fetch_array($query, $result_type = MYSQL_ASSOC){
  261.                 return (is_resource($query))? mysql_fetch_array($query, $result_type) :false;
  262.         }

  263.         function result_first($sql){
  264.                 $query = $this->query($sql);
  265.                 return $this->result($query, 0);
  266.         }

  267.         function fetch_first($sql){
  268.                 $query = $this->query($sql);
  269.                 return $this->fetch_array($query);
  270.         }
  271.        
  272.        
  273.         function fetch_total($table,$where='1'){
  274.                 return $this->result_first("SELECT COUNT(*) num FROM ".DB_TABLEPRE."$table WHERE $where");
  275.         }
  276.        
  277.         function query($sql, $type = ''){
  278.                 global $mquerynum;
  279.                 $func = $type == 'UNBUFFERED' && @function_exists('mysql_unbuffered_query') ? 'mysql_unbuffered_query' : 'mysql_query';
  280.                 if(!($query = $func($sql, $this->mlink)) && $type != 'SILENT'){
  281.                         $this->halt("MySQL Query Error",'TRUE',$sql);
  282.                 }
  283.                 $mquerynum++;
  284.                 return $query;
  285.         }

  286.         function affected_rows(){
  287.                 return mysql_affected_rows($this->mlink);
  288.         }

  289.         function error(){
  290.                 return (($this->mlink) ? mysql_error($this->mlink) : mysql_error());
  291.         }

  292.         function errno(){
  293.                 return intval(($this->mlink) ? mysql_errno($this->mlink) : mysql_errno());
  294.         }

  295.         function result($query, $row){
  296.                 $query = @mysql_result($query, $row);
  297.                 return $query;
  298.         }

  299.         function num_rows($query){
  300.                 $query = mysql_num_rows($query);
  301.                 return $query;
  302.         }

  303.         function num_fields($query){
  304.                 return mysql_num_fields($query);
  305.         }

  306.         function free_result($query){
  307.                 return mysql_free_result($query);
  308.         }

  309.         function insert_id(){
  310.                 return ($id = mysql_insert_id($this->mlink)) >= 0 ? $id : $this->result($this->query('SELECT last_insert_id()'), 0);
  311.         }

  312.         function fetch_row($query){
  313.                 $query = mysql_fetch_row($query);
  314.                 return $query;
  315.         }

  316.         function fetch_fields($query){
  317.                 return mysql_fetch_field($query);
  318.         }

  319.         function version(){
  320.                 return mysql_get_server_info($this->mlink);
  321.         }

  322.         function close(){
  323.                 return mysql_close($this->mlink);
  324.         }

  325.         function halt($msg, $debug=true, $sql=''){
  326.                 @ini_set("date.timezone","Asia/Shanghai");
  327.                 $output .="<html>\n<head>\n";
  328.                 $output .="<meta http-equiv="Content-Type" content="text/html; charset=".$charset."">\n";
  329.                 $output .="<title>$msg</title>\n";
  330.                 $output .="</head>\n<body><table>";
  331.                 $output .="<b>MySql Error Info</b><table><tr><td width='100px'><b>Message</b></td><td>$msg</td></tr>\n";
  332.                 $output .="<tr><td><b>Time</b></td><td>".date("Y-m-d H:i:s")."<br /></td></tr>\n";
  333.                 $output .="<tr><td><b>Script</b></td><td> ".$_SERVER['PHP_SELF']."<br /></td></tr>\n\n";
  334.                 $output .="<tr><td><b>SQL</b></td><td> ".htmlspecialchars($sql)."<br />\n</td></tr><tr><td><b>Error</b></td><td>  ".$this->error()."</td></tr><br />\n";
  335.                 $output .="<tr><td><b>Errno.</b></td><td>  ".$this->errno()."</td></tr></table>";
  336.                 $output .="\n</body></html>";
  337.                 echo $output;
  338.                 exit();
  339.         }
  340. }
  341. ?>
复制代码
发表于 2012-8-8 11:55:25 | 显示全部楼层
本帖最后由 anyone 于 2012-8-8 11:58 编辑

$tags = iconv("gb2312", "UTF-8", $tags);    这个不就是tag了么

不过要放在文章里,那就需要再内容的规则中,进行便签混合,但是不能随机
您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

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

GMT+8, 2024-11-15 01:45

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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