Thursday, September 24, 2015

Code đăng ảnh tự động khoá/xoá ảnh người lớn bằng PHP

Code đăng ảnh tự động khoá/xoá ảnh người lớn bằng PHP


Code đăng ảnh tự động khoá/xoá ảnh người lớn bằng PHP

Posted: 23 Sep 2015 11:35 PM PDT





index.php

Mã PHP:

<?php
include('database.php');
session_start();
$session_id='1'// Lưu session của user
?>
<div id='preview'>
</div>
<form id="iform" method="post" enctype="multipart/form-data" action='ajax.php'>
Upload image: 
<div id='imageloadstatus' style='display:none'><img src="loader.gif" alt="Uploading...."/></div>
<div id='imageloadbutton'>
<input type="file" name="photoimg" id="photoimg" />

</div>
</form>
<script type="text/javascript" src="http://ajax.googleapis.com/
ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<script type="text/javascript" src="jquery.wallform.js"></script>
<script type="text/javascript">
$(document).ready(function() 


$('#photoimg').live('change', function() 
 {
var A=$("#imageloadstatus");
var B=$("#imageloadbutton");

$("#iform").ajaxForm({target: '#preview', 
beforeSubmit:function(){
A.show();
B.hide();
}, 
success:function(){
A.hide();
B.show();
}, 
error:function(){
A.hide();
B.show();
} }).submit();
});

}); 
</script>

Khi POST form thì file ajax.php sẽ đón request
ajax.php

Mã PHP:

<?php
include('database.php');
session_start();
$session_id='1'// User session id
$path "uploads/";

function 
getExtension($str)
{
$i strrpos($str,".");
if (!
$i)
{
return 
"";
}
$l strlen($str) - $i;
$ext substr($str,$i+1,$l);
return 
$ext;
}

$valid_formats = array("jpg""png""gif""bmp","jpeg","PNG","JPG","JPEG","GIF","BMP");//Danh sách file được chấp nhận
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST")
{
$name $_FILES['photoimg']['name'];
$size $_FILES['photoimg']['size'];
if(
strlen($name))
{
$ext getExtension($name);
if(
in_array($ext,$valid_formats))
{
if(
$size<(1024*1024)) // Dung lượng tối đa được phép
{
//---Image Filter Code
require_once('class.ImageFilter.php');
$filter = new ImageFilter;
$score $filter->GetScore($_FILES['photoimg']['tmp_name']);
if(isset(
$score))
{
if(
$score >= 40)
{
echo 
"Có vẻ ảnh bạn up lên là một ảnh nude";
}
else
{
//---Image Filter Code 
$actual_image_name time().$session_id.".".$ext;
$tmp $_FILES['photoimg']['tmp_name'];
if(
move_uploaded_file($tmp$path.$actual_image_name))
{
mysqli_query($connection,"UPDATE users SET profile_image='$actual_image_name' WHERE uid='$session_id'");
echo 
"<img src='uploads/".$actual_image_name."' class='preview'>";
}
else
echo 
"failed";
//---Image Filter Code 
}
}
//---Image Filter Code 
}
else
echo 
"Ảnh bạn up lên quá dung lượng 1 MB"
}
else
echo 
"Loại file bạn up không được chấp nhận.."
}
else
echo 
"Vui lòng chọn ảnh..!";
exit;
}
?>

Để kết nối database ta có file database.php

Mã PHP:

<?php
error_reporting
(0);
define('SERVER''localhost');
define('USERNAME''username');
define('PASSWORD''password');
define('DATABASE''database');
$connection = @mysqli_connect(SERVER,USERNAME,PASSWORD,DATABASE);
?>

class.ImageFilter.php

Mã PHP:

CLASS ImageFilter
{                              #R  G  B
    
var $colorA 7944996;     #79 3B 24
    
var $colorB 16696767;    #FE C5 BF


    
var $arA = array();
    var 
$arB = array();
    
    function 
ImageFilter()
    {
        
$this->arA['R'] = ($this->colorA >> 16) & 0xFF;
        
$this->arA['G'] = ($this->colorA >> 8) & 0xFF;
        
$this->arA['B'] = $this->colorA 0xFF;
        
        
$this->arB['R'] = ($this->colorB >> 16) & 0xFF;
        
$this->arB['G'] = ($this->colorB >> 8) & 0xFF;
        
$this->arB['B'] = $this->colorB 0xFF;
    }
    
    function 
GetScore($image)
    {
        
$x 0$y 0;
        
$img $this->_GetImageResource($image$x$y);
        if(!
$img) return false;

        
$score 0;
        
        
$xPoints = array($x/8$x/4, ($x/$x/4), $x-($x/$x/4), $x-($x/4), $x-($x/8));
        
$yPoints = array($y/8$y/4, ($y/$y/4), $y-($y/$y/4), $y-($y/8), $y-($y/8));
        
$zPoints = array($xPoints[2], $yPoints[1], $xPoints[3], $y);

        
        for(
$i=1$i<=$x$i++)
        {
            for(
$j=1$j<=$y$j++)
            {
                
$color imagecolorat($img$i$j);
                if(
$color >= $this->colorA && $color <= $this->colorB)
                {
                    
$color = array('R'=> ($color >> 16) & 0xFF'G'=> ($color >> 8) & 0xFF'B'=> $color 0xFF);
                    if(
$color['G'] >= $this->arA['G'] && $color['G'] <= $this->arB['G'] && $color['B'] >= $this->arA['B'] && $color['B'] <= $this->arB['B'])
                    {
                        if(
$i >= $zPoints[0] && $j >= $zPoints[1] && $i <= $zPoints[2] && $j <= $zPoints[3])
                        {
                            
$score += 3;
                        }
                        elseif(
$i <= $xPoints[0] || $i >=$xPoints[5] || $j <= $yPoints[0] || $j >= $yPoints[5])
                        {
                            
$score += 0.10;
                        }
                        elseif(
$i <= $xPoints[0] || $i >=$xPoints[4] || $j <= $yPoints[0] || $j >= $yPoints[4])
                        {
                            
$score += 0.40;
                        }
                        else
                        {
                            
$score += 1.50;
                        }
                    }
                }
            }
        }
        
        
imagedestroy($img);
        
        
$score sprintf('%01.2f', ($score 100) / ($x $y));
        if(
$score 100$score 100;
        return 
$score;
    }
    
    function 
GetScoreAndFill($image$outputImage)
    {
        
$x 0$y 0;
        
$img $this->_GetImageResource($image$x$y);
        if(!
$img) return false;

        
$score 0;

        
$xPoints = array($x/8$x/4, ($x/$x/4), $x-($x/$x/4), $x-($x/4), $x-($x/8));
        
$yPoints = array($y/8$y/4, ($y/$y/4), $y-($y/$y/4), $y-($y/8), $y-($y/8));
        
$zPoints = array($xPoints[2], $yPoints[1], $xPoints[3], $y);


        for(
$i=1$i<=$x$i++)
        {
            for(
$j=1$j<=$y$j++)
            {
                
$color imagecolorat($img$i$j);
                if(
$color >= $this->colorA && $color <= $this->colorB)
                {
                    
$color = array('R'=> ($color >> 16) & 0xFF'G'=> ($color >> 8) & 0xFF'B'=> $color 0xFF);
                    if(
$color['G'] >= $this->arA['G'] && $color['G'] <= $this->arB['G'] && $color['B'] >= $this->arA['B'] && $color['B'] <= $this->arB['B'])
                    {
                        if(
$i >= $zPoints[0] && $j >= $zPoints[1] && $i <= $zPoints[2] && $j <= $zPoints[3])
                        {
                            
$score += 3;
                            
imagefill($img$i$j16711680);
                        }
                        elseif(
$i <= $xPoints[0] || $i >=$xPoints[5] || $j <= $yPoints[0] || $j >= $yPoints[5])
                        {
                            
$score += 0.10;
                            
imagefill($img$i$j14540253);
                        }
                        elseif(
$i <= $xPoints[0] || $i >=$xPoints[4] || $j <= $yPoints[0] || $j >= $yPoints[4])
                        {
                            
$score += 0.40;
                            
imagefill($img$i$j16514887);
                        }
                        else
                        {
                            
$score += 1.50;
                            
imagefill($img$i$j512);
                        }
                    }
                }
            }
        }
        
imagejpeg($img$outputImage);

        
imagedestroy($img);

        
$score sprintf('%01.2f', ($score 100) / ($x $y));
        if(
$score 100$score 100;
        return 
$score;
    }
    
    function 
_GetImageResource($image, &$x, &$y)
    {
        
$info GetImageSize($image);
        
        
$x $info[0];
        
$y $info[1];
        
        switch( 
$info[2] )
        {
            case 
IMAGETYPE_GIF:
                return @
ImageCreateFromGif($image);
                
            case 
IMAGETYPE_JPEG:
                return @
ImageCreateFromJpeg($image);
                
            case 
IMAGETYPE_PNG:
                return @
ImageCreateFromPng($image);
                
            default:
                return 
false;
        }
    }
}

?> 










----------
Nguồn www.yeuquangngai.net

Quảng Ngãi có tân Chủ tịch HĐND và Chủ tịch UBND tỉnh

Posted: 14 Sep 2015 11:19 PM PDT




Ngày 15/9, tại kỳ họp bất thường của HĐND tỉnh Quảng Ngãi khóa XI, nhiệm kỳ 2011-2016, HĐND tỉnh Quảng Ngãi đã bầu chức danh Chủ tịch HĐND và Chủ tịch UBND tỉnh.


Lãnh đạo tỉnh chúc mừng ông Lê Viết Chữ giữ chức Chủ tịch HĐND tỉnh.


Tại kỳ họp, đại biểu HĐND tỉnh Quảng Ngãi đã thông qua các Nghị quyết miễn nhiệm chức danh Chủ tịch HĐND tỉnh nhiệm kỳ 2011- 2016 đối với ông Trần Ngọc Căng và miễn nhiệm chức danh Chủ tịch UBND tỉnh nhiệm kỳ 2011- 2016 đối với ông Lê Viết Chữ. Đồng thời tiến hành bầu bổ sung đối với chức danh Chủ tịch HĐND tỉnh và Chủ tịch UBND tỉnh nhiệm kỳ 2011- 2016.

Theo đó, ông Lê Viết Chữ đã được đại biểu HĐND tỉnh bầu giữ chức danh Chủ tịch HĐND tỉnh nhiệm kỳ 2011- 2016, với số phiếu 49/49, 100% đại biểu tán thành.

Ông Trần Ngọc Căng được bầu giữ chức danh Chủ tịch UBND tỉnh nhiệm kỳ 2011- 2016, với số phiếu 49/49, 100% đại biểu nhất trí tán thành.

Ông Lê Viết Chữ, sinh ngày 20/01/1963, quê quán: xã Hành Thịnh, huyện Nghĩa Hành, tỉnh Quảng Ngãi, dân tộc Kinh, tôn giáo không, vào Đảng chính thức ngày 28/5/1995, trình độ học vấn: đại học, trình độ chuyên môn: Kỹ sư Hàng hải, trình độ lý luận chính trị: cao cấp. Ông Lê Viết Chữ hiện đang giữ chức Bí thư Tỉnh ủy Quảng Ngãi, đại biểu HĐND tỉnh khóa XI, nhiệm kỳ 2011- 2016.


Ông Trần Ngọc Căng - Tân Chủ tịch UBND tỉnh Quảng Ngãi. Ảnh VOV

Ông Trần Ngọc Căng, sinh ngày 20/9/1960, quê quán: xã Đức Nhuận, huyện Mộ Đức, tỉnh Quảng Ngãi, trình độ học vấn: đại học, trình độ chuyên môn: Cử nhân Kinh tế, trình độ lý luận chính trị: Cử nhân. Hiện ông Trần Ngọc Căng đang giữ chức vụ Phó Bí thư Tỉnh ủy Quảng Ngãi, đại biểu HĐND tỉnh khóa XI, nhiệm kỳ 2011- 2016.

Phát biểu bế mạc kỳ họp, Bí thư Tỉnh ủy- Chủ tịch HĐND tỉnh Lê Viết Chữ khẳng định, việc sớm kiện toàn các chức danh cán bộ lãnh đạo chủ chốt là hết sức cần thiết để tiến hành các nhiệm vụ chuẩn bị đại hội Đảng bộ tỉnh và những công việc hết sức quan trọng của tỉnh trong 5 năm tới.

[TAGS]Bí thư Tỉnh ủy[/TAGS]- Chủ tịch HĐND tỉnh [TAGS]Lê Viết Chữ[/TAGS] cũng cảm ơn sự tín nhiệm của cử tri trong tỉnh, đại biểu HĐND tỉnh và hứa quyết tâm sẽ cố gắng phấn đấu hết mình để hoàn thành nhiệm vụ mà Đảng và cử tri giao phó.

Nguồn Chinhphu.vn









----------
Nguồn www.yeuquangngai.net