يه مطلب خوب ديگه از بادبادک
ساعت ٦:۳٠ ‎ب.ظ روز ۱۳۸٢/۸/۱٢   کلمات کلیدی:
●به اشتراک گذاشتن اين مطلب در سايتهاي توييتر،share in your twitter account،فيس بوک،share in your facebook wall،بالاترین،share in balatarinn،خوشمزه،share in delicious،ياهو،share in Yahoo Buzz،ديگ،share in Digg it،گوگل،share with Google Buzz،کلوب،share in Cloob،ویووو،share in viwio !!!

●به اشتراک گذاشتن اين مطلب در سايتهاي توييتر،share in your twitter account،فيس بوک،share in your facebook wall،بالاترین،share in balatarinn،خوشمزه،share in delicious،ياهو،share in Yahoo Buzz،ديگ،share in Digg it،گوگل،share with Google Buzz،کلوب،share in Cloob،ویووو،share in viwio !!!
تشکر از diamound4u
ساعت ٦:٢٥ ‎ب.ظ روز ۱۳۸٢/۸/۱٢   کلمات کلیدی:
●به اشتراک گذاشتن اين مطلب در سايتهاي توييتر،share in your twitter account،فيس بوک،share in your facebook wall،بالاترین،share in balatarinn،خوشمزه،share in delicious،ياهو،share in Yahoo Buzz،ديگ،share in Digg it،گوگل،share with Google Buzz،کلوب،share in Cloob،ویووو،share in viwio !!!

http://diamound4u.persianblog.ir

امروز تو اين وبلاگ يه مطلب خوب ديدم گفتم اين ريختی ازش تشکر کنم



wwwarow.gif مقدمه:
فرض کنيد ساعت 4:00 است و رئيس شما ساعت 4:30 به يک CGI نويس نياز دارد، و شما حتی نمی دونيد CGI چی هست! شما به جای درستی آمديد..
چيز نگران کننده ای وجود دارد ، با وجود اين شايد شما باز هم در درون خود نگران هستيد...
اگر شما توانايی خواندن از يک STDIN و نوشتن در STDOUT را داريد ، شما می توانيد نويسنده CGI scripts باشيد!
اگر شما اکنون يک برنامه نويس هستيد ، اين الفبای ساده می تواند در عرض چند دقيقه کليات و چارچوب CGI را به شما ياد دهد.
و اگر شما يک برنامه نويس نيستيد ، اين الفبا کمک چندانی به شما نمی کند – با عرض معذرت برويد و يک زبان برنامه نويسی ياد بگيريد و برگرديد مطمئن باشيد که موفق می شويد . موفق باشيد !
اين متن بيشتر در نوشتن اسکری پت های CGI برای راه اندازی و پيشبردن صفحات HTML و همچنين فرم های HTML در وب تمرکز، و از بعضی جزئيات چشم پوشی می کند ، با اين وجود می تواند به سرعت شما را راه بياندازد.( به عبارت ديگر در يک ساعت 

 wwwarow.gif CGI چيست ؟
CGI يک زبان برنامه نويسی نيست بلکه يک پروتکل ساده است می تواند برای ارتباط بين فرم های درون وب و همچنين برنامه شما بکار رود.
يک اسکريپت CGI می تواند به هر زبانی که قابليت خواند از از يک STDIN و نوشتن در STDOUTو همچنين خواند و ايجاد کردن متغيير ها را دارد نوشته شود يا به طور کلی هر زبان برنامه نويسی ( شامل C , Perl و ...)

wwwarow.gif ساختمان يک اسکريپت CGI :

در اينجا يک روال عادی برای پيکر بندی يک CGI اسکريپت توضيح داده ميشود:

1) دريافت اطلاعات کاربری از ورودی
2) چه کاری بايد با داده های ورودی انجام شود؟
3)نوشتن HTML برای نمايش خروجی

اولين و آخرين مرحله در زير شرح داده ميشود: 


wwwarow.gif دريافت اطلاعات کاربری از ورودی

وقتی کاربر يک فرم را ثبت می کند ، اسکريپت شما اطلاعات فرم را به صورت يک سری ارزش يا اسم برای متغيير ها دريافت می کند.
اسم ها چيزهايی هستند که شما در تگ INPUT ( يا تگ SELECT يا تگ TEXTAREA) مشخص می کنيد و هر چيزی که کاربر تايپ می کند و يا انتخاب می کند به عنوان ارزش (value) محسوب می شود.( کاربر می تواند همراه فرم فايل هم ثبت کند ولی اين قسمت شامل مبحث ما نمی شود.
اين مجموعه اطلاعات که به دست شما می رسد ،يک رشته بلند هست که شما بايد آن را تجزيه کنيد.
اين زياد پيچيده نيست و روالهای بسياری وجود دارد که اين کار را برای شما انجام می دهد . چند نمونه در زير آورده شده اند :
يکی در زبان پرل : Here
يک نوع ساده تر در پرل : Here
و آخری در C : Here

برای CGI اسکريپت های آماده و نوشته شده می توانيد به قسمت پرل CGI.pm و يا با دايرکتوری CGI در ياهو سر بزنيد.

اگر اين اسکريپت ها مشکل شما را حل کرد و برايتان کافی بود می توانيد از مرحله بعد صرف نظر کنيد و اگر هم مايليد که خود بنويسيد می توانيد ادامه دهيد...

رشته بلند در يکی از فرمت های زير است:
CODE

"name1=value1&name2=value2&name3=value3"
"name1=value1;name2=value2;name3=value3"


بنابراين فقط علامت های امپرسند و يا سمی کالن را جدا کنيد و سپس به علامت مساوی بپردازيد سپس دو کار بايد با هر ارزش انجام بديد:
1) تمام علامت های + را به فضای خالی تبديل کنيد.
2) تمام کاراکتر های اسکی را که به صورت %xx است و xx عدد هگز کاراکتر در جدول اسکی است را به معادل خودشان تبديل کنيد. برای مثال : "%3d" to "=".
رشته اصلی به صورت URL-encoded تبديل شده و برای استفاده از علائم مانند مساوی و .. توسط کاربر اين کار ضروری است .
خوب، از کجا رشته بلند را پيدا کنيم؟
اين بستگی به روش (method) HTTP دارد که درون فرم استفاده شده است که به دو صورت :
GET : در اين روش رشته بلند در محدوده متغيير در حال استفاده است (QUERY_STRING)
POST : از طريق STDIN خوانده می شود .طول بايت های رشته را می گيرد و متغيير را می خواند.( CONTENT_LENGTH)
(در واقع POST برای مصارف عمومی و کلی استفاده می شود ولی GET برای فرم های کوچک مناسب است)


wwwarow.gif جوابگويی به درخواست کاربر
قبل از هر چيز خط زير را بنويسيد:
Content-type: text/html

به علاوه يک خط خالی در STDOUT (صفحه خروجی) و بعد از آن کدهای HTML خود را در صفحه خروجی بنويسيد ، اين زمانی که اسکريپت شما به پايان برسد برای کاربر به نمايش در می آيد. و اين تمام چيزی است که درون آن وجود دارد!
بله، شما به راحتی و با سرعت کد HTML خود را به دست می آوريد و اين اصلاً سخت نيست. در حقيقت HTML در همين راه طراحی شده تا بتواند به سادگی STDOUT را طراحی کند.

اگر می خواهيد خروجی غير از HTML باشد به آموزش بعدی که می نويسم و در آن نکات CGI رو شرح دادم مراجعه کنيد.

wwwarow.gif خوب، خسته نباشيد!!

ديديد چقدر ساده بود؟ اگر شما هنوز من را باور نداری برويد و يک اسکريپت بنويسيد ، و اطمينان حاصل کنيد که در جای درست در سرور قرار داديد و آن را قابل اجرا کنيد.(CHMOD)
و به آموزش بعدی که می نويسم و در آن نکات CGI رو شرح دادم مراجعه کنيد.
قبل از اين که اسکريپت های زيادی بنويسيد قسمت امنيت اسکريپت ها رادر مقاله بعدی بخوانيد.
و لينک های آموزشی زير که به طور کامل به شرح cgi پرداختند:
http://hoohoo.ncsa.uiuc.edu/cgi/
http://www.w3.org/
http://www.w3.org/CGI/

حالا اگر عزيزی خواست با ويژوال بيسيك
CGI
بنوسيه، می تونه از روال
CGI4VB.BAS
استفاده كنه. می تونين آخرين نسخش رو به رايگان از اينجا بگيرين

●به اشتراک گذاشتن اين مطلب در سايتهاي توييتر،share in your twitter account،فيس بوک،share in your facebook wall،بالاترین،share in balatarinn،خوشمزه،share in delicious،ياهو،share in Yahoo Buzz،ديگ،share in Digg it،گوگل،share with Google Buzz،کلوب،share in Cloob،ویووو،share in viwio !!!