<?php
@error_reporting(E_ALL ^ E_NOTICE);
@ini_set('display_errors', true);
@ini_set('html_errors', false);
@ini_set('error_reporting', E_ALL ^ E_NOTICE);
if (clean_url($_SERVER['HTTP_REFERER']) != clean_url($_SERVER['HTTP_HOST'])) {
return;
}
session_start();
$font=imagecreatefrompng("fonts/font.png");
imagealphablending($font, true);
$fontfile_width=imagesx($font);
$fontfile_height=imagesy($font)-1;
$font_metrics=array();
$symbol=0;
$reading_symbol=false;
$alphabet = "0123456789";
$alphabet_length = strlen($alphabet);
for ($i=0;$i<$fontfile_width && $symbol<$alphabet_length;$i++) {
$transparent = (imagecolorat($font, $i, 0) >> 24) == 127;
if (!$reading_symbol && !$transparent) {
$font_metrics[$alphabet{$symbol}]=array('start'=>$i);
$reading_symbol=true;
continue;
}
if ($reading_symbol && $transparent) {
$font_metrics[$alphabet{$symbol}]['end']=$i;
$reading_symbol=false;
$symbol++;
continue;
}
}
$image = imagecreatetruecolor(165, 60);
$width = ImageSX($image);
$height = ImageSY($image);
imagealphablending($image, true);
$background_color = array(247,247,247);
$foreground_color = array(70,70,70);
$white=imagecolorallocate($image, 255, 255, 255);
$black=imagecolorallocate($image, 128, 128, 0);
imagefilledrectangle($image, 0, 0, ImageSX($image)-1, ImageSY($image)-1, $white);
$string = '';
$x = 5;
$y = 5;
for ($i=0;$i<6;$i++) {
$char = rand(0, 9);
$string .= $char;
if ($x > 15) {
$x = $x - 2;
}
imagecopy($image, $font, $x, $y, $font_metrics[$char]['start'], 1, $font_metrics[$char]['end']-$font_metrics[$char]['start'], 42);
$x += $font_metrics[$char]['end']-$font_metrics[$char]['start'];
}
for ($i=0;$i<10;$i++) {
ImageSmoothAlphaLine($image, Rand(5, $width*0.5), Rand(5, $height-5), rand($width*0.5, $width-5), rand(5, $height-5), 255, 255, 255);
}
for ($i=0;$i<2;$i++) {
ImageSmoothAlphaLine($image, rand(5, 10), Rand(5, $height-5), rand($width-10, $width-5), rand(5, $height-5), 0, 0, 0);
}
$center=$x/2;
$img2=imagecreatetruecolor(ImageSX($image), ImageSY($image));
$rand1=mt_rand(750000, 1200000)/10000000;
$rand2=mt_rand(750000, 1200000)/10000000;
$rand3=mt_rand(750000, 1200000)/10000000;
$rand4=mt_rand(750000, 1200000)/10000000;
$rand5=mt_rand(0, 3141592)/500000;
$rand6=mt_rand(0, 3141592)/500000;
$rand7=mt_rand(0, 3141592)/500000;
$rand8=mt_rand(0, 3141592)/500000;
$rand9=mt_rand(330, 420)/110;
$rand10=mt_rand(330, 450)/110;
for ($x=0;$x<ImageSX($image);$x++) {
for ($y=0;$y<ImageSY($image);$y++) {
$sx=$x+(sin($x*$rand1+$rand5)+sin($y*$rand3+$rand6))*$rand9-$width/2+$center+1;
$sy=$y+(sin($x*$rand2+$rand7)+sin($y*$rand4+$rand8))*$rand10;
if ($sx<0 || $sy<0 || $sx>=$width-1 || $sy>=$height-1) {
$color=255;
$color_x=255;
$color_y=255;
$color_xy=255;
} else {
$color=imagecolorat($image, $sx, $sy) & 0xFF;
$color_x=imagecolorat($image, $sx+1, $sy) & 0xFF;
$color_y=imagecolorat($image, $sx, $sy+1) & 0xFF;
$color_xy=imagecolorat($image, $sx+1, $sy+1) & 0xFF;
}
if ($color==0 && $color_x==0 && $color_y==0 && $color_xy==0) {
$newred=$foreground_color[0];
$newgreen=$foreground_color[1];
$newblue=$foreground_color[2];
} elseif ($color==255 && $color_x==255 && $color_y==255 && $color_xy==255) {
$newred=$background_color[0];
$newgreen=$background_color[1];
$newblue=$background_color[2];
} else {
$frsx=$sx-floor($sx);
$frsy=$sy-floor($sy);
$frsx1=1-$frsx;
$frsy1=1-$frsy;
$newcolor=(
$color*$frsx1*$frsy1+
$color_x*$frsx*$frsy1+
$color_y*$frsx1*$frsy+
$color_xy*$frsx*$frsy
);
if ($newcolor>255) {
$newcolor=255;
}
$newcolor=$newcolor/255;
$newcolor0=1-$newcolor;
$newred=$newcolor0*$foreground_color[0]+$newcolor*$background_color[0];
$newgreen=$newcolor0*$foreground_color[1]+$newcolor*$background_color[1];
$newblue=$newcolor0*$foreground_color[2]+$newcolor*$background_color[2];
}
imagesetpixel($img2, $x, $y, imagecolorallocate($img2, $newred, $newgreen, $newblue));
}
}
$_SESSION['captcha'] = $string;
header("content-type: image/png");
imagepng($img2);
imagedestroy($img2);
function ImageSmoothAlphaLine($image, $x1, $y1, $x2, $y2, $r, $g, $b, $alpha=0)
{
$icr = $r;
$icg = $g;
$icb = $b;
$dcol = imagecolorallocatealpha($image, $icr, $icg, $icb, $alpha);
if ($y1 == $y2 || $x1 == $x2) {
imageline($image, $x1, $y2, $x1, $y2, $dcol);
} else {
$m = ($y2 - $y1) / ($x2 - $x1);
$b = $y1 - $m * $x1;
if (abs($m) <2) {
$x = min($x1, $x2);
$endx = max($x1, $x2) + 1;
while ($x < $endx) {
$y = $m * $x + $b;
$ya = ($y == floor($y) ? 1: $y - floor($y));
$yb = ceil($y) - $y;
$trgb = ImageColorAt($image, $x, floor($y));
$tcr = ($trgb >> 16) & 0xFF;
$tcg = ($trgb >> 8) & 0xFF;
$tcb = $trgb & 0xFF;
imagesetpixel($image, $x, floor($y), imagecolorallocatealpha($image, ($tcr * $ya + $icr * $yb), ($tcg * $ya + $icg * $yb), ($tcb * $ya + $icb * $yb), $alpha));
$trgb = ImageColorAt($image, $x, ceil($y));
$tcr = ($trgb >> 16) & 0xFF;
$tcg = ($trgb >> 8) & 0xFF;
$tcb = $trgb & 0xFF;
imagesetpixel($image, $x, ceil($y), imagecolorallocatealpha($image, ($tcr * $yb + $icr * $ya), ($tcg * $yb + $icg * $ya), ($tcb * $yb + $icb * $ya), $alpha));
$x++;
}
} else {
$y = min($y1, $y2);
$endy = max($y1, $y2) + 1;
while ($y < $endy) {
$x = ($y - $b) / $m;
$xa = ($x == floor($x) ? 1: $x - floor($x));
$xb = ceil($x) - $x;
$trgb = ImageColorAt($image, floor($x), $y);
$tcr = ($trgb >> 16) & 0xFF;
$tcg = ($trgb >> 8) & 0xFF;
$tcb = $trgb & 0xFF;
imagesetpixel($image, floor($x), $y, imagecolorallocatealpha($image, ($tcr * $xa + $icr * $xb), ($tcg * $xa + $icg * $xb), ($tcb * $xa + $icb * $xb), $alpha));
$trgb = ImageColorAt($image, ceil($x), $y);
$tcr = ($trgb >> 16) & 0xFF;
$tcg = ($trgb >> 8) & 0xFF;
$tcb = $trgb & 0xFF;
imagesetpixel($image, ceil($x), $y, imagecolorallocatealpha($image, ($tcr * $xb + $icr * $xa), ($tcg * $xb + $icg * $xa), ($tcb * $xb + $icb * $xa), $alpha));
$y ++;
}
}
}
}[/QUOTE]
PHP Captcha Hatası
12
●256
- 16-06-2022, 02:26:24Kimlik doğrulama veya yönetimden onay bekliyor.Şuanda böyle chapta dosyası
- 16-06-2022, 02:28:14Kodunuzun özünü bozmadan birkaç ufak ekleme yaptım da şunu dener misiniz?
<?php @error_reporting(E_ALL ^ E_NOTICE); @ini_set('display_errors', true); @ini_set('html_errors', false); @ini_set('error_reporting', E_ALL ^ E_NOTICE); ob_start(); session_start(); function clean_url($url) { if ($url == '') { return; } $url = str_replace("http://", "", $url); if (strtolower(substr($url, 0, 4)) == 'www.') { $url = substr($url, 4); } $url = explode('/', $url); $url = reset($url); $url = explode(':', $url); $url = reset($url); return $url; } if (clean_url($_SERVER['HTTP_REFERER']) != clean_url($_SERVER['HTTP_HOST'])) { return; } $font=imagecreatefrompng("asd.png"); imagealphablending($font, true); $fontfile_width=imagesx($font); $fontfile_height=imagesy($font)-1; $font_metrics=array(); $symbol=0; $reading_symbol=false; $alphabet = "0123456789"; $alphabet_length = strlen($alphabet); for ($i=0;$i<$fontfile_width && $symbol<$alphabet_length;$i++) { $transparent = (imagecolorat($font, $i, 0) >> 24) == 127; if (!$reading_symbol && !$transparent) { $font_metrics[$alphabet{$symbol}]=array('start'=>$i); $reading_symbol=true; continue; } if ($reading_symbol && $transparent) { $font_metrics[$alphabet{$symbol}]['end']=$i; $reading_symbol=false; $symbol++; continue; } } $image = imagecreatetruecolor(165, 60); $width = ImageSX($image); $height = ImageSY($image); imagealphablending($image, true); $background_color = array(247,247,247); $foreground_color = array(70,70,70); $white=imagecolorallocate($image, 255, 255, 255); $black=imagecolorallocate($image, 128, 128, 0); imagefilledrectangle($image, 0, 0, ImageSX($image)-1, ImageSY($image)-1, $white); $string = ''; $x = 5; $y = 5; $sayim = 0; for ($i=0;$i<6;$i++) { $char = rand(0, 9); $string .= $char; if ($x > 15) { $x = $x - 2; } imagecopy($image, $font, $x, $y, $font_metrics[$sayim]['start'], 1, $font_metrics[$sayim]['end']-$font_metrics[$sayim]['start'], 42); $x += $font_metrics[$sayim]['end']-$font_metrics[$sayim]['start']; $sayim++; if ($sayim == 1) { $sayim = 0; } } for ($i=0;$i<10;$i++) { ImageSmoothAlphaLine($image, Rand(5, $width*0.5), Rand(5, $height-5), rand($width*0.5, $width-5), rand(5, $height-5), 255, 255, 255); } for ($i=0;$i<2;$i++) { ImageSmoothAlphaLine($image, rand(5, 10), Rand(5, $height-5), rand($width-10, $width-5), rand(5, $height-5), 0, 0, 0); } $center=$x/2; $img2=imagecreatetruecolor(ImageSX($image), ImageSY($image)); $rand1=mt_rand(750000, 1200000)/10000000; $rand2=mt_rand(750000, 1200000)/10000000; $rand3=mt_rand(750000, 1200000)/10000000; $rand4=mt_rand(750000, 1200000)/10000000; $rand5=mt_rand(0, 3141592)/500000; $rand6=mt_rand(0, 3141592)/500000; $rand7=mt_rand(0, 3141592)/500000; $rand8=mt_rand(0, 3141592)/500000; $rand9=mt_rand(330, 420)/110; $rand10=mt_rand(330, 450)/110; for ($x=0;$x<ImageSX($image);$x++) { for ($y=0;$y<ImageSY($image);$y++) { $sx=$x+(sin($x*$rand1+$rand5)+sin($y*$rand3+$rand6 ))*$rand9-$width/2+$center+1; $sy=$y+(sin($x*$rand2+$rand7)+sin($y*$rand4+$rand8 ))*$rand10; if ($sx<0 || $sy<0 || $sx>=$width-1 || $sy>=$height-1) { $color=255; $color_x=255; $color_y=255; $color_xy=255; } else { $color=imagecolorat($image, $sx, $sy) & 0xFF; $color_x=imagecolorat($image, $sx+1, $sy) & 0xFF; $color_y=imagecolorat($image, $sx, $sy+1) & 0xFF; $color_xy=imagecolorat($image, $sx+1, $sy+1) & 0xFF; } if ($color==0 && $color_x==0 && $color_y==0 && $color_xy==0) { $newred=$foreground_color[0]; $newgreen=$foreground_color[1]; $newblue=$foreground_color[2]; } elseif ($color==255 && $color_x==255 && $color_y==255 && $color_xy==255) { $newred=$background_color[0]; $newgreen=$background_color[1]; $newblue=$background_color[2]; } else { $frsx=$sx-floor($sx); $frsy=$sy-floor($sy); $frsx1=1-$frsx; $frsy1=1-$frsy; $newcolor=( $color*$frsx1*$frsy1+ $color_x*$frsx*$frsy1+ $color_y*$frsx1*$frsy+ $color_xy*$frsx*$frsy ); if ($newcolor>255) { $newcolor=255; } $newcolor=$newcolor/255; $newcolor0=1-$newcolor; $newred=$newcolor0*$foreground_color[0]+$newcolor*$background_color[0]; $newgreen=$newcolor0*$foreground_color[1]+$newcolor*$background_color[1]; $newblue=$newcolor0*$foreground_color[2]+$newcolor*$background_color[2]; } imagesetpixel($img2, $x, $y, imagecolorallocate($img2, $newred, $newgreen, $newblue)); } } $_SESSION['captcha'] = $string; header("content-type: image/png"); imagepng($img2); imagedestroy($img2); function ImageSmoothAlphaLine($image, $x1, $y1, $x2, $y2, $r, $g, $b, $alpha=0) { $icr = $r; $icg = $g; $icb = $b; $dcol = imagecolorallocatealpha($image, $icr, $icg, $icb, $alpha); if ($y1 == $y2 || $x1 == $x2) { imageline($image, $x1, $y2, $x1, $y2, $dcol); } else { $m = ($y2 - $y1) / ($x2 - $x1); $b = $y1 - $m * $x1; if (abs($m) <2) { $x = min($x1, $x2); $endx = max($x1, $x2) + 1; while ($x < $endx) { $y = $m * $x + $b; $ya = ($y == floor($y) ? 1: $y - floor($y)); $yb = ceil($y) - $y; $trgb = ImageColorAt($image, $x, floor($y)); $tcr = ($trgb >> 16) & 0xFF; $tcg = ($trgb >> 8) & 0xFF; $tcb = $trgb & 0xFF; imagesetpixel($image, $x, floor($y), imagecolorallocatealpha($image, ($tcr * $ya + $icr * $yb), ($tcg * $ya + $icg * $yb), ($tcb * $ya + $icb * $yb), $alpha)); $trgb = ImageColorAt($image, $x, ceil($y)); $tcr = ($trgb >> 16) & 0xFF; $tcg = ($trgb >> 8) & 0xFF; $tcb = $trgb & 0xFF; imagesetpixel($image, $x, ceil($y), imagecolorallocatealpha($image, ($tcr * $yb + $icr * $ya), ($tcg * $yb + $icg * $ya), ($tcb * $yb + $icb * $ya), $alpha)); $x++; } } else { $y = min($y1, $y2); $endy = max($y1, $y2) + 1; while ($y < $endy) { $x = ($y - $b) / $m; $xa = ($x == floor($x) ? 1: $x - floor($x)); $xb = ceil($x) - $x; $trgb = ImageColorAt($image, floor($x), $y); $tcr = ($trgb >> 16) & 0xFF; $tcg = ($trgb >> 8) & 0xFF; $tcb = $trgb & 0xFF; imagesetpixel($image, floor($x), $y, imagecolorallocatealpha($image, ($tcr * $xa + $icr * $xb), ($tcg * $xa + $icg * $xb), ($tcb * $xa + $icb * $xb), $alpha)); $trgb = ImageColorAt($image, ceil($x), $y); $tcr = ($trgb >> 16) & 0xFF; $tcg = ($trgb >> 8) & 0xFF; $tcb = $trgb & 0xFF; imagesetpixel($image, ceil($x), $y, imagecolorallocatealpha($image, ($tcr * $xb + $icr * $xa), ($tcg * $xb + $icg * $xa), ($tcb * $xb + $icb * $xa), $alpha)); $y ++; } } } } ?> - 16-06-2022, 02:28:33@eypoffcl; teşekkür ederim hocam oldu tam silmemişim dediğiniz kodu