澳门新浦京8455comPHP 验证码的实现代码_php技巧_脚本之家

在ASP中,可没有那样好啊!看例子:submit_0.php和submit_1.php 如下:

种类中用到了叁个上传头像的功能,供给开展无刷新的图样上传,并对上传后的图片举行顾客必要的截图,无刷新上传笔者就隐讳了,用的Juploader,相信大家并不面生,重视讲一下jcron和php配置达成图片的截取的功用,好了,言归正传。首先介绍一下jcron的用法,我就不一一解释了,我们只看最平常用的到截图功用:
[javascript] 
<span style=”font-size: 18px; “>$(function(){ 
 
 
                $(‘#cropbox’).Jcrop({ 
                    aspectRatio: 1, 
                    onSelect: updateCoords 
                }); 
 
 
            });</span> 

生成验证码图片,还会有变量
$_SESSION[check_pic]。 复制代码
代码如下: session_start(); for{ $rand.= dechex; }
$_SESSION[check_pic]=$rand; //echo $_SESSION[check_pic]; //
设置图片大小 $im = imagecreatetruecolor; // 设置颜色
$bg=imagecolorallocate; $te=imagecolorallocate; //
把字符串写在图像左上角 imagestring,rand; // 输出图像
header(“Content-type:image/jpeg”卡塔尔国; imagejpeg; ?> form.php 通过
澳门新浦京8455com 1 调用生成的验证码图片
复制代码 代码如下:

!--文件submit_0.php --form action=submit_1.php method=postinput type=image src=exa.gif name=sub1/form

上述是决定,对哪些图片举办截图,“cropbox”是您要截取的img对象的id,“aspectRatio”调整等比例截取,“onSelect”的值是五个措施名,在增选时调用的秘技
,个参数实际情况解释如下:
Option Name Value Type Description Default
aspectRatio decimal Aspect ratio of w/h (e.g. 1 for square) n/a
minSize array [ w, h ] Minimum width/height, use 0 for unbounded
dimension n/a
maxSize array [ w, h ] Maximum width/height, use 0 for unbounded
dimension n/a
setSelect array [ x, y, x2, y2 ] Set an initial selection area n/a
bgColor color value Set color of background container ‘black’
bgOpacity decimal 0 – 1 Opacity of outer image when
cropping .6选拔时的回调方法
[javascript] view plaincopyprint?
<span style=”font-size:18px;”>function updateCoords(c) 
            { 
                $(‘#x’).val(c.x); 
                $(‘#y’).val(c.y); 
                $(‘#w’).val(c.w); 
                $(‘#h’).val(c.h); 
            };</span> 

留言

上面包车型地铁代码突显点击的坐标

有了这些措施,能够在您截图是立异蒙蔽域中的坐标值,通过隐敝域把坐标消息传播后台。
[html] 
<span style=”font-size:18px;”><form action=”crop.php”
method=”post” onsubmit=”return checkCoords();”> 
            <input type=”hidden” id=”x” name=”x” /> 
            <input type=”hidden” id=”y” name=”y” /> 
            <input type=”hidden” id=”w” name=”w” /> 
            <input type=”hidden” id=”h” name=”h” /> 
            <input type=”submit” value=”Crop Image” /> 
        </form></span> 

imagestring,rand; 使用了 int imagestring(int im, int font, int x, int y,
string s, int col卡塔尔; 函数,那些函数用于绘横式字符串。
那一个函数在图片上绘出水平的横式字符串。参数 font 为字形,设为 1 到 5
表示使用默许字形。参数 x、y 为字符串起源坐标。字符串的故事情节放在参数 s
上。参数 col 表示字符串的水彩。 post.php 相比 $_POST[check] 与
$_SESSION[check_pic],若相等则实行数据库插入操作。不对等就重临上一页。
复制代码 代码如下:

?php#文件get.phpecho 您鼠标点的横坐标为:.$sub1_x.br;echo 您鼠标点的纵坐标为:.$sub1_y.br;?

ok,到此,前台已经告一段落,大家看后台的php代码。
后台php首借使依据前台传递的坐标,对原图进行截取,帮衬jpg,png,和gif二种图片格式,当然,你可以扩张他,使他扶持越多的图片格式。
[php]
<span style=”font-size:18px;”>class Img_shot 

     
    private $filename; 
    private $ext; 
    private $x; 
    private $y; 
    private $x1; 
    private $y1; 
    private $width = 124; 
    private $height = 124; 
    private $jpeg_quality = 90; 
    /**
     * 构造器
     *
     * 
     */ 
    public function __construct() 
    { 
        log_message(‘debug’, “Img_shot Class Initialized”); 
    } 
    /**
     * 开始化截图对象
     *@param filename 源文件路径全明
     *@param width  截图的宽
     *@param height  截图的高
     *@param x  横坐标1
     *@param y  纵坐标1
     *@param x1  横坐标1
     *@param y1  横坐标2
     * 
     */ 
    public function initialize($filename,$x,$y,$x1,$y1) 
    { 
        if(file_exists($filename)) 
        { 
            $this->filename = $filename; 
            $pathinfo = pathinfo($filename); 
            $this->ext = $pathinfo[‘extension’]; 
        } 
        else 
        { 
            $e = new Exception(‘the file is not exists!’,1050); 
            throw $e; 
        } 
        $this->x = $x; 
        $this->y = $y;    
        $this->x1 = $x1;  
        $this->y1 = $y1;  
    } 
    /**
     * 生成截图
     * 依照图片的格式,生成不相同的截图
     */ 
    public function generate_shot() 
    { 
        switch($this->ext) 
        { 
            case ‘jpg’: 
                return $this->generate_jpg(); 
                break; 
            case ‘png’: 
                return $this->generate_png(); 
                break; 
            case ‘gif’: 
                return $this->generate_gif(); 
                break; 
            default: 
                return false; 
        } 
    } 
    /**
     * 得到扭转的截图的公文名
     * 
     */ 
    private function get_shot_name() 
    { 
        $pathinfo = pathinfo($this->filename); 
        $fileinfo = explode(‘.’,$pathinfo[‘basename’]); 
        $filename = $fileinfo[0] . ‘_small.’ . $this->ext; 
        return $pathinfo[‘dirname’] . ‘/’ .$filename; 
    } 
    /**
     * 生成jpg格式的图样
     * 
     */ 
    private function generate_jpg() 
    { 
        $shot_name = $this->get_shot_name(); 
        $img_r = imagecreatefromjpeg($this->filename); 
        $dst_r = ImageCreateTrueColor($this->width,
$this->height); 
 
       
imagecopyresampled($dst_r,$img_r,0,0,$this->x,$this->y, 
        $this->width,$this->height,$this->x1,$this->y1); 
        imagejpeg($dst_r,$shot_name,$this->jpeg_quality); 
        return $shot_name; 
    } 
    /**
     * 生成gif格式的图纸
     * 
     */ 
    private function generate_gif() 
    { 
        $shot_name = $this->get_shot_name(); 
        $img_r = imagecreatefromgif($this->filename); 
        $dst_r = ImageCreateTrueColor($this->width,
$this->height); 
 
       
imagecopyresampled($dst_r,$img_r,0,0,$this->x,$this->y, 
        $this->width,$this->height,$this->x1,$this->y1); 
        imagegif($dst_r,$shot_name); 
        return $shot_name; 
    } 
    /**
     * 生成png格式的图样
     * 
     */ 
    private function generate_png() 
    { 
        $shot_name = $this->get_shot_name(); 
        $img_r = imagecreatefrompng($this->filename); 
        $dst_r = ImageCreateTrueColor($this->width,
$this->height); 
 
       
imagecopyresampled($dst_r,$img_r,0,0,$this->x,$this->y, 
        $this->width,$this->height,$this->x1,$this->y1); 
        imagepng($dst_r,$shot_name); 
        return $shot_name; 
    } 
}       </span> 

说明:

一、$sub1_x和$sub1_y几个变量自动生成

二、生成的变量是:提交图片的名字加上_x或_y,分别表示横纵坐标

最后:大家能够发挥您的灵气,利用它实现广大好的效果与利益

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图