pedia-learning

ورود

گذرواژه‌تان را فراموش کرده‌اید؟

ثبت نام

ثبت نام
انجمن عمومی گسترش فناوری آگو

اگر اولین بار از انجمن بازدید می کنید برای دسترسی کامل به انجمن عضو شوید بعد عضویت قادر به ارسال مطلب و شرکت در بحث خواهید داشت

ارسال پاسخ 
 
امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
آموزش ساخت تصویر امنیتی ” captcha “
03-03-2014, 04:30 PM
ارسال: #1
آموزش ساخت تصویر امنیتی ” captcha “
سلام خدمت کاربران عزیز phpro.ir
امروز می خام و استون آموزش ساخت کد امنیتی ( CAPTCHA ) رو بزارم…

امیدوارم این مطلب نیز مفید قرار به گیره.
کد امنیتی چیست و به چه دردی می‌خورد؟

شما هم در جستجو و مرور وب سایت ها و موقع ثبت نام و یا ارسال یک فرم با کد های امنیتی روبرو شده‌اید!

یک تصویر از یک کد امنیتی :

[تصویر:  recaptcha-example.gif]

کد های امنیتی به شکل‌های زیادی به چشم می‌خورند… و شکل بالا برگرفته شده از سایت دیدن لینک ها برای شما امکان پذیر نیست. لطفا ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید.
می‌باشد..
کد امنیتی به چه درد می‌خورد؟

زمانی که شما یک فرمی را برای ثبت نام کاربر و یا فرم تماس با ما ایجاد می‌کنید باید اطمینان حاصل کنید که شخصی که داره فرمه شما رو تکمیل می کنه و ارسال می کنه یک انسان باشه و نه یه روبات… روبات‌ها با ثبت نام پشت سرهم در وب سایت شما شاید بتوانند در هر ثانیه چنیدن کاربر و یا چندین فرم را کامل کنند و به سرور شما ارسال کنند.

امیدوارم توضیحاتم قانع کننده باشه..

میریم سراغ طراحی کد امنیتی

موارد مورد نیاز PHP و GD LIB

در صورتی که ازهاست های داخلی ( localhost ) و نرم افزار های ماننده WampServer و EasyPHP استفاده می‌کنید باید به قسمت php.ini بریدو کد : extension=php_gd2.dll; پیدا کنید. اگر با ” ; ” مواجه شدید حذفش کنید …

این کار برای فعال سازی GD می‌باشد…

شروع میکنم برای ایجاد کد امنیتی باید یک session ایجاد کنیم :

کد php:
@session_start(); 

حالا باید محتوای فایل PHP رو به تصویر تغیر بدیم :

کد php:
header('Content-Type: image/png'); 

و حالا یک تصویر ایجاد میکنیم همراه با سایز دلخواه :

کد php:
$width '200';
$height '100';

$phppro_im imagecreatetruecolor($width$height); 

حالا مغادیر رنگ ها رو مشخصی میکنیم :

خط آخر سازنده رنگ پس زمینه هستش

کد php:
$phppr_text_color imagecolorallocate($phppro_im000000);
$phpro_background imagecolorallocate($phppro_im867263);
imagefilledrectangle($phppro_im001000129$phpro_background); 

حالا باید یک عدد شانسی ( RAND ) بسازیم

کد php:
$phppr_int rand(1900000010900000); 

ساخت session برای کد تعین شده :

کد php:
$phppro_value $phppro_int;
$_SESSION['phpro-num'] = $phppro_value

انتخابه فونت :

کد php:
$font 'Age.otf'

و قدم های آخر

کد php:
// تعین مکان ها
$top rand(10,-15);
$right  rand(024);
$size  rand(1520);
// ایجاد متن
imagettftext($phppro_im$size$top$right42$phppr_text_color$font$phppro_int);
// ساخت تصویر و اتمام
imagepng($phppro_im);
// حذف کردن فایل
imagedestroy($phppro_im); 

استفاده :

کد php:
<form action="?register" method="post">

<
img src="(address file php )">

<
input type="text" name="captcha" />

<
input type="submit" value="click">

</
form


کد php:
if ( $_POST['captcha'] ) {

 if ( 
$_POST['captcha'] == $_SESSION['phpro-num'])

{ echo 
'sahih; }

else{echo ' 
ghalat '}

&nbsp; 
نقل قول این ارسال در یک پاسخ
ارسال پاسخ 


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان


Persian Translation by MyBBIran.com - Ver: 4.1
Powered by MyBB, © 2002-2024 MyBB Group.
Theme designed by Marvel (Sidebar created by Yaldaram - Yaldaram.com)
Theme Translation by Mt Edition