vahidqara
دوشنبه 16 تیر 1393, 11:57 صبح
سلام و درود...
یک تصویر امنیتی (Captcha ) ساده براتون میزارم امروز .. امید دارم موثر باشه.. :لبخندساده:
دو صفحه نیاز هست .. یکی captcha.php که تصویر رو نشون میده به همراه ارسال کد امنیتی و دیگری securitycode.php هستش برای چک کردن کد و تولید تصویر امنیتی.
صفحه ی Captcha.php رو اینجوری مینویسیم ..
<script src="js/jquery-1.11.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#submit').click(function(){
var captcha = $('#captcha').val();
var flag;
$.ajax({
type:'POST',
url:'securitycode.php',
data:{'captcha':captcha,'flag':1},
success:function(data){
$('#result').text(data);
}
});
});
});
</script>
<?php
session_start();
$text = "ZXCVBNMLKJHGFDSAQWERTYUIOPzxcvbnmlkjhgfdsaqwertyui op0123654789";
$code ='';
for($i=1;$i<=5;$i++){
$start = rand(0,strlen($text));
$code.=substr($text,$start,1);
}
$_SESSION['code']=$code;
?>
<br>
<img src="securitycode.php">
<br>
<br>
<input type="text" id="captcha" name="captcha"><br>
<input type="submit" id="submit" value="submit">
<div id="result">
</div>
توضیح کد php این صفحه :
ساده هستش .. یک متن رو به یک متغیر نسبت دادیم که دلبخواه هست .. $text
سپس به وسیله حاقه ی for و به صورت rand یک رشته یا کد 5 رقمی تولید و داخل $code نوشتیم سپس داخل session گذاشتیم...
کد های ایجکس هم مشخص هست .. مکی مطالعه در مورد ایجکس کافی هست بدونید چیکار کرده .. :لبخندساده: مقدار متغیر رو گرفتیم که id ان captcha هست رو به صفحه ی
مورد نظر فرستادیم...
سپس یک تگ img رو روی آدرس صفحه ی securitycode.php ست کردیم ..
صفحه ی بعدی
<?php
session_start();
header('Content-type: image/jpeg');
$code = $_SESSION['code'];
$font_size = 18;
$image_width =100;
$image_height =40;
if(empty($_POST['flag'])){
$image = imagecreate($image_width,$image_height);
imagecolorallocate($image,200,200,200);
$text_color = imagecolorallocate($image,100,10,0);
imagettftext($image,$font_size,0,11,28,$text_color ,'calibri.ttf',$code);
imagejpeg($image);
}
$captcha = $_POST['captcha'];
if($captcha==$code){
echo 'کد امنیتی صحیح می باشد';
}else{
echo 'کد امنیتی اشتباه می باشد';
}
?>
که کارش تولید یک عکس و متنی که از session گرفته رو روش چاپ می کنه..
در آخر متن ارسالی رو چک میکنه و پیغام مورد نظر چاپ میشود.
یک تصویر امنیتی (Captcha ) ساده براتون میزارم امروز .. امید دارم موثر باشه.. :لبخندساده:
دو صفحه نیاز هست .. یکی captcha.php که تصویر رو نشون میده به همراه ارسال کد امنیتی و دیگری securitycode.php هستش برای چک کردن کد و تولید تصویر امنیتی.
صفحه ی Captcha.php رو اینجوری مینویسیم ..
<script src="js/jquery-1.11.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#submit').click(function(){
var captcha = $('#captcha').val();
var flag;
$.ajax({
type:'POST',
url:'securitycode.php',
data:{'captcha':captcha,'flag':1},
success:function(data){
$('#result').text(data);
}
});
});
});
</script>
<?php
session_start();
$text = "ZXCVBNMLKJHGFDSAQWERTYUIOPzxcvbnmlkjhgfdsaqwertyui op0123654789";
$code ='';
for($i=1;$i<=5;$i++){
$start = rand(0,strlen($text));
$code.=substr($text,$start,1);
}
$_SESSION['code']=$code;
?>
<br>
<img src="securitycode.php">
<br>
<br>
<input type="text" id="captcha" name="captcha"><br>
<input type="submit" id="submit" value="submit">
<div id="result">
</div>
توضیح کد php این صفحه :
ساده هستش .. یک متن رو به یک متغیر نسبت دادیم که دلبخواه هست .. $text
سپس به وسیله حاقه ی for و به صورت rand یک رشته یا کد 5 رقمی تولید و داخل $code نوشتیم سپس داخل session گذاشتیم...
کد های ایجکس هم مشخص هست .. مکی مطالعه در مورد ایجکس کافی هست بدونید چیکار کرده .. :لبخندساده: مقدار متغیر رو گرفتیم که id ان captcha هست رو به صفحه ی
مورد نظر فرستادیم...
سپس یک تگ img رو روی آدرس صفحه ی securitycode.php ست کردیم ..
صفحه ی بعدی
<?php
session_start();
header('Content-type: image/jpeg');
$code = $_SESSION['code'];
$font_size = 18;
$image_width =100;
$image_height =40;
if(empty($_POST['flag'])){
$image = imagecreate($image_width,$image_height);
imagecolorallocate($image,200,200,200);
$text_color = imagecolorallocate($image,100,10,0);
imagettftext($image,$font_size,0,11,28,$text_color ,'calibri.ttf',$code);
imagejpeg($image);
}
$captcha = $_POST['captcha'];
if($captcha==$code){
echo 'کد امنیتی صحیح می باشد';
}else{
echo 'کد امنیتی اشتباه می باشد';
}
?>
که کارش تولید یک عکس و متنی که از session گرفته رو روش چاپ می کنه..
در آخر متن ارسالی رو چک میکنه و پیغام مورد نظر چاپ میشود.