PDA

نسخه کامل مشاهده نسخه کامل : چگونگی ایجاد captcha



atifazi
01-03-2010, 00:18
سلام دوستان . یه سوال فکر منو مشغول کرده. در سیستم captcha کدی که توی بانک ذخیره میشه ، چطوری ذخیره میشه ؟ یعنی منظورم اینه که در یک لحظه ممکنه چندین نفر چندین کد مختلف را وارد کنن و این کدها توی بانک ذخیره بشه. اونوقت چطور میخوایم مقدار وارد شده را با مقدار توی بانک تست کنیم ؟ مقدار توی بانک که چندین مقداره . چطو میشه فهمید فلان کد تولید شده برای فلان کاربره تا شرط را تست کنه .

و اینکه بانک captcha بعد از تست کد و ... پاک میشه یا هر دفعه replace میشه. آخه میدونیم کدی که تولید شده را موقتی نگه میداره.

بذارین کمی ساده تر کنم . فکر کنید دو نفر دارن کدی امنیتی را وارد میکنن . یکی علی یکی هم رضا . کد امنیتی علی 10 هست و رضا 20 .
سوال ؟
1- آیا این دو مقدار 10 و 20 دو رکورد جداگانه توی بانک تشکیل میدن یا نه بانک captcha فقط یه رکورد داره.
2- اگه فقط یه رکورد داره طور واسه هر کاربر مجزا در یک واحد مقدار را توی بانک ذخیره میکنه ؟
3- اگه برای هر مقدار 10 و 20 یک رکورد جدید ایجاد میکنه چطور موقع شرط تست میفهمیم 10 برای علی و 20برای رضا هست؟
4- در هر صورت آیا بعد تست ،اون رکورد را پاک میکنه ؟ آخه باید یه جوری از بین بره وگرنه کلی افزونگی بوجود میاد.

شمنده که نتونستم ساده تر سوالمو بگم !!!:31:

pouya92
01-03-2010, 18:03
ببین عزیز اصلا captcha چیزی تو بانک ذخیره نمیکنه و همش از معجزه session استفاده میشه یعنی به طور موقت در یک session ذخیره میشه بعد دوباره پاک میشه و کاری با بانک نداره.
اگه بخواد تو بانک ذخیره کنه بانک میترکه :دی
...
موفق باشـــــــــــــــــی

atifazi
02-03-2010, 00:37
حرف شما درسته . خودم هم به همین نتیجه رسیدم . بعد هر بار اجرا باید حافظه ایجاد شده شده را از بین ببرم یا اینکه همون session را ببندم همه حافظه ها آزاد میشه ؟

pouya92
02-03-2010, 01:59
هم میتونی از دستور :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
استفاده کنی و هم از
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
//////////
موفق باشی

atifazi
03-03-2010, 10:35
سلام دوست عزیز .

کد زیر را در نظر بگیرین :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

در خط آخر عکسی که به مرورگر فرستاده میشه در نقطه 0و0 چاپ میشه. اگه من بخوام توی نقطه دیگه نمایش داده بشه چطور میشه ؟ مثلا وسط صفحه نمایش .

و سوال دیگه اینه که چرا اگه تو این کد از دستوراتی غیر دستورات بالا استفاده کنم عکس نمایش داده نمیشه ؟

مثلا قبل خط آخر بنویسم <br> یا اول ssesion بنویسم یا ... عکس نمایش داده نمیشه. چرا ؟

tazphoenix
25-03-2010, 18:07
اگه میخای جای دیگه چاپ شه باید کد توی imagestring ایکس و ایگرگ(!) رو معلوم کنی جواب سوال دومت هم سادس چون این فایل header پی ان جی(!)داره و فقط و فقط کدهای مربوط به GD رو اجرا میکنه

moonwalker
28-03-2010, 23:21
این خط از کد برای سایتهای پر بازدید باعث مصرف زیاد حافظه و زمان میشه!


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

سه تابه همزمان و تابع سنگین md5 بهنر نیست بجای اینکار از ساخت عبارت تصادفی بهره بگیرید!


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



در خط آخر عکسی که به مرورگر فرستاده میشه در نقطه 0و0 چاپ میشه. اگه من بخوام توی نقطه دیگه نمایش داده بشه چطور میشه ؟ مثلا وسط صفحه نمایش .
نه نمیشه!


و سوال دیگه اینه که چرا اگه تو این کد از دستوراتی غیر دستورات بالا استفاده کنم عکس نمایش داده نمیشه ؟

وقتی به header کاراکتر دیگری مثل br اضافه میکنی فایل تصویر رو دچار مشکل میکنه!