PHP Captcha Yapımı

PHP captcha yapımı, php ile captcha nasıl yapılır? php güvenlik kodu yapımı


Web sitelerinde veya bloglarda spam kötüye kullanımı veya formların otomatik olarak gönderilmesini önlemek için kullanılan captcha sistemi temel olarak bir kullanıcının robot mu yoksa insan mı olduğunu belirler ve rastgele bir dize olarak oluşturup oturumda saklar.

PHP'de resim ile CAPTCHA kodu oluşturmanın basit ve kolay yolu budur. Hazırsanız PHP Captcha yapımına başlayalım.

captcha.php

Burada öncelikle CAPTCHA koduna sahip oturum değişkenlerini aynı değeri tekrar etmeyecek şekilde ayarlıyoruz. Rastgele bir dize oluşturup, bir oturum değişkeninde saklıyoruz.

<?php
	if(isset($_SESSION['captcha'])) {
		unset($_SESSION['captcha']); //Oturum var ise yok et
	}
	session_start();
	$str1 = "abcdefghijklmnopqrstuvwxyz";
	$str2 = "1234567890";
	$str = $str1.$str2;
	$str = str_shuffle($str);
	$rand = substr($str,0,5);
	$_SESSION['captcha'] = $rand;

	/* PHP Resim Oluşturma */
	$myImg = imagecreate(100, 30);
	$background = imagecolorallocate($myImg, 199, 144, 225); //Arkaplan rengi
	$txtColor = imagecolorallocate($myImg, 245, 245, 245); //Yazı rengi
	imagestring($myImg,12,25,8,$_SESSION['captcha'],$txtColor); //Resime captcha kodu ekle
	header("Content-type: image/png");
	imagepng($myImg); //Oluşturulan resmi görüntüle
	imagedestroy($myImg); //Ayrılan belleği çıkar
?>

index.php

<?php 
session_start();
if(isset($_POST['submit'])){
	if($_SESSION['captcha']==$_POST['cap']){
		echo "success";
	}else{
		echo "Captcha doğrulaması başarısız oldu! Tekrar deneyin"."<br>";
		echo "Text is:".$_SESSION['captcha']; 
	}
}
?>
<form method="POST" action="index.php">
	<input type="text" name= "cap" >
	<input type="submit" name="submit">
</form>
<img src="captcha.php" id="captc">
<span onClick="newCaptcha();"><img src="reload.png" /></span>

JavaScript

<script type="text/javascript">
function newCaptcha(){
	var img = document.getElementById("captc");
	img.src="captcha.php";
}
</script>