投票系统防刷代码

 更新时间:2016年11月25日 16:31  点击:1909

投票系统防刷代码

$value =$this->host;     
   if(empty($_COOKIE["cook"])){
     setcookie("cook", $value, time()+1800, "/"); 
     $v_host = $this->host;   
     $v_ip = $this->get_real_ip();     
     $v_date =date("Y-m-d");   
     $v_array=explode("-",$v_date);   
     $v_mad =$v_array[1].$v_array[2];   
     $v_sql ="Select * from su_votes where v_domain='$v_host' and v_ip='$v_ip' and v_mad='$v_mad'";
     $r  =mysql_query($v_sql) or die("Error system busy.....plase wait!");
     $rs  =mysql_fetch_array($r);
     if(mysql_num_rows($r)){www.111cn.net
       $qq  =mysql_query("Select * from des where v_domain='$v_host' and v_ip='$v_ip' and v_votes<=7  and v_mad='$v_mad'") or die('aa');
       if(mysql_num_rows($qq)){
        mysql_query("update f set visited=visited+1 where id=$this->u_id");
        mysql_query("update g set v_votes=v_votes+1 where v_domain='$v_host' and v_ip='$v_ip' and v_votes<=7  and v_mad='$v_mad'");
       } www.111cn.net
     }else{ 
       mysql_query("insert into su_votes(v_domain,v_ip,v_date,v_votes,v_today,v_mad)value('$v_host','$v_ip','$v_date',0,1,'$v_mad')");
       mysql_query("update g set visited=visited+1 where id=$this->u_id");
     }   
   } www.111cn.net
  */
  @mysql_query("update g set visited=visited+1 where id=$this->u_id");
 }

 /*
  get real IP
 */
 function lock_user_ip(){
 $Usql =mysql_query("select * from su_lockip");
 $Urs =mysql_fetch_array($Usql);
 $UlockIp=$Urs['lockip'];
 $ClockIp=$this->get_real_ip();
 $Iplist =explode('|',$UlockIp);
 if(in_array($ClockIp,$Iplist)){
  exit('sorry system lock your IP');
 }
 }
 
 function get_real_ip(){
   $ip=false;
   if(!empty($_SERVER["HTTP_CLIENT_IP"])){
    $ip = $_SERVER["HTTP_CLIENT_IP"];
   }
   if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
    if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }
    for ($i = 0; $i < count($ips); $i++) {
     if (!eregi ("^(10|172\.16|192\.168)\.", $ips[$i])) {
      $ip = $ips[$i];
      break;
     }
    }
   }
   return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
 }

 代码如下 复制代码

 

<?php

class Uploader
{
    var $_base_dir = null;
    var $_rel_dir = null;
    var $_random_fname = false;
    var $_random_fname_len = 5;
    var $_fname_filter = null;
    var $_ftype_filter = null;
    var $_origin_paths = array();

    function Uploader( $base_dir, $rel_dir )
    {
        $this->_base_dir = $base_dir;
        $this->_rel_dir = $rel_dir;
    }
    function setRandomFileName($random_fname, $random_fname_len=5)
    {
        $this->_random_fname = $random_fname;
        $this->_random_fname_len = $random_fname_len;
    }
    function setFileTypeFilter($filter)
    {
        $this->_ftype_filter = $filter;
    }
    function addFile($file, $origin_path='')
    {
        $file = trim($file);
        $origin_path = trim($origin_path);
        if( array_key_exists($file, $this->_origin_paths) )
            return;
        $this->_origin_paths[$file] = $origin_path;
    }
    function upload()
    {
        foreach( $this->_origin_paths as $file => $origin_path )
        {
            $result = $this->_uploadFile($file, $origin_path);

            if( $result != 'Success' )
                return $result;
        }
        return 'Success';
    }
     /*
      * @desc   上传附件
      * @return  成功返回Success 失败返回失败类型
      * @param   $file 文件名 $orgin_path 文件路径
      */
    function _uploadFile($file, $origin_path)  //上传附件
    {
        $ffile = $_FILES[$file]['tmp_name'];     //文件被上传后在服务端储存的临时文件名。
        $fname = $_FILES[$file]['name'];         //客户端机器文件的原名称。
        $fsize = $_FILES[$file]['size'];         //已上传文件的大小
        $ftype = $_FILES[$file]['type'];         //文件的 MIME 类型
        $new_path = '';
       
        if( !empty($fname) && is_uploaded_file($ffile) )
        {
            if( !empty($this->_ftype_filter) && !is_null($this->_ftype_filter) )
            {
                $match = false;
                $extensions = explode(',', $this->_ftype_filter);
                foreach($extensions as $extension)
                {
                    if( strtolower(strrchr($fname,'.')) == '.'.strtolower(trim($extension)) )
                    {
                        $match  = true;
                        break;
                    }
                }
                if( !$match )
                    return 'ErrorFileTypeFilterNotMatch';
            }
            $fpath = $this->_base_dir . $this->_rel_dir;
            if( $this->_random_fname )
             $fname = $this->_getUniqueFileName($fname, $this->_random_fname_len);
            copy( $ffile, $fpath . $fname ) or die( 'upload failed!' );
            $new_path = $this->_rel_dir . $fname;
        }
        if( !empty($origin_path) && !empty($new_path) && $origin_path!=$new_path )
        {
            $this->delete($origin_path);
        }
        if( !empty($new_path) )
            $this->_origin_paths[$file] = $new_path;            
        $Erroe=$_FILES[$file]['error'];   
        switch($Erroe){
          case 1:
              return 'ErrExceedUploadMaxFileSize';
              break;
          case 2:
              return 'ErrExceedHtmlMaxFileSize';
              break;
          case 3:
              return 'ErrPartFileTrans';
              break;
//          case 4:
//              return 'ErrNoFileTrans';
//              break;
          default:
             return 'Success';
        }     
    }
     /*
      * @desc   取得路径 
      * @return  路径
      * @param   无
      */
    function getFilePath()
    {
        return $this->_origin_paths;
    }
    function getFileAbsPath()
    {
        $paths = array();
        foreach( $this->_origin_paths as $path )
        {
            $paths[] = $this->_base_dir . $path;
        }
        return $paths;
    }
    function delete( $fpath )
    {
        if( !empty($fpath) && is_file($this->_base_dir . $fpath) )
            unlink( $this->_base_dir . $fpath ) or die( 'unlink error' );
    }
    function _getUniqueFileName( $fname, $len )
    {
        $timestamp = date('YmdHis');
        srand((double)microtime()*1000000);
        for( $i=0, $randfname=''; $i<$len; $i++ )
        {
            $num = rand(0, 35);
            if( $num < 10 )
                $randfname .=  chr( ord('0')+$num );
            else
                $randfname .=  chr( ord('a')+$num-10 );
        }
        return $timestamp.'_'.$randfname.strtolower(strrchr($fname,'.'));
    }
}
?>

<?php
   /*   ClassName: ImageHandler
    *   Filename:  ImageHandler.phpcls
    *   Author:    Tony Don
    *   Date:      2008-03-27
    *   @Copyright txdnet.com
    *   Function:  Handler Images
    */
 
class ImageHandler
{
    var $dst_img;// 目标文件
    var $h_src; // 图片资源句柄
    var $h_dst;// 新图句柄
    var $h_mask;// 水印句柄
    var $img_create_quality = 100;// 图片生成质量
    var $img_display_quality = 80;// 图片显示质量,默认为75
    var $img_scale = 0;// 图片缩放比例
    var $src_w = 0;// 原图宽度
    var $src_h = 0;// 原图高度
    var $dst_w = 0;// 新图总宽度
    var $dst_h = 0;// 新图总高度
    var $fill_w;// 填充图形宽
    var $fill_h;// 填充图形高
    var $copy_w;// 拷贝图形宽
    var $copy_h;// 拷贝图形高
    var $src_x = 0;// 原图绘制起始横坐标
    var $src_y = 0;// 原图绘制起始纵坐标
    var $start_x;// 新图绘制起始横坐标
    var $start_y;// 新图绘制起始纵坐标
    var $mask_word;// 水印文字
    var $mask_img;// 水印图片
    var $mask_pos_x = 0;// 水印横坐标
    var $mask_pos_y = 0;// 水印纵坐标
    var $mask_offset_x = 5;// 水印横向偏移
    var $mask_offset_y = 5;// 水印纵向偏移
    var $font_w;// 水印字体宽
    var $font_h;// 水印字体高
    var $mask_w;// 水印宽
    var $mask_h;// 水印高
    var $mask_font_color = "#000000";// 水印文字颜色
    var $mask_font = 5;// 水印字体
    var $font_size;// 尺寸
    var $mask_position = 0;// 水印位置
    var $mask_img_pct = 50;// 图片合并程度,值越大,合并程序越低
    var $mask_txt_pct = 50;// 文字合并程度,值越小,合并程序越低
    var $img_border_size = 0;// 图片边框尺寸
    var $img_border_color;// 图片边框颜色
    var $_flip_x=0;// 水平翻转次数
    var $_flip_y=0;// 垂直翻转次数
    var $cut_type=0;// 剪切或缩小类型
    var $img_type;// 文件类型
 
    // 文件类型定义,并指出了输出图片的函数
    var $all_type = array(
        "jpg"  => array("output"=>"imagejpeg"),
        "gif"  => array("output"=>"imagegif"),
        "png"  => array("output"=>"imagepng"),
        "wbmp" => array("output"=>"image2wbmp"),
        "jpeg" => array("output"=>"imagejpeg"));
    /**
     * 构造函数
     */
    function ImageHandler()
    {
        $this->mask_font_color = "#ffffff";
        $this->font = 2;
        $this->font_size = 12;
    }
    /**
     * 取得图片的宽
     */
    function getImgWidth($src)
    {
        return imagesx($src);
    }
    /**
     * 取得图片的高
     */
    function getImgHeight($src)
    {
        return imagesy($src);
    }
    /**
     * 设置图片生成路径
     *
     * @param    string    $src_img   图片生成路径
     */
    function setSrcImg($src_img, $img_type=null)
    {
        if(!file_exists($src_img))
        {
            die("图片不存在");
        }
       
        if(!empty($img_type))
        {
            $this->img_type = $img_type;
        }
        else
        {
            $this->img_type = $this->_getImgType($src_img);
        }
       
        $this->_checkValid($this->img_type);
 
        // file_get_contents函数要求php版本>4.3.0
        $src = '';
        if(function_exists("file_get_contents"))
        {
            $src = file_get_contents($src_img);
        }
        else
        {
            $handle = fopen ($src_img, "r");
            while (!feof ($handle))
            {
                $src .= fgets($fd, 4096);
            }
            fclose ($handle);
        }
        if(empty($src))
        {
            die("图片源为空");
        }
        $this->h_src = @ImageCreateFromString($src);
        $this->src_w = $this->getImgWidth($this->h_src);
        $this->src_h = $this->getImgHeight($this->h_src);
    }
 
    /**
     * 设置图片生成路径
     *
     * @param    string    $dst_img   图片生成路径
     */
    function setDstImg($dst_img)
    {
        $arr  = explode('/',$dst_img);
        $last = array_pop($arr);
        $path = implode('/',$arr);
        $this->_mkdirs($path);
        $this->dst_img = $dst_img;
    }
 
    /**
     * 设置图片的显示质量
     *
     * @param    string      $n    质量
     */
    function setImgDisplayQuality($n)
    {
        $this->img_display_quality = (int)$n;
    }
 
    /**
     * 设置图片的生成质量
     *
     * @param    string      $n    质量
     */
    function setImgCreateQuality($n)
    {
        $this->img_create_quality = (int)$n;
    }
 
    /**
     * 设置文字水印
     *
     * @param    string     $word    水印文字
     * @param    integer    $font    水印字体
     * @param    string     $color   水印字体颜色
     */
    function setMaskWord($word)
    {
        $this->mask_word .= $word;
    }
 
    /**
     * 设置字体颜色
     *
     * @param    string     $color    字体颜色
     */
    function setMaskFontColor($color="#ffffff")
    {
        $this->mask_font_color = $color;
    }
 
   ?>


<?
//世纪万年历
#这是唯一的设置-请输入php文件的位置
$file=$_SERVER['PHP_SELF'];
//农历每月的天数
$everymonth=array(
0=>array(8,0,0,0,0,0,0,0,0,0,0,0,29,30,7,1),
1=>array(0,29,30,29,29,30,29,30,29,30,30,30,29,0,8,2),
2=>array(0,30,29,30,29,29,30,29,30,29,30,30,30,0,9,3),
3=>array(5,29,30,29,30,29,29,30,29,29,30,30,29,30,10,4),
4=>array(0,30,30,29,30,29,29,30,29,29,30,30,29,0,1,5),
5=>array(0,30,30,29,30,30,29,29,30,29,30,29,30,0,2,6),
6=>array(4,29,30,30,29,30,29,30,29,30,29,30,29,30,3,7),
7=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,4,8),
8=>array(0,30,29,29,30,30,29,30,29,30,30,29,30,0,5,9),
9=>array(2,29,30,29,29,30,29,30,29,30,30,30,29,30,6,10),
10=>array(0,29,30,29,29,30,29,30,29,30,30,30,29,0,7,11),
11=>array(6,30,29,30,29,29,30,29,29,30,30,29,30,30,8,12),
12=>array(0,30,29,30,29,29,30,29,29,30,30,29,30,0,9,1),
13=>array(0,30,30,29,30,29,29,30,29,29,30,29,30,0,10,2),
14=>array(5,30,30,29,30,29,30,29,30,29,30,29,29,30,1,3),
15=>array(0,30,29,30,30,29,30,29,30,29,30,29,30,0,2,4),
16=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,3,5),
17=>array(2,30,29,29,30,29,30,30,29,30,30,29,30,29,4,6),
18=>array(0,30,29,29,30,29,30,29,30,30,29,30,30,0,5,7),
19=>array(7,29,30,29,29,30,29,29,30,30,29,30,30,30,6,8),
20=>array(0,29,30,29,29,30,29,29,30,30,29,30,30,0,7,9),
21=>array(0,30,29,30,29,29,30,29,29,30,29,30,30,0,8,10),
22=>array(5,30,29,30,30,29,29,30,29,29,30,29,30,30,9,11),
23=>array(0,29,30,30,29,30,29,30,29,29,30,29,30,0,10,12),
24=>array(0,29,30,30,29,30,30,29,30,29,30,29,29,0,1,1),
25=>array(4,30,29,30,29,30,30,29,30,30,29,30,29,30,2,2),
26=>array(0,29,29,30,29,30,29,30,30,29,30,30,29,0,3,3),
27=>array(0,30,29,29,30,29,30,29,30,29,30,30,30,0,4,4),
28=>array(2,29,30,29,29,30,29,29,30,29,30,30,30,30,5,5),
29=>array(0,29,30,29,29,30,29,29,30,29,30,30,30,0,6,6),
30=>array(6,29,30,30,29,29,30,29,29,30,29,30,30,29,7,7),
31=>array(0,30,30,29,30,29,30,29,29,30,29,30,29,0,8,8),
32=>array(0,30,30,30,29,30,29,30,29,29,30,29,30,0,9,9),
33=>array(5,29,30,30,29,30,30,29,30,29,30,29,29,30,10,10),
34=>array(0,29,30,29,30,30,29,30,29,30,30,29,30,0,1,11),
35=>array(0,29,29,30,29,30,29,30,30,29,30,30,29,0,2,12),
36=>array(3,30,29,29,30,29,29,30,30,29,30,30,30,29,3,1),
37=>array(0,30,29,29,30,29,29,30,29,30,30,30,29,0,4,2),
38=>array(7,30,30,29,29,30,29,29,30,29,30,30,29,30,5,3),
39=>array(0,30,30,29,29,30,29,29,30,29,30,29,30,0,6,4),
40=>array(0,30,30,29,30,29,30,29,29,30,29,30,29,0,7,5),
41=>array(6,30,30,29,30,30,29,30,29,29,30,29,30,29,8,6),
42=>array(0,30,29,30,30,29,30,29,30,29,30,29,30,0,9,7),
43=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,10,8),
44=>array(4,30,29,30,29,30,29,30,29,30,30,29,30,30,1,9),
45=>array(0,29,29,30,29,29,30,29,30,30,30,29,30,0,2,10),
46=>array(0,30,29,29,30,29,29,30,29,30,30,29,30,0,3,11),
47=>array(2,30,30,29,29,30,29,29,30,29,30,29,30,30,4,12),
48=>array(0,30,29,30,29,30,29,29,30,29,30,29,30,0,5,1),
49=>array(7,30,29,30,30,29,30,29,29,30,29,30,29,30,6,2),
50=>array(0,29,30,30,29,30,30,29,29,30,29,30,29,0,7,3),
51=>array(0,30,29,30,30,29,30,29,30,29,30,29,30,0,8,4),
52=>array(5,29,30,29,30,29,30,29,30,30,29,30,29,30,9,5),
53=>array(0,29,30,29,29,30,30,29,30,30,29,30,29,0,10,6),
54=>array(0,30,29,30,29,29,30,29,30,30,29,30,30,0,1,7),
55=>array(3,29,30,29,30,29,29,30,29,30,29,30,30,30,2,8),
56=>array(0,29,30,29,30,29,29,30,29,30,29,30,30,0,3,9),
57=>array(8,30,29,30,29,30,29,29,30,29,30,29,30,29,4,10),
58=>array(0,30,30,30,29,30,29,29,30,29,30,29,30,0,5,11),
59=>array(0,29,30,30,29,30,29,30,29,30,29,30,29,0,6,12),
60=>array(6,30,29,30,29,30,30,29,30,29,30,29,30,29,7,1),
61=>array(0,30,29,30,29,30,29,30,30,29,30,29,30,0,8,2),
62=>array(0,29,30,29,29,30,29,30,30,29,30,30,29,0,9,3),
63=>array(4,30,29,30,29,29,30,29,30,29,30,30,30,29,10,4),
64=>array(0,30,29,30,29,29,30,29,30,29,30,30,30,0,1,5),
65=>array(0,29,30,29,30,29,29,30,29,29,30,30,29,0,2,6),
66=>array(3,30,30,30,29,30,29,29,30,29,29,30,30,29,3,7),
67=>array(0,30,30,29,30,30,29,29,30,29,30,29,30,0,4,8),
68=>array(7,29,30,29,30,30,29,30,29,30,29,30,29,30,5,9),
69=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,6,10),
70=>array(0,30,29,29,30,29,30,30,29,30,30,29,30,0,7,11),
71=>array(5,29,30,29,29,30,29,30,29,30,30,30,29,30,8,12),
72=>array(0,29,30,29,29,30,29,30,29,30,30,29,30,0,9,1),
73=>array(0,30,29,30,29,29,30,29,29,30,30,29,30,0,10,2),
74=>array(4,30,30,29,30,29,29,30,29,29,30,30,29,30,1,3),
75=>array(0,30,30,29,30,29,29,30,29,29,30,29,30,0,2,4),
76=>array(8,30,30,29,30,29,30,29,30,29,29,30,29,30,3,5),
77=>array(0,30,29,30,30,29,30,29,30,29,30,29,29,0,4,6),
78=>array(0,30,29,30,30,29,30,30,29,30,29,30,29,0,5,7),
79=>array(6,30,29,29,30,29,30,30,29,30,30,29,30,29,6,8),
80=>array(0,30,29,29,30,29,30,29,30,30,29,30,30,0,7,9),
81=>array(0,29,30,29,29,30,29,29,30,30,29,30,30,0,8,10),
82=>array(4,30,29,30,29,29,30,29,29,30,29,30,30,30,9,11),
83=>array(0,30,29,30,29,29,30,29,29,30,29,30,30,0,10,12),
84=>array(10,30,29,30,30,29,29,30,29,29,30,29,30,30,1,1),
85=>array(0,29,30,30,29,30,29,30,29,29,30,29,30,0,2,2),
86=>array(0,29,30,30,29,30,30,29,30,29,30,29,29,0,3,3),
87=>array(6,30,29,30,29,30,30,29,30,30,29,30,29,29,4,4),
88=>array(0,30,29,30,29,30,29,30,30,29,30,30,29,0,5,5),
89=>array(0,30,29,29,30,29,29,30,30,29,30,30,30,0,6,6),
90=>array(5,29,30,29,29,30,29,29,30,29,30,30,30,30,7,7),
91=>array(0,29,30,29,29,30,29,29,30,29,30,30,30,0,8,8),
92=>array(0,29,30,30,29,29,30,29,29,30,29,30,30,0,9,9),
93=>array(3,29,30,30,29,30,29,30,29,29,30,29,30,29,10,10),
94=>array(0,30,30,30,29,30,29,30,29,29,30,29,30,0,1,11),
95=>array(8,29,30,30,29,30,29,30,30,29,29,30,29,30,2,12),
96=>array(0,29,30,29,30,30,29,30,29,30,30,29,29,0,3,1),
97=>array(0,30,29,30,29,30,29,30,30,29,30,30,29,0,4,2),
98=>array(5,30,29,29,30,29,29,30,30,29,30,30,29,30,5,3),
99=>array(0,30,29,29,30,29,29,30,29,30,30,30,29,0,6,4),
100=>array(0,30,30,29,29,30,29,29,30,29,30,30,29,0,7,5),
101=>array(4,30,30,29,30,29,30,29,29,30,29,30,29,30,8,6),
102=>array(0,30,30,29,30,29,30,29,29,30,29,30,29,0,9,7),
103=>array(0,30,30,29,30,30,29,30,29,29,30,29,30,0,10,8),
104=>array(2,29,30,29,30,30,29,30,29,30,29,30,29,30,1,9),
105=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,2,10),
106=>array(7,30,29,30,29,30,29,30,29,30,30,29,30,30,3,11),
107=>array(0,29,29,30,29,29,30,29,30,30,30,29,30,0,4,12),
108=>array(0,30,29,29,30,29,29,30,29,30,30,29,30,0,5,1),
109=>array(5,30,30,29,29,30,29,29,30,29,30,29,30,30,6,2),
110=>array(0,30,29,30,29,30,29,29,30,29,30,29,30,0,7,3),
111=>array(0,30,29,30,30,29,30,29,29,30,29,30,29,0,8,4),
112=>array(4,30,29,30,30,29,30,29,30,29,30,29,30,29,9,5),
113=>array(0,30,29,30,29,30,30,29,30,29,30,29,30,0,10,6),
114=>array(9,29,30,29,30,29,30,29,30,30,29,30,29,30,1,7),
115=>array(0,29,30,29,29,30,29,30,30,30,29,30,29,0,2,8),
116=>array(0,30,29,30,29,29,30,29,30,30,29,30,30,0,3,9),
117=>array(6,29,30,29,30,29,29,30,29,30,29,30,30,30,4,10),
118=>array(0,29,30,29,30,29,29,30,29,30,29,30,30,0,5,11),
119=>array(0,30,29,30,29,30,29,29,30,29,29,30,30,0,6,12),
120=>array(4,29,30,30,30,29,30,29,29,30,29,30,29,30,7,1)
);
/*
 *农历天干
 */
$mten=array("null","甲","乙","丙","丁","戊","己","庚","辛","壬","癸");
//农历地支
$mtwelve=array("null","子(鼠)","丑(牛)","寅(虎)","卯(兔)","辰(龙)",
               "巳(蛇)","午(马)","未(羊)","申(猴)","酉(鸡)","戌(狗)","亥(猪)");
//农历月份
$mmonth=array("闰","正","二","三","四","五","六",
              "七","八","九","十","十一","十二","月");
//农历日
$mday=array("null","初一","初二","初三","初四","初五","初六","初七","初八","初九","初十",
            "十一","十二","十三","十四","十五","十六","十七","十八","十九","二十",
            "廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","三十");
/*
 *赋给初值
 *天干地支
*/
$ten=0;
$twelve=0;
//星期
$week=5;
//农历日
$md=0;
//农历月
$mm=0;
//阳历总天数 至1900年12月21日
$total=11;
//阴历总天数
$mtotal=0;
/*
 *获得当日日期
 */
$today=getdate();
//如果没有输入,设为当日日期
if ($year=="" or $month=="" or ($year<1901 or $year>2020)
    or ($month<1 or $month>12)){
     $year=$today[year];
     $month=$today[mon];
   }
/*
 *计算到所求日期阳历的总天数-自1900年12月21日始
 *先算年的和
 */
for ($y=1901;$y<$year;$y++){
      $total+=365;
      if ($y%4==0) $total ++;
    }
//再加当年的几个月
switch ($month){
         case 12:
              $total+=30;
         case 11:
              $total+=31;
         case 10:
              $total+=30;
         case 9:
              $total+=31;
         case 8:
              $total+=31;
         case 7:
              $total+=30;
         case 6:
              $total+=31;
         case 5:
              $total+=30;
         case 4:
              $total+=31;
         case 3:
              $total+=28;
         case 2:
              $total+=31;
       }
//如果当年是闰年还要加一天
if ($year%4==0 and $month>2){
     $total++;
    }
//顺便算出当月1日星期几
$week=($total+$week)%7;
/*
 *用农历的天数累加来判断是否超过阳历的天数
 */
$flag1=0;//判断跳出循环的条件
$j=0;
while ($j<=120){
      $i=1;
      while ($i<=13){
            $mtotal+=$everymonth[$j][$i];
            if ($mtotal>=$total){
                 $flag1=1;
                 break;
               }
            $i++;
          }
      if ($flag1==1) break;
      $j++;
    }
/*
 *计算所求月份1号的农历日期
 */
$md=$everymonth[$j][$i]-($mtotal-$total);
//月头空开的天数
$k=$week;
//是否跨越一年
switch ($month){
         case 1:
         case 3:
         case 5:
         case 7:
         case 8:
         case 10:
         case 12:
              $dd=31;
              break;
         case 4:
         case 6:
         case 9:
         case 11:
              $dd=30;
              break;
         case 2:
              if ($year%4==0){
                  $dd=29;
                 }else{
                  $dd=28;
                 }
              break;
       }
//是否跨越一年
$ty=0;
if ((($everymonth[$j][0]<>0 and $i==13) or ($everymonth[$j][0]==0 and $i==12))
       and $mtotal-$total<$dd) $ty=1;
?>
<html>
<head>
<title>世纪万年历</title>
<style type="text/css">
<!--
input { font-size:9pt;}
A:link {text-decoration: underline; font-size:9pt;color:000059}
A:visited {text-decoration: underline; font-size:9pt;color:000059}
A:active {text-decoration: none; font-size:9pt}
A:hover {text-decoration:underline;color:red}
body,table {font-size: 9pt}
tr,td{font-size:9pt}
-->
</style>
</head>
<body alink="#FF0000" link="#000099" vlink="#CC6600" topmargin="8" leftmargin="0" bgColor="#FFFFFF">
<?
 //打印年月抬头
 echo "<p align=\"center\"><font size=\"6\"><b>".$year."年".$month."月</b></font></p>\n";
 if($ty==0)
 {
  echo "<p align=\"center\"><b><font size=\"4\">".$mten[$everymonth[$j][14]].$mtwelve[$everymonth[$j][15]]."年</font></b></p>";
 }
 else
 {
  echo "<p align=\"center\"><b><font size=\"4\">".$mten[$everymonth[$j][14]].$mtwelve[$everymonth[$j][15]]."/".$mten[$everymonth[$j+1][14]].$mtwelve[$everymonth[$j+1][15]]."年</font></b></p>";
 }
?>
<div align="center">
  <center>
  <table border="1" width="85%">
    <tr>
      <td align="center" bgcolor="#CCCCCC"><font color="#FF0000"><b>星期日</b></font></td>
      <td width="14%" align="center" bgcolor="#CCCCCC"><b>星期一</b></td>
      <td width="14%" align="center" bgcolor="#CCCCCC"><b>星期二</b></td>
      <td width="14%" align="center" bgcolor="#CCCCCC"><b>星期三</b></td>
      <td width="14%" align="center" bgcolor="#CCCCCC"><b>星期四</b></td>
      <td width="14%" align="center" bgcolor="#CCCCCC"><b>星期五</b></td>
      <td width="14%" align="center" bgcolor="#CCCCCC"><b>星期六</b></td>
    </tr>
<?
$day=1;
$line=0;
while ($day<=$dd){
   echo "<tr>\n";
   for ($s=0;$s<=6;$s++){
         if ($k<>0 or $day>$dd){
              echo "<td width=\"14%\" align=\"center\"> </td>\n";
              $k--;
         }else{
 //设置字符颜色
               switch ($s){
                        case 1:
                        case 2:
                        case 3:
                        case 4:
                        case 5:
                             $color="#000000";
                             break;
                        case 0:
                             $color="#FF0000";
                             break;
                        case 6:
                             $color="#008000";
                             break;
                      }
#生成中文农历
               if ($md==1){#1日打印月份
                    if ($everymonth[$j][0]<>0 and $everymonth[$j][0]<$i){
                        $mm=$i-1;
                    }else{
                        $mm=$i;
                    }
                    if ($i==$everymonth[$j][0]+1 and $everymonth[$j][0]<>0) $chi=$mmonth[0].$mmonth[$mm];#闰月
                    else $chi=$mmonth[$mm].$mmonth[13];
               }else{
                    $chi=$mday[$md];
               }
               echo "<td width=\"14%\" align=\"center\"><font color=\"$color\"><b>$day </b> <b><font size=\"2\">$chi</font></b></font></td>\n";
               $day++;
               $md++;
               if ($md>$everymonth[$j][$i]){
                    $md=1;
                    $i++;
                  }
               if (($i>12 and $everymonth[$j][0]==0) or ($i>13 and $everymonth[$j][0]<>0)){
                     $i=1;
                     $j++;
                  }
           }
       }
   echo "</tr>\n";
   $line++;
}
?>
  </table>
  </center>
</div>
<?php
#补足空行
for ($l=1;$l<=(6-$line);$l++){
      echo "<table border=\"0\" width=\"100%\">\n";
      echo "<tr>\n";
      echo "<td width=\"100%\"><font color=\"#CCFFFF\">a</font></td>\n";
      echo "</tr>\n";
      echo "</table>\n";
    }
#打印上一月,下一月
$ly=$ny=$year;
$last=$month-1;
if ($last==0){
     $last=12;
     $ly--;
   }
$next=$month+1;
if ($next==13){
     $next=1;
     $ny++;
   }
if ($ly>=1901)
echo "<p align=\"center\"><a href=\"".$file."?year=".$ly."&month=".$last."\"><<上一个月</a>   \n";
else
echo "<p align=\"center\">";
if ($ny<=2020)
echo "<a href=\"".$file."?year=".$ny."&month=".$next."\">下一个月>></a></p>\n";
?>
 <?php
echo "<form method=\"POST\" action=\"".$file."\">\n";
?>
  <p align="center"><font color="#000000">年份:</font><select size="1" name="year">
<?php
for($i=2020;$i>1900;$i--)
echo '<option>'.$i.'</option>';
?>
  
  </select><font color="#000000">年</font><font color="#000000">   
  月份:<select size="1" name="month">
<?php
for($j=1;$j<=12;$j++)
echo '<option>'.$j.'</option>';
?>
 
  </select>月     </font><input type="submit" value="查询" name="B1"></p>
</form>
</body>
</html>

 

<?php
if($_POST['upload']=='提交'){
//*******************************************************
//**批量上传**********************************************
                function saveImage ($im , $filename)
            {
                          $r = imagejpeg ($im , $filename);
     
                         if($r){
                        echo "";
                         }
                     else{
                        echo "";
                         }

             }

             function Makesuo ($img_path,$img_name,$img_type)
                         {

                  $open_file = $img_path.$img_name;

                  $file_type = $img_type;

                  if($file_type == "jpg"){

                      $source = imagecreatefromjpeg($open_file);

                  }
                  elseif($file_type == "gif"){

                      $source = imagecreatefromgif($open_file);

                  }
                  elseif($file_type =="png"){

                      $source = imagecreatefrompng($open_file);

                  }

                  $size = getimagesize($open_file);

                  $size_wei = $size[0];

                  $size_hei = $size[1];

                  $pic_bi = $size_wei/$size_hei;

                  if($pic_bi>1.2){

                  $new_wei = $size_hei*1.2;

                  $new_hei = $size_hei;

                  $loda_point = ($size_wei-$new_wei)/2;

                  $target1 = imagecreatetruecolor(120,100);

                  imagecopyresized($target1,$source,0,0,$loda_point,0,120,100,$new_wei,$new_hei);

                  saveImage($target1, "../suo_img/suo_".$img_name,$file_type);

                  return "../suo_img/suo_".$img_name;

                  imagedestroy($source);

                  imagedestroy($target1);

                  }


                   elseif($pic_bi <= 1.2 && $pic_bi >= 1){
                   $new_wei = $size_hei*1.2;

                   $new_hei = $size_hei;

                   $loda_point = ($size_wei-$new_wei)/2;

                   $target1 = imagecreatetruecolor(120,100);

                   imagecopyresized($target1,$source,0,0,$loda_point,0,120,100,$new_wei,$new_hei);

                   saveImage($target1, "../suo_img/suo_".$img_name,$file_type);

                   return "../suo_img/suo_".$img_name;

                   imagedestroy($source);

                   imagedestroy($target1);
                   }


                   elseif($pic_bi < 1){

                   $new_hei = $size_wei*1.2;

                   $new_wei = $size_wei;

                   $loda_point = ($size_hei-$new_hei)/2;

                   $target1 = imagecreatetruecolor(120,100);

                   imagecopyresized($target1,$source,0,0,0,$loda_point,120,100,$new_wei,$new_hei);

                   saveImage($target1, "../suo_img/suo_".$img_name,$file_type);

                   return "../suo_img/suo_".$img_name;

                   imagedestroy($source);

                   imagedestroy($target1);

                   }
             }

[!--infotagslink--]

相关文章

  • 不打开网页直接查看网站的源代码

      有一种方法,可以不打开网站而直接查看到这个网站的源代码..   这样可以有效地防止误入恶意网站...   在浏览器地址栏输入:   view-source:http://...2016-09-20
  • php 调用goolge地图代码

    <?php require('path.inc.php'); header('content-Type: text/html; charset=utf-8'); $borough_id = intval($_GET['id']); if(!$borough_id){ echo ' ...2016-11-25
  • JS基于Mootools实现的个性菜单效果代码

    本文实例讲述了JS基于Mootools实现的个性菜单效果代码。分享给大家供大家参考,具体如下:这里演示基于Mootools做的带动画的垂直型菜单,是一个初学者写的,用来学习Mootools的使用有帮助,下载时请注意要将外部引用的mootools...2015-10-23
  • JS+CSS实现分类动态选择及移动功能效果代码

    本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
  • JS实现自定义简单网页软键盘效果代码

    本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
  • php 取除连续空格与换行代码

    php 取除连续空格与换行代码,这些我们都用到str_replace与正则函数 第一种: $content=str_replace("n","",$content); echo $content; 第二种: $content=preg_replac...2016-11-25
  • php简单用户登陆程序代码

    php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p>&nbsp;</p> <p>&nbsp;</p> <form name="form1...2016-11-25
  • PHP实现清除wordpress里恶意代码

    公司一些wordpress网站由于下载的插件存在恶意代码,导致整个服务器所有网站PHP文件都存在恶意代码,就写了个简单的脚本清除。恶意代码示例...2015-10-23
  • JS实现双击屏幕滚动效果代码

    本文实例讲述了JS实现双击屏幕滚动效果代码。分享给大家供大家参考,具体如下:这里演示双击滚屏效果代码的实现方法,不知道有觉得有用处的没,现在网上还有很多还在用这个特效的呢,代码分享给大家吧。运行效果截图如下:在线演...2015-10-30
  • js识别uc浏览器的代码

    其实挺简单的就是if(navigator.userAgent.indexOf('UCBrowser') > -1) {alert("uc浏览器");}else{//不是uc浏览器执行的操作}如果想测试某个浏览器的特征可以通过如下方法获取JS获取浏览器信息 浏览器代码名称:navigator...2015-11-08
  • python实现学生通讯录管理系统

    这篇文章主要为大家详细介绍了python实现学生通讯录管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-25
  • JS日期加减,日期运算代码

    一、日期减去天数等于第二个日期function cc(dd,dadd){//可以加上错误处理var a = new Date(dd)a = a.valueOf()a = a - dadd * 24 * 60 * 60 * 1000a = new Date(a)alert(a.getFullYear() + "年" + (a.getMonth() +...2015-11-08
  • PHP开发微信支付的代码分享

    微信支付,即便交了保证金,你还是处理测试阶段,不能正式发布。必须到你通过程序测试提交订单、发货通知等数据到微信的系统中,才能申请发布。然后,因为在微信中是通过JS方式调用API,必须在微信后台设置支付授权目录,而且要到...2014-05-31
  • PHP常用的小程序代码段

    本文实例讲述了PHP常用的小程序代码段。分享给大家供大家参考,具体如下:1.计算两个时间的相差几天$startdate=strtotime("2009-12-09");$enddate=strtotime("2009-12-05");上面的php时间日期函数strtotime已经把字符串...2015-11-24
  • php怎么用拼音 简单的php中文转拼音的实现代码

    小编分享了一段简单的php中文转拼音的实现代码,代码简单易懂,适合初学php的同学参考学习。 代码如下 复制代码 <?phpfunction Pinyin($_String...2017-07-06
  • php导出csv格式数据并将数字转换成文本的思路以及代码分享

    php导出csv格式数据实现:先定义一个字符串 存储内容,例如 $exportdata = '规则111,规则222,审222,规222,服2222,规则1,规则2,规则3,匹配字符,设置时间,有效期'."/n";然后对需要保存csv的数组进行foreach循环,例如复制代...2014-06-07
  • ecshop商品无限级分类代码

    ecshop商品无限级分类代码 function cat_options($spec_cat_id, $arr) { static $cat_options = array(); if (isset($cat_options[$spec_cat_id]))...2016-11-25
  • 几种延迟加载JS代码的方法加快网页的访问速度

    本文介绍了如何延迟javascript代码的加载,加快网页的访问速度。 当一个网站有很多js代码要加载,js代码放置的位置在一定程度上将会影像网页的加载速度,为了让我们的网页加载速度更快,本文总结了一下几个注意点...2013-10-13
  • BootStrap栅格系统、表单样式与按钮样式源码解析

    这篇文章主要为大家详细解析了BootStrap栅格系统、表单样式与按钮样式源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-01-23
  • 详解为什么现代系统需要一个新的编程模型

    如今高要求的分布式系统的建造者遇到了不能完全由传统的面向对象编程(OOP)模型解决的挑战,但这可以从Actor模型中获益。...2021-05-20