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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[发布] 10.1日更新 自动获取[img]贴图到本地服务器并加水印 FOR 5.0 正式版

[复制链接]
yize007 发表于 2006-9-27 22:37:13 | 显示全部楼层
原帖由 天下寻龙 于 2006-9-14 13:36 发表
无效的朋友先在你BBS根目录里新建一个getimg文件夹,不行你打我!



哥们太谢谢你了,原来无效,建个目录就好了,真的谢谢你!
回复

使用道具 举报

xyao 发表于 2006-9-28 07:47:01 | 显示全部楼层
原来装过一个类似的,但是一看代码没对文件类型有判断,试了试居然能够把远程的php文件保存到论坛,还有绝对路径地址。这不是给人送webshell么……
回复

使用道具 举报

琴剑飘零 发表于 2006-9-28 09:51:00 | 显示全部楼层
自动获取[img]转贴当中的图片到本地服务器并加水印 FOR 4.10 版有没有啊?


等待中...
回复

使用道具 举报

sd7089852 发表于 2006-9-28 10:09:08 | 显示全部楼层
留位```````
回复

使用道具 举报

 楼主| 缘亦如此 发表于 2006-9-28 10:32:44 | 显示全部楼层
原帖由 xyao 于 2006-9-28 07:47 发表
原来装过一个类似的,但是一看代码没对文件类型有判断,试了试居然能够把远程的php文件保存到论坛,还有绝对路径地址。这不是给人送webshell么……



你有没有试过这个,这和你以前的不一样的,jpg','gif','jpeg','bmp','png只有这几种格式才可保存!
回复

使用道具 举报

prettyfhk 发表于 2006-9-28 19:31:25 | 显示全部楼层
呵呵!好用
http://www.very521.com

大家可以试一下

[ 本帖最后由 prettyfhk 于 2006-9-28 19:45 编辑 ]
回复

使用道具 举报

 楼主| 缘亦如此 发表于 2006-9-29 15:20:24 | 显示全部楼层
原帖由 prettyfhk 于 2006-9-28 19:31 发表
呵呵!好用
http://www.very521.com

大家可以试一下


谢谢支持!
回复

使用道具 举报

河科人 发表于 2006-9-29 16:47:27 | 显示全部楼层

image.inc.php内容如下,安装后,发帖没有数据库统计和转向了

  1. <?
  2. function WaterMark($target){
  3.         $watermark_file = './images/common/watermark.gif';
  4.         $attachinfo        = getimagesize($target);
  5.         $watermark_logo = imageCreateFromGIF($watermark_file);
  6.         $logo_w                = imageSX($watermark_logo);
  7.         $logo_h                = imageSY($watermark_logo);
  8.         $img_w                = $attachinfo[0];
  9.         $img_h                = $attachinfo[1];
  10.         $wmwidth        = $img_w - $logo_w;
  11.         $wmheight        = $img_h - $logo_h;
  12.         if($attachinfo['mime'] == 'image/gif') {
  13.                 return true;
  14.         }else{
  15.                 if(is_readable($watermark_file) && $wmwidth > 100 && $wmheight > 100) {
  16.                 switch ($attachinfo['mime']) {
  17.                         case 'image/jpeg':
  18.                                 $dst_photo = imageCreateFromJPEG($target);
  19.                                 break;               
  20.                         case 'image/png':
  21.                                 $dst_photo = imageCreateFromPNG($target);
  22.                                 break;
  23.                         default:
  24.                                        return true;
  25.                 }
  26.                 $x = 10;//水印位置
  27.                 $y = 10;
  28.                
  29.                 imageAlphaBlending($watermark_logo, true);
  30.                 imageCopyMerge($dst_photo, $watermark_logo, $x,        $y, 0, 0, $logo_w, $logo_h, 100);
  31.                 switch($attachinfo['mime']) {
  32.                                 case 'image/jpeg':
  33.                                         imageJPEG($dst_photo, $target);
  34.                                         break;                       
  35.                                 case 'image/png':
  36.                                         imagePNG($dst_photo, $target);
  37.                                         break;             
  38.                         }
  39.                         return true;
  40.        
  41.         }
  42.        
  43.        
  44. }
  45. }
  46. function Copyimg($nurl){
  47.        
  48.         $imghost='http://www.hekeren.com/discuz/';
  49.         $Copydir='./attachments/getimg/';
  50.         $watermark=1;//是否加水印
  51.         $imgdate=Gmdate("y-m",time()+3600*8);       
  52.         $ext=strtolower(trim(substr(strrchr($nurl, '.'), 1)));
  53.        
  54.         if(!in_array($ext,array('jpg','gif','jpeg','bmp','png')))return $nurl;
  55.         $flag=true;       
  56.         $host=array(
  57.                 1=>'hekeren.com',
  58.                 2=>'zcever.com',
  59.                 3=>'www.hekeren.com'
  60.                 );
  61.                 //以上主机下的图片不copy
  62.         foreach($host as $key =>$value){
  63.                 if(strstr ($nurl, $value))$flag=false;       
  64.                
  65.         }
  66.         if($flag){
  67.                 @CK_mkdir($Copydir.$imgdate);
  68.                 $filename=$Copydir.$imgdate.'/'.md5($nurl).'.'.$ext;
  69.                 if(@doWriteToimg($filename,$nurl)){
  70.                         $nurl=$imghost.$filename;
  71.                         if(in_array($ext,array('jpg','jpeg','png'))&&$watermark)WaterMark($filename);
  72.                 }
  73.                 return $nurl;
  74.         }else{
  75.                 return $nurl;
  76.         }
  77.        
  78.                
  79.        
  80. }
  81. function doWriteToimg ($fileName,$imgurl,$method="w") {                
  82.         //echo $nurl;
  83.         @chmod($fileName,0777);
  84.         if (file_exists($fileName)) {
  85.               return true;
  86.         }
  87.         $data=ReadImg($imgurl);
  88.         if(!$data)return false;
  89.         if(!$f=@fopen($fileName,$method))return false;

  90.         @flock($f,LOCK_EX);

  91.         $fileData=@fwrite($f,$data);

  92.         @fclose($f);

  93.         return $fileData;
  94. }
  95. function ReadImg($url){
  96.         //echo $url;
  97.         if(!$str=file_get_contents($url)){
  98.                 $temp= parse_url($url);        
  99.                 $host=$temp[host];
  100.                 $port=$temp[port]?$temp[port]:80;
  101.                 $referer=$host;        
  102.                 $fp = fsockopen($host,$port, $errno, $errstr, 30);
  103.                 if (!$fp) {
  104.                    echo "$errstr ($errno)<br />\n";
  105.                 } else {
  106.                    $out = "GET ".$url." HTTP/1.1\r\n";
  107.                    $out .= "Host: $host\r\n";
  108.                    $out .= "Referer: $referer\r\n";
  109.                    $out .= "Connection: Close\r\n\r\n";               
  110.                    fputs($fp, $out);
  111.                         while(!feof($fp))
  112.                                 {                                       
  113.                                         $temp=fgets($fp,1024);
  114.                                         $str=$str.$temp;
  115.                                         }
  116.                    fclose($fp);
  117.                 }               
  118.         }
  119.         return $str;               
  120. }

  121. function Checkimg($str){
  122.         $exp1='[img]';
  123.         $exp2='[/img]';
  124.         //echo $str;
  125.         $r = explode ($exp1, $str);
  126.         $text=$r[0];
  127.          for ($i = 1; $i < count ($r); ++$i)
  128.             {
  129.               $r1 = explode ($exp2, $r[$i]);
  130.               if ((strstr ($r1[0], 'http://') OR strstr ($r1[0], 'https://')))
  131.               {
  132.                 $dourl = $r1[0];
  133.                 $nurl=Copyimg($dourl);
  134.                   $text.=$exp1.$nurl.$exp2.$r1[1];
  135.               }else{
  136.                        $text.=$exp1.$r1[0].$exp2.$r1[1];
  137.               }
  138.         }
  139.         return $text;
  140. }
  141. function CK_mkdir($htmldir){

  142.         if (file_exists($htmldir)) {

  143.               return;

  144.         } else {

  145.            @mkdir($htmldir,0777);

  146.           @fclose(fopen($htmldir.'/index.htm', 'w'));

  147.         }       

  148.         return;

  149.        

  150. }
  151. ?>
复制代码
回复

使用道具 举报

M55 发表于 2006-9-29 22:02:06 | 显示全部楼层

ok!



[ 本帖最后由 M55 于 2006-10-1 02:33 编辑 ]
回复

使用道具 举报

 楼主| 缘亦如此 发表于 2006-10-1 00:35:28 | 显示全部楼层
10.1日00:30之前安装的请注意:
已经修复上传过大文件导致服务器当掉问题,请重新下载附件上传到include目录覆盖原文件即可
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 20:00 , Processed in 0.080103 second(s), 2 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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