تبلیغات inurl c board cgi cmd. فناوری های اینترنتی آزمایشگاه: CGI. استراتژی برنامه نویسی عمومی

سبزیجات 15.04.2022

نحوه جستجو با استفاده از google.com

احتمالاً همه می دانند که چگونه از موتور جستجویی مانند گوگل استفاده کنند =) اما همه نمی دانند که اگر یک عبارت جستجو را به درستی با استفاده از ساختارهای خاص بنویسید، می توانید نتایج مورد نظر خود را بسیار کارآمدتر و سریعتر به دست آورید =) در این مقاله من سعی خواهم کرد نشان دهم که چگونه باید برای جستجوی صحیح انجام دهید

Google از چندین اپراتور جستجوی پیشرفته پشتیبانی می کند که هنگام جستجو در google.com معنای خاصی دارند. به طور معمول، این اپراتورها جستجو را تغییر می دهند، یا حتی به گوگل می گویند که انواع مختلف جستجو را انجام دهد. به عنوان مثال، طراحی ارتباط دادن:یک اپراتور ویژه است و پرس و جو لینک: www.google.comبه شما یک جستجوی معمولی نمی دهد، اما در عوض تمام صفحات وب را که پیوندهایی به google.com دارند پیدا می کند.
انواع درخواست جایگزین

حافظه پنهان:اگر کلمات دیگری را در پرس و جو وارد کنید، Google کلمات موجود در سند ذخیره شده را برجسته می کند.
مثلا، کش: www.webمحتوای ذخیره شده را با کلمه "وب" برجسته نشان می دهد.

ارتباط دادن:عبارت جستجوی بالا صفحات وبی را نشان می دهد که حاوی پیوندهایی به پرس و جوی مشخص شده هستند.
مثلا: لینک:www.websiteتمام صفحاتی که دارای پیوند به http://www.site هستند نمایش داده می شود

مربوط:صفحات وب را نشان می دهد که "مربوط" به صفحه وب مشخص شده هستند.
مثلا، مرتبط: www.google.comصفحات وب مشابه صفحه اصلی گوگل را فهرست می کند.

اطلاعات:اطلاعات درخواستی: اطلاعاتی را که گوگل در مورد صفحه وب درخواستی دارد ارائه می دهد.
مثلا، اطلاعات: وب سایتاطلاعاتی در مورد انجمن ما نشان می دهد =) (Armada - انجمن وب مسترهای بزرگسال).

سایر درخواست های اطلاعاتی

تعريف كردن:پرس و جو define: تعریفی از کلماتی که بعد از این تایپ می کنید را ارائه می دهد که از منابع مختلف آنلاین جمع آوری شده است. این تعریف برای کل عبارت وارد شده خواهد بود (یعنی شامل تمام کلمات در عبارت جستجوی دقیق می شود).

سهام:اگر یک پرس و جو را با سهام شروع کنید: Google بقیه عبارات پرس و جو را به عنوان نشانه های سهام تلقی می کند و به صفحه ای پیوند می دهد که اطلاعات آماده شده برای آن شخصیت ها را نشان می دهد.
مثلا، سهام: اینتل یاهواطلاعاتی در مورد اینتل و یاهو نشان خواهد داد. (توجه داشته باشید که باید کاراکترهای اخبار فوری را چاپ کنید، نه نام شرکت)

درخواست اصلاح کننده ها

سایت:اگر سایت: را در جستجوی خود قرار دهید، گوگل نتایج را به وب سایت هایی که در آن دامنه پیدا می کند محدود می کند.
همچنین می توانید مناطق جداگانه مانند ru، org، com و غیره را جستجو کنید ( سایت: کام سایت:ru)

allintitle:اگر یک پرس و جو با allintitle: اجرا کنید، گوگل نتایج را با تمام کلمات جستجو در عنوان محدود می کند.
مثلا، allintitle: جستجو در گوگلتمام صفحات جستجوی گوگل مانند تصاویر، وبلاگ و غیره را برمی گرداند

عنوان:اگر intitle: را در جستار خود قرار دهید، Google نتایج را به اسنادی که حاوی آن کلمه در عنوان هستند محدود می کند.
مثلا، عنوان: کسب و کار

آلینورل:اگر درخواستی را با allinurl اجرا کنید: Google نتایج را با تمام کلمات جستجو در URL محدود می کند.
مثلا، allinurl: جستجو در گوگلاسناد را با گوگل برمی گرداند و در عنوان جستجو می کند. همچنین، به عنوان یک گزینه، می توانید کلمات را با علامت (/) جدا کنید، سپس کلمات دو طرف اسلش در همان صفحه جستجو می شوند: مثال allinurl: foo/bar

inurl:اگر inurl: را در جستجوی خود قرار دهید، Google نتایج را به اسنادی که حاوی آن کلمه در URL هستند محدود می کند.
مثلا، انیمیشن inurl:website

در متن:فقط در متن صفحه برای کلمه مشخص شده جستجو می کند، بدون توجه به عنوان و متون پیوندها، و موارد غیر مرتبط با آن. همچنین یک مشتق از این اصلاح کننده وجود دارد - allintext:آن ها علاوه بر این، تمام کلمات در پرس و جو فقط در متن جستجو می شوند، که این نیز مهم است، و کلمات پرکاربرد در پیوندها را نادیده می گیرند.
مثلا، intext: انجمن

محدوده زمانی:جستجو در بازه های زمانی (daterange: 2452389-2452389)، تاریخ ها برای زمان در قالب جولیان مشخص شده است.

خوب، و انواع نمونه های جالب از درخواست ها

نمونه هایی از کامپایل پرس و جو برای گوگل. برای اسپمرها

inurl:control.guest?a=sign

Site:books.dreambook.com "URL صفحه اصلی" "Sign my" inurl:sign

سایت: www.freegb.net صفحه اصلی

Inurl:sign.asp "تعداد کاراکترها"

"پیام:" inurl:sign.cfm "فرستنده:"

inurl:register.php "ثبت کاربر" "وب سایت"

Inurl:edu/کتاب مهمان «کتاب مهمان را امضا کنید»

Inurl: ارسال "پست نظر" "URL"

Inurl:/archives/ "Comments:" "اطلاعات را به خاطر دارید؟"

"اسکریپت و کتاب مهمان ایجاد شده توسط:" "URL:" "نظرات:"

inurl:?action=add "phpBook" "URL"

عنوان: "ارسال داستان جدید"

مجلات

inurl:www.livejournal.com/users/mode=reply

inurl greatestjournal.com/mode=reply

Inurl:fastbb.ru/re.pl؟

inurl:fastbb.ru /re.pl؟ "کتاب مهمان"

وبلاگ ها

Inurl:blogger.com/comment.g?”postID””ناشناس”

Inurl:typepad.com/ "یک نظر ارسال کنید" "اطلاعات شخصی را به خاطر دارید؟"

Inurl:greatestjournal.com/community/ "ارسال نظر" "آدرس پوسترهای ناشناس"

"پست نظر" "آدرس پوسترهای ناشناس" -

عنوان: ارسال نظر

Inurl:pirillo.com "ارسال نظر"

انجمن ها

Inurl:gate.html?”name=Forums” “mode=reply”

inurl:”forum/posting.php?mode=reply”

inurl:”mes.php?”

inurl:”members.html”

inurl:forum/memberlist.php؟”

به لطف شبکه جهانی وب، تقریباً هر کسی می تواند اطلاعاتی را در اینترنت به شکلی دلپذیر و مناسب برای انتشار گسترده ارائه دهد. شما بدون شک در اینترنت گشت و گذار کرده اید و سایت های دیگری را دیده اید و تا به حال احتمالاً می دانید که کلمات اختصاری ترسناک مانند "HTTP" و "HTML" فقط مخفف "وب" و "روشی برای بیان اطلاعات در اینترنت" هستند. شاید قبلاً تجربه ای در ارائه اطلاعات در اینترنت داشته باشید.

اینترنت ثابت کرده است که یک رسانه ایده آل برای توزیع اطلاعات است، همانطور که محبوبیت بسیار زیاد و توسعه گسترده آن نشان می دهد. در حالی که برخی سودمندی اینترنت را زیر سؤال می برند و توسعه و محبوبیت گسترده آن را عمدتاً به تبلیغات تبلیغاتی نسبت می دهند، اینترنت بدون شک یک رسانه مهم برای ارائه انواع اطلاعات است. نه تنها خدمات زیادی برای ارائه اطلاعات به روز (اخبار، آب و هوا، رویدادهای ورزشی بی‌درنگ) و مواد مرجع به شکل الکترونیکی وجود دارد، بلکه مقادیر قابل توجهی از داده‌ها از نوع متفاوت نیز وجود دارد. IRS که تمام فرم های مالیاتی سال 1995 و سایر اطلاعات خود را از طریق شبکه جهانی وب توزیع می کرد، اخیراً به دریافت نامه های طرفداران از وب سایت خود اعتراف کرد. چه کسی فکرش را می‌کرد که IRS نامه‌های طرفداران را دریافت کند؟ این به این دلیل نبود که سایت او به خوبی طراحی شده بود، بلکه به این دلیل بود که ثابت کرد یک ابزار واقعاً مفید برای هزاران، شاید میلیون‌ها نفر است.

چه چیزی وب را منحصر به فرد و چنین سرویس اطلاعاتی جذابی می کند؟ اول از همه، به این دلیل که یک رابط هایپر مدیا برای داده ها فراهم می کند. هارد دیسک کامپیوتر خود را در نظر بگیرید. به طور معمول، داده ها به صورت خطی، شبیه به یک سیستم فایل بیان می شوند. به عنوان مثال، شما تعدادی پوشه دارید و در داخل هر پوشه یا اسناد یا پوشه های دیگر وجود دارد. وب از پارادایم متفاوتی برای بیان اطلاعات به نام هایپر مدیا استفاده می کند. رابط فرامتن از یک سند و پیوندها تشکیل شده است. پیوندها کلماتی هستند که برای مشاهده اسناد دیگر یا یافتن انواع دیگر اطلاعات روی آنها کلیک می شود. وب مفهوم فرامتن را به گونه‌ای دیگر از رسانه‌ها مانند گرافیک، صداها، ویدئوها را گسترش می‌دهد (از این رو نام "هایپرمدیا" نامیده می‌شود). برجسته کردن متن یا گرافیک روی یک سند به شما امکان می دهد اطلاعات مرتبط در مورد عنصر انتخاب شده را در هر تعداد فرم مشاهده کنید.

تقریباً همه می توانند از این روش ساده و منحصر به فرد ارائه و توزیع اطلاعات بهره مند شوند، از دانشگاهیان که می خواهند بلافاصله داده ها را با همکاران خود به اشتراک بگذارند تا افراد تجاری که اطلاعات مربوط به شرکت خود را با همه به اشتراک می گذارند. با این حال، در حالی که دادن اطلاعات بسیار مهم است، در چند سال گذشته بسیاری احساس کرده اند که دریافت اطلاعات به همان اندازه مهم است.

در حالی که وب یک رابط ابررسانه ای منحصر به فرد برای اطلاعات فراهم می کند، بسیاری دیگر نیز وجود دارد. راه های موثرتوزیع داده ها به عنوان مثال، سرویس های شبکه مانند پروتکل انتقال فایل (FTP) و گروه خبری "Gopher" مدت ها قبل از ظهور شبکه جهانی وب وجود داشتند. ایمیل، تقریباً از همان ابتدای راه اندازی این شبکه ها، رسانه اصلی ارتباط و تبادل اطلاعات از طریق اینترنت و اکثر شبکه های دیگر بوده است. چرا اینترنت به روشی محبوب برای توزیع اطلاعات تبدیل شده است؟ جنبه چند رسانه ای اینترنت سهم ملموسی در موفقیت بی سابقه آن داشته است، اما برای اینکه اینترنت موثرترین باشد، باید تعاملی باشد.

بدون امکان دریافت ورودی از کاربران و ارائه اطلاعات، وب یک محیط کاملاً ایستا خواهد بود. اطلاعات فقط در قالب مشخص شده توسط نویسنده در دسترس خواهد بود. این یکی از احتمالات محاسباتی را به طور کلی تضعیف می کند: اطلاعات تعاملی. به عنوان مثال، به جای مجبور کردن کاربر به مرور اسناد متعدد به گونه ای که گویی در حال مرور یک کتاب یا فرهنگ لغت است، بهتر است به کاربر اجازه داده شود تا کلمات کلیدی مورد علاقه خود را شناسایی کند. کاربران می توانند نحوه ارائه داده ها را به جای تکیه بر ساختار سفت و سختی که توسط ارائه دهنده محتوا تعریف شده است، سفارشی کنند.

اصطلاح "وب سرور" می تواند گمراه کننده باشد زیرا می تواند به ماشین فیزیکی و نرم افزاری که برای تعامل با مرورگرهای اینترنت استفاده می کند اشاره کند. هنگامی که یک مرورگر یک آدرس وب معین را درخواست می کند، ابتدا از طریق اینترنت به دستگاه متصل می شود و نرم افزار وب سرور درخواست یک سند را ارسال می کند. این نرم افزار به طور مداوم اجرا می شود، منتظر چنین درخواست هایی است و بر اساس آن پاسخ می دهد.

اگرچه سرورها می توانند داده ارسال و دریافت کنند، عملکرد خود سرور محدود است. به عنوان مثال، ابتدایی ترین سرور فقط می تواند فایل درخواستی را به مرورگر ارسال کند. سرور معمولاً نمی داند با این یا آن ورودی اضافی چه کند. اگر ISP به سرور نگوید چگونه این اطلاعات اضافی را مدیریت کند، سرور به احتمال زیاد ورودی را نادیده می گیرد.

برای اینکه سرور بتواند علاوه بر جستجو و ارسال فایل به مرورگر اینترنت، عملیات دیگری را انجام دهد، باید بدانید که چگونه عملکرد سرور را گسترش دهید. به عنوان مثال، یک وب سرور نمی تواند پایگاه داده را بر اساس کلمه کلیدی وارد شده توسط کاربر جستجو کند و چندین سند منطبق را برگرداند مگر اینکه چنین قابلیتی به طریقی در سرور برنامه ریزی شده باشد.

CGI چیست؟

رابط دروازه مشترک (CGI) یک رابط برای سرور است که به شما امکان می دهد عملکرد سرور را گسترش دهید. با استفاده از CGI، می توانید به صورت تعاملی با کاربرانی که به سایت شما دسترسی دارند کار کنید. در سطح نظری، CGI به شما امکان می دهد توانایی سرور را برای تجزیه (تفسیر) ورودی از مرورگر و برگرداندن اطلاعات بر اساس ورودی کاربر گسترش دهید. در سطح عملی، CGI رابطی است که به برنامه نویس اجازه می دهد برنامه هایی بنویسد که به راحتی با یک سرور ارتباط برقرار کنند.

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

اول اینکه چنین کاری مستلزم دسترسی به کد سرور است که همیشه امکان پذیر نیست.

ثانیاً دشوار است و به دانش فنی گسترده ای نیاز دارد.

ثالثاً، این فقط برای یک سرور خاص قابل اجرا است. اگر نیاز دارید سرور خود را به پلتفرم دیگری منتقل کنید، باید کد را اجرا کنید یا حداقل زمان زیادی را صرف انتقال کد به آن پلتفرم کنید.

چرا CGI؟

CGI یک راه حل قابل حمل و آسان برای این مشکلات ارائه می دهد. پروتکل CGI یک راه استاندارد برای ارتباط برنامه ها با یک وب سرور تعریف می کند. بدون دانش خاصی، می توان برنامه ای را به هر زبان ماشینی نوشت که با یک وب سرور ارتباط برقرار می کند و با آن ارتباط برقرار می کند. این برنامه با تمام سرورهای وب که پروتکل CGI را درک می کنند کار می کند.

ارتباط CGI توسط ورودی و خروجی استاندارد انجام می شود، به این معنی که اگر می دانید چگونه داده ها را با استفاده از زبان برنامه نویسی خود چاپ و بخوانید، می توانید یک برنامه وب سرور بنویسید. جدا از تجزیه ورودی و خروجی، برنامه نویسی برنامه های CGI تقریباً معادل برنامه نویسی هر برنامه دیگری است. به عنوان مثال، برای برنامه ریزی یک برنامه "Hello, World!"، از توابع چاپ زبان خود و فرمت تعریف شده برای برنامه های CGI برای چاپ پیام مناسب استفاده کنید.

انتخاب زبان برنامه نویسی

از آنجایی که CGI یک رابط عمومی است، شما محدود به هیچ زبان ماشین خاصی نیستید. سوال مهمی که اغلب پرسیده می شود این است که از چه زبان های برنامه نویسی می توان برای برنامه نویسی CGI استفاده کرد؟ می توانید از هر زبانی که به شما اجازه انجام کارهای زیر را می دهد استفاده کنید:

  • چاپ به stdout
  • از ورودی استاندارد بخوانید
  • خواندن از حالت های متغیر

تقریباً همه زبان های برنامه نویسی و بسیاری از زبان های برنامه نویسی این سه کار را انجام می دهند و شما می توانید از هر یک از آنها استفاده کنید.

زبان ها در یکی از دو کلاس زیر قرار می گیرند: ترجمه و تفسیر. یک زبان ترجمه شده مانند C یا C++ معمولا کوچکتر و سریعتر است، در حالی که یک زبان ترجمه شده مانند Perl یا Rexx گاهی اوقات نیاز به یک مترجم بزرگ برای بارگذاری هنگام راه اندازی دارد. علاوه بر این، اگر زبان شما قابل ترجمه باشد، می توانید کدهای باینری (کدهای ترجمه شده به زبان ماشین) را بدون کد منبع توزیع کنید. توزیع اسکریپت های تفسیر شده معمولاً به معنای توزیع کد منبع است.

قبل از انتخاب زبان، ابتدا باید اولویت های خود را در نظر بگیرید. شما باید مزایای سرعت و کارایی یک زبان برنامه نویسی را با سهولت برنامه نویسی دیگری ارزیابی کنید. اگر تمایل به یادگیری زبان دیگری دارید، به جای استفاده از زبانی که از قبل می دانید، مزایا و معایب هر دو زبان را به دقت بسنجید.

دو زبان رایج برای برنامه نویسی CGI C و Perl هستند (که در این کتاب به هر دو اشاره شده است). هر دو مزایا و معایب واضحی دارند. Perl یک زبان بسیار سطح بالا و در عین حال قدرتمند است که مخصوصا برای تجزیه متن مناسب است. در حالی که سهولت استفاده، انعطاف پذیری و قدرت آن را به زبانی جذاب برای برنامه نویسی CGI تبدیل می کند، اندازه نسبتا بزرگ و عملکرد کندتر آن گاهی اوقات آن را برای برخی از برنامه ها نامناسب می کند. برنامه‌های C کوچک‌تر، کارآمدتر هستند و کنترل سیستم را در سطح پایین‌تری ارائه می‌کنند، اما برنامه‌نویسی آنها دشوارتر است، روال‌های پردازش متن داخلی سبک وزن ندارند و اشکال‌زدایی آنها دشوارتر است.

مناسب ترین زبان برای برنامه نویسی CGI چیست؟ همونی که از نظر برنامه نویسی برای خودتون راحت تره. هر دو به یک اندازه برای برنامه نویسی برنامه های CGI موثر هستند و با کتابخانه های مناسب، هر دو قابلیت های مشابهی دارند. با این حال، اگر سروری دارید که دسترسی به آن سخت است، می توانید از برنامه های C کامپایل شده کوچکتر استفاده کنید. اگر نیاز به نوشتن سریع برنامه ای دارید که به کار پردازش متن زیادی نیاز دارد، می توانید به جای آن از Perl استفاده کنید.

هشدارها

چند جایگزین مهم برای برنامه های کاربردی CGI وجود دارد. در حال حاضر بسیاری از سرورها شامل برنامه نویسی API هستند که برنامه نویسی پسوندهای مستقیم سرور را بر خلاف برنامه های کاربردی مستقل CGI آسان می کند. سرورهای API معمولا کارآمدتر از برنامه های CGI هستند. سایر سرورها شامل عملکرد داخلی هستند که می توانند موارد خاص غیر CGI مانند جفت شدن پایگاه داده را مدیریت کنند. در نهایت، برخی از برنامه‌ها را می‌توان با برخی فناوری‌های جدید سمت کلاینت (و نه سمت سرور) مانند جاوا مدیریت کرد. آیا CGI در مواجهه با چنین تغییرات سریعی در فناوری به سرعت منسوخ خواهد شد؟

به ندرت. CGI نسبت به فناوری های جدیدتر دارای چندین مزیت است.

  • همه کاره و قابل حمل است. شما می توانید یک برنامه CGI با استفاده از تقریباً هر زبان برنامه نویسی در هر پلتفرمی بنویسید. برخی از جایگزین‌ها، مانند API سرور، شما را به زبان‌های خاصی محدود می‌کند و یادگیری آن‌ها بسیار دشوارتر است.
  • بعید است که فناوری‌های کلاینت مانند جاوا جایگزین CGI شوند، زیرا برخی از برنامه‌ها وجود دارند که برنامه‌های کاربردی سرور برای اجرا مناسب‌تر هستند.
  • بسیاری از محدودیت های CGI محدودیت های HTML یا HTTP هستند. همانطور که استانداردهای اینترنت به طور کلی تکامل می یابند، قابلیت های CGI نیز تغییر می کند.

خلاصه

Common Gateway Interface پروتکلی است که توسط آن برنامه ها با سرورهای وب ارتباط برقرار می کنند. تطبیق پذیری CGI به برنامه نویسان این امکان را می دهد که برنامه های دروازه را تقریباً به هر زبانی بنویسند، اگرچه معاوضه های زیادی در ارتباط با زبان های مختلف وجود دارد. بدون این توانایی، ایجاد صفحات وب تعاملی دشوار خواهد بود، در بهترین حالت نیاز به تغییرات سرور دارد، و تعامل برای اکثر کاربرانی که مدیر سایت نیستند، غیرقابل دسترسی خواهد بود.

فصل 2. مبانی

چند سال پیش، صفحه‌ای برای یک کالج در هاروارد ایجاد کردم که می‌توانید نظرات خود را در مورد آن‌ها ارسال کنید. در آن زمان اینترنت جوان بود و اسناد کمیاب بود. من، مانند بسیاری دیگر، برای یادگیری برنامه نویسی CGI به مستندات مختصر و سیستم برنامه نویسی ایجاد شده توسط دیگران اعتماد کرده ام. اگرچه این روش مطالعه مستلزم کمی جستجو، آزمایش های فراوان و سوالات زیادی بود، اما بسیار موثر بود. این فصل حاصل کار اولیه من با CGI است (البته با کمی اصلاحات).

اگرچه درک کامل و تسلط کامل بر رابط دروازه رایج کمی زمان می برد، اما خود پروتکل بسیار ساده است. هرکسی که مهارت های اولیه برنامه نویسی داشته باشد و با وب آشنا باشد، می تواند به سرعت یاد بگیرد که چگونه برنامه های کاربردی نسبتاً پیچیده CGI را برنامه ریزی کند، درست همانطور که من و دیگران چند سال پیش یاد گرفتیم.

هدف این فصل ارائه اصول اولیه CGI به صورت جامع و البته مختصر است. هر مفهومی که در اینجا مورد بحث قرار می‌گیرد در فصل‌های بعدی به تفصیل ارائه می‌شود. با این حال، پس از مطالعه این فصل، می توانید برنامه نویسی برنامه های CGI را بلافاصله شروع کنید. هنگامی که به این سطح رسیدید، می توانید با خواندن بقیه این کتاب یا با آزمایش خود، نکات و نکات CGI را بیاموزید.

شما می توانید برنامه نویسی CGI را به دو کار کاهش دهید: دریافت اطلاعات از مرورگر وب و ارسال مجدد اطلاعات به مرورگر. زمانی که استفاده معمولی از برنامه های کاربردی CGI را به دست آورید، این کار نسبتاً شهودی است. اغلب از کاربر خواسته می شود تا فرمی را پر کند، به عنوان مثال، نام خود را درج کند. هنگامی که کاربر فرم را پر کرد و Enter را فشار داد، این اطلاعات به برنامه CGI ارسال می شود. سپس برنامه CGI باید این اطلاعات را به آنچه می فهمد تبدیل کند، آن را به درستی پردازش کند و سپس آن را به مرورگر بازگرداند، خواه این یک تایید ساده باشد یا نتیجه جستجوی پایگاه داده چند منظوره.

به عبارت دیگر، برنامه نویسی CGI نیازمند درک نحوه دریافت ورودی از مرورگر اینترنت و نحوه ارسال خروجی است. آنچه بین مراحل ورودی و خروجی یک برنامه CGI اتفاق می افتد به هدف توسعه دهنده بستگی دارد. متوجه خواهید شد که مشکل اصلی در برنامه نویسی CGI در این مرحله میانی نهفته است. بعد از اینکه نحوه کار با ورودی و خروجی را یاد گرفتید، اساساً برای تبدیل شدن به یک توسعه دهنده CGI کافی است.

در این فصل، شما با اصول ورودی و خروجی CGI و همچنین سایر مهارت‌های اساسی که برای نوشتن و استفاده از CGI به آن نیاز دارید، از جمله مواردی مانند ایجاد فرم‌های HTML و نام‌گذاری برنامه‌های CGI خود خواهید آموخت. این فصل موضوعات زیر را پوشش می دهد:

  • برنامه سنتی "سلام، جهان!"؛
  • خروجی CGI: ارسال اطلاعات برای نمایش در مرورگر اینترنت.
  • پیکربندی، نصب و اجرای برنامه. با پلتفرم ها و سرورهای وب مختلف آشنا خواهید شد.
  • ورودی CGI: تفسیر اطلاعات ارسال شده توسط مرورگر وب. آشنایی با برخی از کتابخانه های برنامه نویسی مفید برای تجزیه چنین ورودی.
  • یک مثال ساده: تمام دروس این فصل را پوشش می دهد.
  • استراتژی برنامه نویسی

با توجه به ماهیت این فصل، من فقط به برخی از موضوعات اشاره می کنم. نگران نباشید؛ همه این موضوعات در فصل های دیگر بسیار عمیق تر پوشش داده شده است.

سلام دنیا!

شما با یک کار برنامه نویسی مقدماتی سنتی شروع می کنید. شما برنامه ای خواهید نوشت که "Hello, World!" در مرورگر وب شما قبل از نوشتن این برنامه، باید بدانید که مرورگر وب چه اطلاعاتی از برنامه های CGI انتظار دارد. همچنین باید بدانید که چگونه این برنامه را اجرا کنید تا آن را در عمل ببینید.

CGI مستقل از زبان است، بنابراین می توانید این برنامه را به هر زبانی پیاده سازی کنید. چندین زبان مختلف در اینجا برای نشان دادن استقلال هر زبان استفاده می شود. در پرل، برنامه "سلام، جهان!" در فهرست 2.1 نشان داده شده است.

فهرست 2.1. سلام دنیا! در پرل. #!/usr/local/bin/perl # Hello.cgi - اولین برنامه CGI من چاپ "Content-Type: text/html\n\n"; چاپ" \n";چاپ" سلام دنیا!"؛ چاپ "\n";چاپ" \n";چاپ"

سلام دنیا!

\n";چاپ" \n"؛

این برنامه را با نام hello.cgi ذخیره کرده و در محل مناسب نصب کنید. (اگر مطمئن نیستید کجاست، نگران نباشید؛ در بخش «نصب و اجرای یک برنامه CGI» بعداً در این فصل متوجه خواهید شد.) برای اکثر سرورها، دایرکتوری صحیح cgi-bin نامیده می شود. . اکنون، برنامه را از مرورگر وب خود فراخوانی کنید. برای بیشتر، این به معنای باز کردن یکپارچه منبع یاب (URL) زیر است:

http://hostname/directoryname/hello.cgi

Hostname نام وب سرور شما است و Directorname دایرکتوری است که hello.cgi را در آن قرار داده اید (احتمالا cgi-bin).

تقسیم hello.cgi

در مورد hello.cgi باید به چند نکته توجه کنید.

ابتدا از دستورات چاپ ساده استفاده می کنید. برنامه های CGI به هیچ توصیفگر فایل یا توصیفگر خروجی خاصی نیاز ندارند. برای ارسال خروجی به مرورگر، به سادگی در stdout چاپ کنید.

دوم، توجه داشته باشید که محتوای اولین عبارت چاپی (Content-Type: text/html) در مرورگر وب شما ظاهر نمی شود. شما می توانید هر اطلاعاتی را که می خواهید به مرورگر ارسال کنید (صفحه HTML، گرافیک یا صدا)، اما ابتدا باید به مرورگر بگویید که چه نوع داده ای را ارسال می کنید. این خط به مرورگر می گوید که انتظار چه نوع اطلاعاتی را داشته باشد - در این مورد، یک صفحه HTML.

سوم، برنامه hello.cgi نام دارد. همیشه لازم نیست از پسوند .cgi با نام برنامه CGI خود استفاده کنید. اگر چه منبعهمچنین از پسوند cgi برای بسیاری از زبان‌ها استفاده می‌کند، از آن برای نشان دادن نوع زبان استفاده نمی‌شود، بلکه راهی است برای سرور برای شناسایی فایل به‌عنوان فایل اجرایی، نه فایل تصویری، فایل HTML یا فایل متنی. سرورها اغلب به گونه‌ای پیکربندی می‌شوند که فقط سعی کنند آن فایل‌هایی را اجرا کنند که دارای این پسوند هستند و در عین حال محتویات سایر فایل‌ها را نمایش می‌دهند. اگرچه استفاده از پسوند .cgi اختیاری است، اما همچنان یک عمل خوب در نظر گرفته می شود.

به طور کلی، hello.cgi از دو بخش اصلی تشکیل شده است:

  • به مرورگر می‌گوید که انتظار چه اطلاعاتی را داشته باشد (Content-Type: text/html)
  • به مرورگر می گوید که چه چیزی را نمایش دهد (سلام، جهان!)

سلام دنیا! در سی

برای نشان دادن استقلال برنامه های CGI از زبان ها، لیست 2.2 معادل C برنامه hello.cgi را نشان می دهد.

لیست 2.2. سلام دنیا! در C. /* hello.cgi.c - سلام، جهانی CGI */ #include int main() ( printf("Content-Type: text/html\r\n\r\n"); printf(" \n"); printf(" سلام دنیا!\n"); printf("\n"); printf(" \n"); printf("

سلام دنیا!

\n"); printf(" \n"))

توجه داشته باشید

توجه داشته باشید که نسخه پرل hello.cgi از چاپ Content-Type ": text/html\n\n "; در حالی که نسخه C از Printf(" Content-Type: text/html\r\n\r\n") استفاده می کند.

چرا Perl عبارت را با دو خط جدید (\n) چاپ می کند، در حالی که C printf با دو بار بازگشت و یک خط جدید (\r\n) پایان می یابد؟

به طور رسمی، سرصفحه ها (همه خروجی ها قبل از خط خالی) قرار است با بازگشت های حامل و خطوط جدید از هم جدا شوند. متأسفانه، در دستگاه‌های DOS و Windows، Perl \r را به‌عنوان خط جدید دیگری ترجمه می‌کند، نه به‌عنوان بازگشتی.

اگرچه استثنا \rs در Perl از نظر فنی نادرست است، اما تقریباً در همه پروتکل‌ها کار می‌کند و همچنین در تمام پلتفرم‌ها قابل حمل است. بنابراین، در تمام مثال‌های پرل در این کتاب، من از خطوط جدید برای جدا کردن سرصفحه‌ها استفاده می‌کنم، نه از بازگرداندن و خطوط جدید.

یک راه حل مناسب برای این مشکل در فصل 4، نتیجه گیری ارائه شده است.

نه سرور وب و نه مرورگر اهمیتی نمی دهند که از چه زبانی برای نوشتن برنامه استفاده می شود. در حالی که هر زبان به عنوان یک زبان برنامه نویسی CGI دارای مزایا و معایبی است، بهتر است از زبانی که بیشتر با آن راحت هستید استفاده کنید. (انتخاب زبان برنامه نویسی با جزئیات بیشتر در فصل 1 "واسط دروازه مشترک (CGI)" مورد بحث قرار گرفته است).

خروجی CGI

اکنون می‌توانیم نگاه دقیق‌تری به موضوع ارسال اطلاعات به مرورگر وب داشته باشیم. از مثال "Hello, World!"، می توانید ببینید که مرورگرهای وب دو مجموعه داده را انتظار دارند: یک هدر که حاوی اطلاعاتی مانند اطلاعاتی است که باید نمایش داده شود (مثلاً نوع محتوا: خط) و اطلاعات واقعی (آنچه در صفحه نمایش داده می شود). مرورگر اینترنت). این دو بلوک اطلاعاتی با یک خط خالی از هم جدا می شوند.

هدر HTTP header نامیده می شود. جزئیات مهمی در مورد اطلاعاتی که مرورگر قرار است دریافت کند را ارائه می دهد. انواع مختلفی از هدرهای HTTP وجود دارد، و عمومی‌ترین آنها هدرهایی است که قبلاً استفاده کرده‌اید: Content-Type: header. می‌توانید از ترکیب‌های مختلفی از سرصفحه‌های HTTP استفاده کنید، که با بازگشت‌های حامل و خطوط جدید (\r\n) از هم جدا شده‌اند. خط خالی که سرصفحه را از داده ها جدا می کند نیز شامل یک بازگشت و یک خط جدید است (چرا هر دو مورد نیاز هستند به طور خلاصه در یادداشت قبلی توضیح داده شده و در فصل 4 به تفصیل توضیح داده شده است). در فصل 4 با سایر هدرهای HTTP آشنا خواهید شد. شما در حال حاضر با یک هدر Content-Type: سروکار دارید.

Content-Type: هدر نوع داده ای را که CGI برمی گرداند، توصیف می کند. فرمت مناسب برای این سربرگ این است:

نوع محتوا: نوع/نوع فرعی

جایی که نوع/نوع فرعی، نوع صحیح برنامه افزودنی ایمیل چند منظوره اینترنتی (MIME) است. رایج ترین نوع MIME نوع HTML است: text/html. جدول 2.1 چند نوع MIME متداول را فهرست می کند که مورد بحث قرار خواهند گرفت. فهرست و تحلیل کامل تری از انواع MIME در فصل 4 ارائه شده است.

توجه داشته باشید

MIME در ابتدا برای توصیف محتوای بدنه پیام های ایمیلی اختراع شد. این یک روش نسبتاً رایج برای ارائه اطلاعات نوع محتوا شده است. می توانید اطلاعات بیشتری در مورد MIME در RFC1521 بخوانید. RFC ها در اینترنت مخفف عبارت «درخواست برای نظرات» هستند که خلاصه ای از تصمیمات گروه هایی در اینترنت است که در تلاش برای تعیین استانداردها هستند. می توانید نتایج RFC1521 را در آدرس زیر مشاهده کنید: http://andrew2.andrew.cmu.edu/rfc/rfc1521.html

جدول 2.1. برخی از انواع رایج MIME نوع MIME شرح متن/html زبان نشانه گذاری فرامتن (HTML) متن/فایل های متن ساده تصویر/گیف فایل های گرافیکی GIF تصویر/jpeg فایل های گرافیکی فشرده JPEG فایل های صوتی صوتی/پایه Sun *.au Audio/x-wav فایل های Windows*. wav.

پس از هدر و یک خط خالی، به سادگی داده ها را به شکلی که نیاز دارید چاپ می کنید. اگر HTML ارسال می‌کنید، تگ‌ها و داده‌های HTML را بعد از هدر در stdout چاپ کنید. همچنین می توانید با چاپ محتویات فایل در stdout، گرافیک، صدا و سایر فایل های باینری را ارسال کنید. چند نمونه از آن در فصل 4 آورده شده است.

نصب و اجرای برنامه CGI

این بخش تا حدودی از برنامه نویسی CGI منحرف می شود و در مورد پیکربندی وب سرور شما برای استفاده از CGI، نصب و اجرای برنامه ها صحبت می کند. شما با سرورهای مختلف برای پلتفرم های مختلف با جزئیات کم و بیش آشنا خواهید بود، اما برای یافتن بهترین گزینه باید در مستندات سرور خود عمیق تر بگردید.

همه سرورها به فضا برای فایل های سرور و فضایی برای اسناد HTML نیاز دارند. در این کتاب منطقه سرور ServerRoot و منطقه سند DocumentRoot نام دارد. در ماشین های یونیکس، ServerRoot معمولاً در /usr/local/etc/httpd/ و DocumentRoot معمولاً در /usr/local/etc/httpd/htdocs/ است. با این حال، این برای سیستم شما مهم نیست، بنابراین تمام ارجاعات به ServerRoot و DocumentRoot را با ServerRoot و DocumentRoot خود جایگزین کنید.

هنگامی که با استفاده از مرورگر وب خود به فایل ها دسترسی پیدا می کنید، فایل را در URL نسبت به DocumentRoot مشخص می کنید. به عنوان مثال، اگر آدرس سرور شما mymachine.org است، با URL زیر به این فایل دسترسی دارید: http://mymachine.org/index.html

پیکربندی سرور برای CGI

اکثر وب سرورها از پیش پیکربندی شده اند تا امکان استفاده از برنامه های CGI را فراهم کنند. معمولاً دو پارامتر به سرور می گوید که آیا فایل یک برنامه CGI است یا خیر:

  • دایرکتوری تعیین شده برخی از سرورها به شما اجازه می دهند تا مشخص کنید که تمام فایل های موجود در یک فهرست مشخص (که معمولاً به طور پیش فرض cgi-bin نامیده می شود) CGI هستند.
  • پسوند نام فایل بسیاری از سرورها از قبل پیکربندی شده اند تا به همه فایل هایی که به cgi. ختم می شوند اجازه دهند به عنوان CGI تعریف شوند.

روش دایرکتوری تعیین شده تا حدودی یک نگهدارنده است (اولین سرورها از آن به عنوان تنها روش برای تعیین اینکه کدام فایل برنامه های CGI هستند استفاده کردند)، اما چندین مزیت دارد.

  • برنامه‌های CGI را متمرکز نگه می‌دارد و از به هم ریختگی سایر دایرکتوری‌ها جلوگیری می‌کند.
  • شما محدود به پسوند نام فایل خاصی نیستید، بنابراین می توانید فایل ها را هر طور که می خواهید نام گذاری کنید. برخی از سرورها اجازه می دهند چندین دایرکتوری مختلف به عنوان دایرکتوری CGI تعیین شوند.
  • همچنین به شما کنترل بیشتری بر روی افرادی که می توانند CGI بنویسند، می دهد. برای مثال، اگر یک سرور دارید و از سیستمی با چندین کاربر پشتیبانی می‌کنید و نمی‌خواهید آنها از اسکریپت‌های CGI خود بدون بازبینی برنامه به دلایل امنیتی استفاده کنند، می‌توانید فقط آن فایل‌ها را در یک فهرست محدود و متمرکز به‌عنوان CGI تعیین کنید. . سپس کاربران باید برنامه های CGI را برای نصب در اختیار شما قرار دهند و می توانید ابتدا کد را بررسی کنید تا مطمئن شوید که برنامه هیچ کدی ندارد. مشکلات بزرگبا حفاظت

نشان دادن CGI از طریق پسوند نام فایل به دلیل انعطاف پذیری آن می تواند مفید باشد. شما محدود به یک دایرکتوری واحد برای برنامه های CGI نیستید. اکثر سرورها را می توان برای شناسایی CGI از طریق پسوند نام فایل پیکربندی کرد، اگرچه همه به طور پیش فرض اینگونه پیکربندی نشده اند.

هشدار

هنگامی که سرور خود را برای CGI پیکربندی می کنید، نگرانی های امنیتی را در نظر داشته باشید. برخی از نکات در اینجا پوشش داده خواهد شد، و فصل 9، ایمن سازی CGI، این جنبه ها را با جزئیات بیشتری مورد بحث قرار می دهد.

نصب CGI بر روی سرورهای یونیکس

صرف نظر از اینکه سرور یونیکس شما چگونه پیکربندی شده است، چندین مرحله وجود دارد که باید برای اطمینان از اجرای صحیح برنامه های CGI خود انجام دهید. سرور وب شما معمولاً به عنوان یک کاربر غیر موجود (یعنی کاربر یونیکس nobody - حسابی که مجوز فایل ندارد و نمی توان به سیستم وارد شد) اجرا می شود. اسکریپت های CGI (چه به زبان Perl نوشته شده باشند، چه در پوسته Bourne یا یک زبان برنامه نویسی دیگر) باید قابل اجرا و قابل خواندن در جهان باشند.

سرنخ

برای اینکه فایل های خود را در سطح جهانی خوانا و قابل اجرا کنید، از دستور UNIX permissions زیر استفاده کنید: chmod 755 filename.

اگر از یک زبان برنامه نویسی مانند Perl یا Tcl استفاده می کنید، مسیر کامل مترجم خود را در خط اول اسکریپت خود قرار دهید. به عنوان مثال، یک اسکریپت Perl با استفاده از perl در پوشه /usr/local/bin با خط زیر شروع می شود:

#!/usr/local/bin/perl

هشدار

هرگز یک مفسر (perl یا باینری Tcl Wish را در پوشه /cgi-bin قرار ندهید. این یک خطر امنیتی برای سیستم شما ایجاد می کند. این موضوع در فصل 9 با جزئیات بیشتر توضیح داده شده است.

برخی از سرورهای یونیکس جهانی

سرورهای NCSA و Apache فایل های پیکربندی مشابهی دارند زیرا سرور آپاچی در ابتدا بر اساس کد NCSA بود. به طور پیش فرض، آنها به گونه ای پیکربندی شده اند که هر فایلی در فهرست cgi-bin (که به طور پیش فرض در ServerRoot قرار دارد) یک برنامه CGI باشد. برای تغییر محل دایرکتوری cgi-bin، می توانید فایل پیکربندی conf/srm.conf را ویرایش کنید. فرمت برای پیکربندی این دایرکتوری است

ScriptAlias ​​با نام fakedirectoryname realdirectoryname

که در آن fakedirectoryname نام شبه دایرکتوری (/cgi-bin) و realdirectoryname مسیر کاملی است که برنامه‌های CGI در آن واقعاً ذخیره می‌شوند. با افزودن خطوط ScriptAlias ​​بیشتر می توانید بیش از یک ScriptAlias ​​را پیکربندی کنید.

پیکربندی پیش فرض برای نیازهای اکثر کاربران کافی است. به هر حال باید یک خط را در فایل srm.conf ویرایش کنید تا نام واقعی دایرکتوری درست را تعیین کنید. به عنوان مثال، اگر برنامه های CGI شما در /usr/local/etc/httpd/cgi-bin قرار دارند، خط ScriptAlias ​​در فایل srm.conf شما باید به شکل زیر باشد:

ScriptAlias ​​/cgi-bin/ /usr/local/etc/httpd/cgi-bin/

برای دسترسی یا پیوند به برنامه های CGI واقع در این فهرست، از URL زیر استفاده کنید:

http://hostname/cgi-bin/programname

جایی که hostname نام میزبان وب سرور شما و نام برنامه نام CGI شما است.

به عنوان مثال، فرض کنید برنامه hello.cgi را در فهرست cgi-bin خود (به عنوان مثال /usr/local/etc/httpd/cgi-bin) در سرور وب خود به نام www.company.com کپی کرده اید. برای دسترسی به CGI خود، از URL زیر استفاده کنید: http://www.company.com/cgi-bin/hello.cgi

اگر می خواهید سرور NCSA یا Apache را پیکربندی کنید تا هر فایل .cgi را به عنوان CGI تشخیص دهد، باید دو فایل پیکربندی را ویرایش کنید. اول، در فایل srm.conf، خط زیر را کامنت نکنید:

AddType application/x-httpd-cgi .cgi

این نوع MIME CGI را با پسوند cgi. مرتبط می کند. اکنون باید فایل access.conf را تغییر دهیم تا بتوانیم CGI را در هر دایرکتوری اجرا کنیم. برای این کار گزینه ExecCGI را به خط Option اضافه کنید. چیزی شبیه به خط زیر خواهد بود:

فهرست های گزینه FollowSymLinks ExecCGI

اکنون، هر فایلی با پسوند cgi. CGI در نظر گرفته می شود. به آن مانند هر فایلی روی سرور خود دسترسی داشته باشید.

سرور CERN به همان روشی که سرورهای Apache و NCSA پیکربندی شده است. سرور CERN به جای ScriptAlias ​​از دستور Exec استفاده می کند. به عنوان مثال، در فایل httpd.conf، خط زیر را مشاهده خواهید کرد:

Exec /cgi-bin/* /usr/local/etc/httpd/cgi-bin/*

سایر سرورهای یونیکس را می توان به همین روش پیکربندی کرد. جزئیات بیشتر در مورد این در مستندات سرور توضیح داده شده است.

نصب CGI روی ویندوز

اکثر سرورهای موجود برای ویندوز 3.1، ویندوز 95 و ویندوز NT با روش "پسوند نام فایل" برای تشخیص CGI پیکربندی شده‌اند. به طور کلی، تغییر پیکربندی یک سرور مبتنی بر ویندوز به سادگی نیاز به اجرای برنامه پیکربندی سرور و ایجاد تغییرات مناسب دارد.

گاهی اوقات پیکربندی یک سرور برای اجرای صحیح یک اسکریپت (مانند Perl) می تواند مشکل باشد. در داس یا ویندوز، مانند یونیکس نمی‌توانید یک مفسر را در خط اول یک اسکریپت مشخص کنید. برخی از سرورها از پیش پیکربندی شده اند تا پسوندهای نام فایل خاصی را با مفسر مرتبط کنند. به عنوان مثال، بسیاری از وب سرورهای ویندوز فرض می کنند که فایل هایی که به .pl ختم می شوند، اسکریپت های Perl هستند.

اگر سرور این نوع ارتباط فایل را پیاده سازی نمی کند، می توانید یک فایل دسته ای بسته بندی تعریف کنید که هم مفسر و هم اسکریپت را فراخوانی می کند. مانند سرور یونیکس، مفسر را در دایرکتوری cgi-bin یا هر دایرکتوری قابل دسترسی وب نصب نکنید.

نصب CGI در مکینتاش

دو گزینه معروف سرور برای مکینتاش WebStar StarNine و MacHTTP قبلی آن هستند. هر دو CGI را با پسوند نام فایل آن می شناسند.

MacHTTP دو پسوند مختلف را درک می کند: .cgi و .acgi که مخفف CGI ناهمزمان است. برنامه های CGI معمولی نصب شده بر روی مکینتاش (با پسوند cgi.) سرور وب را تا پایان اجرای CGI مشغول نگه می دارند و سرور را مجبور به تعلیق سایر درخواست ها می کند. از سوی دیگر، CGI ناهمزمان به سرور اجازه می‌دهد تا درخواست‌ها را حتی زمانی که در حال اجراست بپذیرد.

یک توسعه دهنده مکینتاش CGI که ​​از هر یک از این سرورهای وب استفاده می کند، باید در صورت امکان از پسوند .acgi به جای پسوند .cgi استفاده کند. باید با اکثر برنامه های CGI کار کند. اگر کار نکرد، نام برنامه را به .cgi تغییر دهید.

اجرای CGI

هنگامی که CGI را نصب کردید، راه های مختلفی برای اجرای آن وجود دارد. اگر CGI شما یک برنامه فقط خروجی است، مانند Hello, World!، می توانید آن را با دسترسی به URL آن اجرا کنید.

اکثر برنامه ها به عنوان یک برنامه کاربردی سرور در فرم HTML اجرا می شوند. قبل از یادگیری نحوه دریافت اطلاعات از این فرم ها، ابتدا مقدمه ای مختصر در مورد ایجاد چنین فرم هایی بخوانید.

آموزش سریع فرم های HTML

دو تگ مهم در فرم HTML تگ ها هستند

و . شما می توانید اکثر فرم های HTML را فقط با استفاده از این دو تگ ایجاد کنید. در این فصل، این تگ ها و زیرمجموعه کوچکی از انواع یا ویژگی های ممکن را بررسی خواهید کرد. . برای راهنمای کامل و پیوند به فرم‌های HTML، به فصل 3، HTML و فرم‌ها مراجعه کنید.

برچسب بزنید

برچسب بزنید برای تعیین اینکه کدام قسمت از فایل HTML باید برای اطلاعات وارد شده توسط کاربر استفاده شود استفاده می شود. این به نحوه فراخوانی بیشتر صفحات HTML یک برنامه CGI اشاره دارد. ویژگی های برچسب نام و مکان برنامه را تعریف می کنند - به صورت محلی یا به صورت URL کامل، نوع رمزگذاری استفاده شده و روش انتقال داده مورد استفاده توسط برنامه.

خط بعدی مشخصات تگ را نشان می دهد :

< ACTION FORM = "url" METHOD = ENCTYPE = "..." >

ویژگی ENCTYPE نقش خاصی ندارد و معمولاً همراه با برچسب نیست . اطلاعات دقیق در مورد برچسب ENCTYPE در فصل 3 آورده شده است. یکی از راه های استفاده از ENCTYPE در فصل 14 "برنامه های افزودنی" نشان داده شده است.

ویژگی ACTION به URL برنامه CGI اشاره دارد. پس از تکمیل فرم توسط کاربر و ارائه اطلاعات، تمامی اطلاعات کدگذاری شده و به برنامه CGI ارسال می شود. برنامه CGI خودش در مورد رمزگشایی و پردازش اطلاعات تصمیم می گیرد. این جنبه در «پذیرش ورودی مرورگر»، بعداً در این فصل پوشش داده شده است.

در نهایت، ویژگی METHOD توضیح می‌دهد که چگونه برنامه CGI باید ورودی را دریافت کند. دو روش GET و POST در نحوه ارسال اطلاعات به برنامه CGI متفاوت هستند. هر دو در "پذیرش ورودی از مرورگر" مورد بحث قرار گرفته اند.

برای اینکه مرورگر اجازه ورود کاربر را بدهد، همه تگ‌های فرم و اطلاعات باید توسط تگ احاطه شوند . تگ پایانی را فراموش نکنید

برای علامت گذاری انتهای فرم شما نمی توانید یک فرم در یک فرم داشته باشید، اگرچه می توانید فرمی را تنظیم کنید که به شما امکان می دهد اطلاعات را در مکان های مختلف ارائه دهید. این جنبه به طور گسترده در فصل 3 مورد بحث قرار گرفته است.

برچسب بزنید

می‌توانید نوارهای ورودی متن، دکمه‌های رادیویی، چک باکس‌ها و سایر ابزارهای پذیرش ورودی را با استفاده از برچسب ایجاد کنید. . این بخش فقط فیلدهای ورودی متن را پوشش می دهد. برای پیاده سازی این فیلد از تگ استفاده کنید با صفات زیر:

< INPUT TYPE=text NAME = "... " VALUE = "... " SIZE = MAXLENGTH = >

NAME نام نمادین متغیری است که حاوی مقدار وارد شده توسط کاربر است. اگر متنی را در ویژگی VALUE قرار دهید، آن متن به عنوان پیش‌فرض در قسمت ورودی متن قرار می‌گیرد. ویژگی SIZE به شما امکان می دهد طول افقی فیلد ورودی را همانطور که در پنجره مرورگر ظاهر می شود مشخص کنید. در نهایت، MAXLENGTH حداکثر تعداد کاراکترهایی را که کاربر می تواند در فیلد وارد کند، تعیین می کند. توجه داشته باشید که ویژگی های VALUE، SIZE، MAXLENGTH اختیاری هستند.

ارسال فرم

اگر فقط یک فیلد متنی در یک فرم دارید، کاربر می‌تواند با تایپ اطلاعات روی صفحه کلید و فشار دادن Enter فرم را ارسال کند. در غیر این صورت باید راه دیگری برای ارائه اطلاعات توسط کاربر وجود داشته باشد. کاربر اطلاعات را با استفاده از دکمه ارسال با برچسب زیر ارسال می کند:

< Input type=submit >

این تگ یک دکمه ارسال در فرم شما ایجاد می کند. هنگامی که کاربر تکمیل فرم را به پایان رساند، می تواند محتوای آن را با کلیک بر روی دکمه ارسال، به URL مشخص شده توسط ویژگی ACTION فرم ارسال کند.

پذیرش ورودی از مرورگر

در بالا نمونه هایی از نوشتن یک برنامه CGI ارائه شد که اطلاعات را از سرور به مرورگر ارسال می کند. در واقع، یک برنامه CGI که ​​فقط داده‌ها را خروجی می‌کند، کاربردهای زیادی ندارد (برخی مثال‌ها در فصل 4 آورده شده است). یکی از مهم‌ترین قابلیت‌های CGI دریافت اطلاعات از مرورگر است، ویژگی که وب را تعاملی می‌کند.

برنامه CGI دو نوع اطلاعات را از مرورگر دریافت می کند.

  • ابتدا، اطلاعات مختلفی در مورد مرورگر (نوع آن، آنچه که می تواند مرور کند، میزبان میزبان و غیره)، سرور (نام و نسخه، درگاه اجرای آن، و غیره) و برنامه CGI را دریافت می کند. خود (نام برنامه و محل قرارگیری آن). سرور تمام این اطلاعات را از طریق متغیرهای محیطی به برنامه CGI می دهد.
  • دوم اینکه برنامه CGI می تواند اطلاعات وارد شده توسط کاربر را دریافت کند. این اطلاعات پس از کدگذاری توسط مرورگر، یا از طریق یک متغیر محیطی (روش GET) یا از طریق ورودی استاندارد (روش stdin POST) ارسال می شود.

متغیرهای محیطی

دانستن اینکه چه متغیرهای محیطی برای یک برنامه CGI در دسترس هستند، هم برای یادگیری و هم برای اشکال زدایی مفید است. جدول 2.2 برخی از متغیرهای محیط CGI موجود را فهرست می کند. همچنین می توانید یک برنامه CGI بنویسید که متغیرهای محیطی و مقادیر آنها را به یک مرورگر وب خروجی می دهد.

جدول 2.2. برخی از متغیرهای مهم محیط CGI متغیر محیطی هدف REMOTE_ADDR آدرس IP دستگاه مشتری. REMOTE_HOST میزبان میزبان دستگاه مشتری. HTTP _ACCEPT انواع داده های MIME را که مرورگر می تواند تفسیر کند فهرست می کند. HTTP _USER_AGENT اطلاعات مرورگر (نوع مرورگر، شماره نسخه، سیستم عامل، و غیره.). REQUEST_METHOD GET یا POST. CONTENT_LENGTH طول ورودی در صورت ارسال از طریق POST. اگر ورودی وجود نداشته باشد یا از روش GET استفاده شود، این پارامتر تعریف نشده است. QUERY_STRING حاوی اطلاعات ورودی هنگام ارسال با استفاده از روش GET است. PATH_INFO به کاربر اجازه می دهد یک مسیر از خط فرمان CGI مشخص کند (به عنوان مثال، http://hostname/cgi-bin/programname/path). PATH_TRANSLATED یک مسیر نسبی در PATH_INFO را به یک مسیر واقعی در سیستم ترجمه می کند.

برای نوشتن یک برنامه CGI که ​​متغیرهای محیطی را نمایش می دهد، باید بدانید که چگونه دو کار را انجام دهید:

  • همه متغیرهای محیطی و مقادیر مربوط به آنها را تعریف کنید.
  • نمایش نتایج برای مرورگر

شما قبلاً می دانید که چگونه آخرین عملیات را انجام دهید. در پرل، متغیرهای محیطی در آرایه انجمنی %ENV ذخیره می‌شوند که با نام متغیر محیطی معرفی می‌شود. لیست 2.3 حاوی env.cgi، یک برنامه Perl است که هدف ما را محقق می کند.

لیست 2.3. برنامه Perl، env.cgi، که تمام متغیرهای محیط CGI را خروجی می کند.

#!/usr/local/bin/perl print "Content-type: text/html\n\n"; چاپ" \n";چاپ" محیط CGI\n";چاپ"\n";چاپ" \n";چاپ"

محیط CGI

\n"؛ foreach $env_var (کلیدهای %ENV) (چاپ " $env_var= $ENV($env_var)
\n"؛ ) چاپ " \n"؛

یک برنامه مشابه را می توان در C نوشت. کد کامل در لیست 2.4 است.

لیست 2.4. env.cgi.c در C. /* env.cgi.c */ #include خارجی char **محیط; int main() (char **p = environ; printf("Content-Type: text/html\r\n\r\n"); printf(" \n"); printf(" محیط CGI\n"); printf("\n"); printf(" \n"); printf("

محیط CGI

\n"); while(*p != NULL) printf("%s
\n"*p++); printf(" \n"))

دریافت یا ارسال؟

تفاوت بین روش های GET و POST چیست؟ GET رشته ورودی کدگذاری شده را از طریق متغیر محیطی QUERY_STRING عبور می دهد، در حالی که POST آن را از طریق stdin عبور می دهد. POST روش ترجیحی است، به خصوص برای فرم هایی که حجم داده زیادی دارند، زیرا محدودیتی در میزان ارسال اطلاعات وجود ندارد و با روش GET، فضای رسانه محدود می شود. GET با این حال یک ویژگی خاص دارد دارایی مفید; این به طور مفصل در فصل 5 ورودی پوشش داده شده است.

برای تعیین اینکه از کدام روش استفاده می شود، برنامه CGI متغیر محیطی REQUEST_METHOD را بررسی می کند که روی GET یا POST تنظیم می شود. اگر روی POST تنظیم شود، طول اطلاعات رمزگذاری شده در متغیر محیطی CONTENT_LENGTH ذخیره می شود.

ورودی رمزگذاری شده

هنگامی که کاربر فرمی را ارسال می کند، مرورگر ابتدا اطلاعات را قبل از ارسال به سرور و سپس به برنامه CGI رمزگذاری می کند. وقتی از تگ استفاده می کنید ، به هر فیلد یک نام نمادین اختصاص داده شده است. مقدار وارد شده توسط کاربر به عنوان مقدار متغیر نمایش داده می شود.

برای تعیین این مورد، مرورگر از مشخصات رمزگذاری URL استفاده می کند که می توان آن را به شرح زیر توصیف کرد:

  • فیلدهای مختلف را با علامت (&) از هم جدا می کند.
  • نام و مقادیر را با علائم مساوی (=)، با نام در سمت چپ و مقدار در سمت راست جدا می کند.
  • جای فاصله ها را با علامت مثبت (+) می گیرد.
  • همه کاراکترهای "غیر عادی" را با علامت درصد (%) و به دنبال آن یک کد کاراکتر هگزا دسیمال دو رقمی جایگزین می کند.

رشته رمزگذاری شده نهایی شما به این صورت خواهد بود:

Name1=value1&name2=value2&name3=value3...

توجه: مشخصات رمزگذاری URL در RFC1738 است.

برای مثال، فرض کنید فرمی داشتید که نام و سن را می‌خواست. کد HTML که برای نمایش این فرم استفاده شده است در لیست 2.5 نشان داده شده است.

لیست 2.5. کد HTML برای نمایش نام و فرم سن.

نام و سن

اسمت را وارد کن:

سن خود را وارد کنید:

فرض کنید کاربر Joe Schmoe را در قسمت نام و 20 را در قسمت سن وارد کند. ورودی در رشته ورودی کدگذاری می شود.

نام = جو + اشمو و سن = 20

تجزیه ورودی

برای اینکه این اطلاعات مفید باشد، باید از اطلاعات مربوط به چیزی استفاده کنید که می تواند توسط برنامه های CGI شما استفاده شود. استراتژی‌های تجزیه ورودی در فصل 5 پوشش داده شده‌اند. در عمل، هرگز نباید به نحوه تجزیه ورودی فکر کنید، زیرا چندین نفر قبلاً کتابخانه‌های در دسترس عمومی را نوشته‌اند که تجزیه را انجام می‌دهند. دو کتابخانه از این قبیل در این فصل در بخش‌های زیر ارائه شده‌اند: cgi-lib.pl برای Perl (نوشته شده توسط استیو برنر) و cgihtml برای C (نوشته شده توسط من).

هدف کلی اکثر کتابخانه های نوشته شده به زبان های مختلف، تجزیه یک رشته رمزگذاری شده و قرار دادن جفت نام و ارزش در یک ساختار داده است. در دسترس مزیت آشکاردر استفاده از زبانی که دارای ساختارهای داده داخلی مانند Perl است. با این حال، اکثر کتابخانه‌های زبان‌های سطح پایین‌تر مانند C و C++ شامل اجرای یک ساختار داده و یک زیر روال هستند.

دستیابی به درک کامل از کتابخانه ها ضروری نیست. یادگیری نحوه استفاده از آنها به عنوان ابزاری برای آسان کردن کار برنامه نویس CGI بسیار مهمتر است.

cgi-lib.pl

Cgi-lib.pl از آرایه های انجمنی Perl استفاده می کند. تابع &ReadParse رشته ورودی را تجزیه می کند و هر جفت نام/مقدار را با نام وارد می کند. به عنوان مثال، رشته های Perl مربوطه مورد نیاز برای رمزگشایی رشته ورودی "name/age" که به تازگی ارائه شده است، خواهد بود.

&ReadParse(*input);

اکنون برای مشاهده مقدار وارد شده برای "name" می توانید به آرایه انجمنی $input("name") مراجعه کنید. به طور مشابه، برای اشاره به مقدار "age"، باید به متغیر $input("age") نگاه کنید.

cgihtml

C هیچ ساختار داده داخلی ندارد، بنابراین cgihtml لیست پیوندهای خود را برای استفاده با روتین های تجزیه CGI خود پیاده سازی می کند. این ساختار نوع ورودی را به صورت زیر تعریف می کند:

ساختار Typedef ( Char *name; Char *value; ) Entrytype;

برای تجزیه رشته ورودی "name / age" در C با استفاده از cgihtml، از موارد زیر استفاده می شود:

/* یک لیست پیوندی به نام ورودی */ Llist input را اعلام کنید. /* ورودی را تجزیه کنید و در لیست پیوندی قرار دهید */ read_cgi_input(&input);

برای دسترسی به اطلاعات سن، می‌توانید لیست را به صورت دستی تجزیه کنید یا از تابع ()cgi _val استفاده کنید.

#عبارتند از #عبارتند از Char *age = malloc (sizeof (char) * strlen (cgi _val (ورودی، "سن")) + 1); Strcpy(age, cgi_val (ورودی, "سن"));

مقدار "age" اکنون در رشته age ذخیره می شود.

توجه: به جای استفاده از یک آرایه ساده (مانند char age ;)، فضای حافظه را به صورت پویا برای رشته سنی تخصیص می دهم. اگرچه این امر برنامه نویسی را پیچیده می کند، با این وجود از نقطه نظر امنیتی مهم است. بیشتر در این مورد در فصل 9.

یک برنامه ساده CGI

شما در حال نوشتن یک برنامه CGI به نام nameage.cgi هستید که فرم "name/age" را مدیریت می کند. پردازش داده ها (چیزی که من معمولا "مواد متوسط" می نامم) حداقل است. Nameage.cgi به سادگی ورودی را رمزگشایی می کند و نام کاربری و سن را نمایش می دهد. اگرچه برای چنین ابزاری مفید نیست، اما حیاتی ترین جنبه برنامه نویسی CGI را نشان می دهد: ورودی و خروجی.

شما از همان فرمی که در بالا توضیح داده شد استفاده می کنید و فیلدهای "نام و سن" را فراخوانی می کنید. هنوز نگران استحکام و کارایی نباشید. مشکل داده شده را به ساده ترین روش حل کنید. راه حل های Perl و C به ترتیب در لیست های 2.6 و 2.7 نشان داده شده اند.

لیست 2.6. Nameage.cgi در پرل

#!/usr/local/bin/perl # nameage.cgi به "cgi-lib.pl" &ReadParse(*input) نیاز دارد. چاپ "Content-Type: text/html\r\n\r\n"؛ چاپ" \n";چاپ" نام و سن\n";چاپ"\n";چاپ" \n"؛ چاپ "سلام، " . $input("name") . ". شما \n"؛ چاپ $input("age") . " ساله هستید.

\n";چاپ" \n"؛

لیست 2.7. nameage.cgi در C

/* nameage.cgi.c */ #include #include "cgi-lib.h" int main() ( لیست ورودی؛ read_cgi_input(&input); printf("Content-Type: text/html\r\n\r\n"); printf(" \n"); printf(" نام و سن\n"); printf("\n"); printf(" \n")؛ printf("سلام، %s. شما\n"،cgi_val(input,"name"))؛ printf("%s ساله هستید.

\n"cgi_val(ورودی"سن"))؛ printf(" \n"))

توجه داشته باشید که این دو برنامه تقریباً معادل هستند. هر دو شامل روال های تجزیه هستند که فقط یک خط می گیرند و همه ورودی ها را پردازش می کنند (به لطف روال های کتابخانه مناسب). خروجی در اصل یک نسخه اصلاح شده از برنامه اصلی Hello, World!

سعی کنید با پر کردن فرم و کلیک بر روی دکمه ارسال، برنامه را اجرا کنید.

استراتژی برنامه نویسی عمومی

اکنون تمام اصول اولیه مورد نیاز برای برنامه نویسی CGI را می دانید. هنگامی که متوجه شدید که CGI چگونه اطلاعات را دریافت می کند و چگونه آن را به مرورگر می فرستد، کیفیت واقعی محصول نهایی شما به توانایی کلی برنامه نویسی شما بستگی دارد. یعنی، زمانی که در حال برنامه نویسی CGI (یا اصلاً هر چیز دیگری هستید)، ویژگی های زیر را در نظر داشته باشید:

  • سادگی
  • بهره وری
  • تطبیق پذیری

دو کیفیت اول کاملاً رایج هستند: سعی کنید کد خود را تا حد امکان خوانا و کارآمد کنید. تطبیق پذیری بیشتر برای برنامه های CGI اعمال می شود تا سایر برنامه ها. هنگامی که شروع به توسعه برنامه های CGI خود می کنید، متوجه می شوید که چند برنامه کاربردی اساسی وجود دارد که همه می خواهند آن ها را بسازند. به عنوان مثال، یکی از رایج ترین و بدیهی ترین وظایف یک برنامه CGI، پردازش فرم و ارسال ایمیل نتایج به یک گیرنده خاص است. شما می توانید چندین فرم رندر شده جداگانه داشته باشید که هر کدام گیرنده متفاوتی دارند. به جای نوشتن یک برنامه CGI برای هر فرم، می توانید با نوشتن یک برنامه کلی تر CGI که ​​مناسب همه فرم ها باشد، در زمان صرفه جویی کنید.

با پوشش دادن تمام جنبه های اساسی CGI، اطلاعات کافی برای شروع برنامه نویسی CGI در اختیار شما قرار داده ام. با این حال، برای اینکه یک توسعه دهنده CGI موثر باشید، باید درک عمیق تری از نحوه ارتباط CGI با سرور و مرورگر داشته باشید. در ادامه این کتاب به تفصیل مواردی که در این فصل به اختصار به آنها اشاره شد و همچنین استراتژی های توسعه برنامه کاربردی، مزایا و محدودیت های پروتکل مورد بحث قرار می گیرد.

خلاصه

این فصل به طور مختصر به اصول برنامه نویسی CGI پرداخته است. شما با قالب بندی صحیح داده های خود و چاپ در stdout خروجی ایجاد می کنید. دریافت ورودی CGI کمی پیچیده تر است زیرا قبل از استفاده باید تجزیه شود. خوشبختانه، در حال حاضر چندین کتابخانه وجود دارد که تجزیه را انجام می دهند.

در حال حاضر، شما باید با برنامه نویسی برنامه های CGI نسبتاً راحت باشید. بقیه این کتاب به ارائه دقیق‌تر مشخصات، نکات و استراتژی‌های برنامه‌نویسی برای کاربردهای پیشرفته‌تر و پیچیده‌تر اختصاص دارد.

برای به دست آوردن یک نتیجه قابل اعتماد، تجزیه و تحلیل باید حداقل 2 هفته پس از آخرین دوز آنتی بیوتیک ها و (یا) داروهای ضد باکتریایی انجام شود.

  • تراشیدن از مجرای ادرار توصیه می شود 2 ساعت پس از آخرین ادرار، از حلق و نازوفارنکس - با معده خالی (4-5 ساعت پس از آخرین وعده غذایی، در حالی که لازم است مسواک زدن و شستشوی دهان خود را حذف کنید)، برای سایر مکان ها نیاز به آمادگی خاصی نیست.
  • ادرار این مطالعه مشروط به مقدار متوسط ​​ادرار آزاد شده به میزان 3-5 میلی لیتر در یک ظرف یکبار مصرف پلاستیکی استریل (ظرف را می توان در پذیرش دریافت کرد) پس از توالت کامل دستگاه تناسلی خارجی بدون استفاده از مواد ضد عفونی کننده انجام می شود. . زمان تحویل به آزمایشگاه در دمای اتاق - 1-2 ساعت، در دمای 2-8 درجه سانتیگراد - 5-6 ساعت.
  • اسپرم برای بررسی باکتریولوژیک در یک ظرف یکبار مصرف پلاستیکی استریل با دهان گشاد با خودارضایی جمع آوری می شود (ظرف را می توان از پذیرش تهیه کرد). زمان تحویل مواد به آزمایشگاه در دمای اتاق در مدت 1-2 ساعت.
  • بلغم توصیه می شود صبح، با معده خالی پس از تمیز کردن حفره دهان، در یک ظرف پلاستیکی استریل جمع آوری شود. زمان تحویل مواد به آزمایشگاه در دمای اتاق در مدت 1-2 ساعت، در دمای 2-8 درجه سانتیگراد - 5-6 ساعت.
  • حصار ترشح پروستات توسط اورولوژیست، پس از ماساژ اولیه پروستات (این دستکاری فقط در مطب مرکزی انجام می شود). قبل از مصرف ترشحات غده پروستات، پرهیز از رابطه جنسی به مدت حداقل 2 روز توصیه می شود.
  • تحقیقات باکتریولوژیک شیر مادر . نمونه برداری از شیر مادر فقط قبل از تغذیه کودک یا دو ساعت پس از شیردهی انجام می شود. بیمار معاینه شده غده پستانی چپ و راست را با آب گرم و صابون شستشو داده و با یک حوله تمیز خشک می کند. سطح نوک پستان ها و نوک انگشتان با یک سواب پنبه ای مرطوب شده با 70٪ درمان می شود. الکل اتیلیک. اولین قسمت شیر ​​مادر، تقریباً 0.5 میلی لیتر، دور ریخته می شود. سپس، زن بدون لمس نوک پستان با دست، 0.5 - 1 میلی لیتر شیر از هر غده را در یک ظرف استریل جداگانه می ریزد (ظروف را می توان در پذیرش تهیه کرد). زمان تحویل به آزمایشگاه در دمای اتاق - 1-2 ساعت، در دمای 2-8 درجه سانتیگراد - 5-6 ساعت.
  • نرده با مایع نوویال برای معاینه باکتریولوژیک، توسط پزشک در ظروف پلاستیکی استریل انجام می شود (ظرف را می توان در پذیرش دریافت کرد). در آزمایشگاه، این روش انجام نمی شود. زمان تحویل مواد به آزمایشگاه در دمای اتاق در مدت 1-2 ساعت، در دمای 2-8 درجه سانتیگراد - 5-6 ساعت.
  • حصار ترشحات زخم برای معاینه باکتریولوژیک توسط پزشک، در یک ظرف یکبار مصرف با محیط Ames انجام می شود (ظرف را می توان در پذیرش دریافت کرد). زمان تحویل مواد به آزمایشگاه در دمای اتاق در مدت 6 ساعت، در دمای 2-8 درجه سانتیگراد - حداکثر 2 روز.
  • صفرا برای بررسی باکتریولوژیک، در حین پروب، به طور جداگانه، در قسمت های A، B و C در سه لوله استریل یا در حین عمل با سرنگ در یک لوله با رعایت قوانین آسپسیس جمع آوری می شود (این روش در آزمایشگاه انجام نمی شود). . زمان تحویل مواد به آزمایشگاه در دمای اتاق در مدت 1-2 ساعت، در دمای 2-8 درجه سانتیگراد - 5-6 ساعت.

"طراحی شده توسط: PHPLD سایت شما" "ارسال مقاله" "تأمین شده توسط ArticleMS" "ارسال مقاله" "منو اصلی" "آخرین مقالات" "طراح: فهرست Astralinks" "ارسال مقاله" "ارسال مقالات" "ورود اعضا" "محبوب ترین ها" مقالات" "فیدهای RSS مقاله" "فیلدهای علامت گذاری شده با ستاره الزامی است" joomla "طراح: قالب های رایگان PHPLD" "ارسال مقاله" "مقالات RSS" "نظرات RSS" "مقالات اخیر" "مجوز" "نام کاربری:" "رمز عبور: " "من را به خاطر بسپار" "ثبت نام" "گذرواژه خود را فراموش کرده اید؟" "Startseite ? وبلاگ ها ? وبلاگ von" "فیدهای RSS" "ما را به علاقه مندی ها اضافه کنید" "ما را صفحه اصلی خود قرار دهید" "ارسال مقالات" "پیوندهای منظم با متقابل" inurl مقاله:"/access/غیر احراز هویت" انجمن ها "الگو توسط DevHunters. com" "اضافه کردن مقاله" "با افتخار توسط WordPress و BuddyPress" "طراح: قالب های رایگان PHPLD" "افزودن مقاله" "این سوال برای آزمایش اینکه آیا شما یک بازدیدکننده انسانی هستید و برای جلوگیری از ارسال خودکار هرزنامه است" "برای تایید اعتبار پیوند متقابل" لطفا کد HTML زیر را در صفحه در URL قرار دهید" "افزودن مقاله" "گزارش های مطبوعاتی تصادفی" "اسکریپت انتشار مطبوعاتی" inurl:"/blogs/load/recent" "مقاله هفته" "دایرکتوری مقاله کلیه حقوق محفوظ است. " "طراحی شده توسط: PHPLD سایت شما" "ارسال مقاله" "اطلاعات الکسا" "جزئیات لیست" "URL LISTING" "آمار سایت" "افزودن مقاله" "طراحی شده توسط پیوندهای یک طرفه" "افزودن مقاله" "از شما دعوت می کنیم بررسی کنید کاتالوگ مقالات ما از دسته های سمت چپ شما، و مطمئن شوید که این سایت را به موارد دلخواه خود اضافه کنید!" "طراح: قالب‌های PHPLD" "افزودن مقاله" "اطلاعات بیشتر درباره قالب‌های متن" "امتیاز نویسنده: فعلی:" "تأمین شده توسط: فهرست راهنمای پیوند php" "افزودن مقاله" "سایت‌های غیرقابل قبول، محتوا و چند دلیل برای تایید نشدن ارسال‌ها: " "افزودن مقاله" "قالب توسط Yazzoo" "افزودن مقاله" "موضوع توسط: Romow Web Directory" "ارسال مقاله" "تأمین شده توسط WordPress + افزونه راهنمای مقاله" "موضوع توسط: فهرست وب" "ارسال مقاله" "مقالات RSS" "نظرات RSS" "مقالات اخیر" "تأمین شده توسط: php Link Directory" "Add article" "%E8%AB%8B%E6%BA%96%E7%A2%BA%E5%A1%AB%E5%85% A5%E6%82%A8%E7%9A%84%E9%83%B5%E7%AE%B1%EF%BC%8C%E5%9C%A8%E5%BF%98%E8%A8%98% E5%AF%86%E7%A2%BC%EF%BC%8C%E6%88%96%E8%80%85%E6%82%A8%E4%BD%BF%E7%94%A8%E9% 83%B5%E4%BB%B6%E9%80%9A%E7%9F%A5%E5%8A%9F%E8%83%BD%E6%99%82%EF%BC%8C%E6%9C% 83%E7%99%BC%E9%80%81%E9%83%B5%E4%BB%B6%E5%88%B0%E8%A9%B2%E9%83%B5%E7%AE%B1% E3%80%82" "استفاده از افزونه Article Directory" "این فهرست پیوند از جلسات برای ذخیره اطلاعات استفاده می کند" "افزودن مقاله" "منو وبلاگ" "ایجاد وبلاگ" " وبلاگ های من" "PHPmotion" "PHPLD CLUB - تم های رایگان برای شما" "افزودن مقاله" "پوسته شده توسط: فهرست طراحی وب" "افزودن مقاله" "الگو توسط Yazzoo" "افزودن مقاله" "الگو توسط DevHunters.com" "افزودن مقاله" " "شما اجازه نظر دادن ندارید. اگر وارد سیستم شوید، ممکن است بتوانید نظر بدهید" "الگو توسط قالب های رایگان PHPLD" "افزودن مقاله" "حمایت شده توسط: نکات و ترفندهای مدیر وب سایت / دانلود رایگان تم های phpLD" "ارسال مقاله" "موضوع توسط: فهرست وب" "افزودن مقاله" "از مقالات موجود در دایرکتوری ما در وب سایت خود برای ارائه بازدیدکنندگان خود استفاده کنید" "تأمین شده توسط: php Link Directory" "ارسال مقاله" "پشتیبانی شده توسط پیشنهاد برای موقعیت" "افزودن مقاله" "موضوع توسط: Romow Web Directory" "ارسال مقاله" "پشتیبانی شده توسط پیشنهاد برای موقعیت" "ارسال مقاله" "پشتیبانی شده توسط پیشنهاد برای موقعیت" "افزودن مقاله" "حمایت شده توسط: نکات و ترفندهای مدیر وب سایت / دانلود رایگان تم های phpLD" "ارسال مقاله" "طراحی شده توسط Mitre Design and SWOOP" "ارسال مقاله" "موضوع توسط: فهرست وب" "افزودن مقاله" "صوت ویدئوهای خانگی" وبلاگ ها phpmotion "الگو توسط DevHunters.com" "ارسال مقاله" "طراحی شده توسط: دایرکتوری وب دعوت" "افزودن مقاله" "نویسندگان ثبت شده در ما دایرکتوری مقاله" "دایرکتوری پیوند پی اچ پی" "افزودن مقاله" "حمایت شده توسط: نکات و ترفندهای مدیر وب سایت / دانلود تم های phpLD رایگان " "افزودن مقاله" "تأمین شده توسط داشبورد مقاله" "Anmelden oder Registrieren um Commentare zu schreiben" "Startseite ? وبلاگ ها" "توسعه یافته توسط Hutbazar" "افزودن مقاله" صفحه اصلی اعضا RSS "گروه را ایجاد کرد" "لطفا برای شروع یک حساب کاربری ایجاد کنید." "تأمین شده توسط: Article Friendly Ultimate" inurl:"/wp-login.php?action=register " "طراح: قالب های PHPLD" "ارسال مقاله" "تأمین شده توسط جوملا" "افزودن پست جدید" "طراحی شده توسط پیوندهای یک طرفه" "افزودن مقاله" "برای تایید اعتبار پیوند متقابل لطفا کد HTML زیر را در صفحه در آدرس URL قرار دهید " "ارسال مقاله" "حمایت شده توسط Directhoo" "افزودن مقاله" "الگو توسط: Emillie Premium Directory" "ارسال مقاله" "وجود * مقالات منتشر شده و * نویسندگان ثبت شده" inurl:"/node/1" "شما اینجا هستید" "مقاله خود را با فرمت RSS برای سایر وب سایت ها منتشر کنید" "قالب توسط Yazzoo" "ارسال مقاله" "تأمین شده توسط PHPLD" "ارسال مقاله" "مقالاتی که دارای هر گونه اشتباه املایی یا دستوری باشند حذف خواهند شد" "اسکریپت دایرکتوری توسط راهنمای لینک PHP" " "افزودن مقاله" inurl:submitguide.php "ارسال مقالات" "انتخابات ویرایشگران" "اسکریپت انتشار مطبوعاتی" "افزودن مقاله" "دایرکتوری پیوند پی اچ پی" صفحه اصلی "ثبت نام رایگان" "ارسال مقاله" "درباره ما" "تماس با ما" "جستجوی سایت" "ورود نویسنده" "اطلاعات الکسا" "جزئیات لیست" "URL LISTING" "آمار سایت" "افزودن مقاله" "این فهرست پیوند استفاده می کند" جلسات برای ذخیره اطلاعات" "افزودن مقاله" "طراحی شده توسط: PHPLD سایت شما" "افزودن مقاله" "ارسال مقالات" "اگر هنوز حساب کاربری ندارید، می توانید اینجا ثبت نام کنید. " "طراحی شده توسط AskGraphics.com" "ارسال مقاله" inurl:"/user/profile.php?id=" moodle "بیشترین رتبه بندی های مطبوعاتی" "اسکریپت انتشار مطبوعاتی" "مقالات پر از غلط املایی و گرامر بد ارسال نکنید" "موضوع توسط: فهرست وب Romow" "افزودن مقاله" "از جعبه جستجوی مقالات برای یافتن مقالات در طیف وسیعی از موضوعات استفاده کنید" "حمایت شده توسط Directhoo" "افزودن مقاله" "دایرکتوری پیوند PHP" inurl:"submit_article.php" "این نویسنده * مقالاتی را تاکنون منتشر کرده است. اطلاعات بیشتر در مورد نویسنده به زودی ارائه می شود." "تأمین شده توسط PHPLD" "ارسال مقاله" "پاورده شده توسط PHPmotion" - اسکریپت ویدئوی رایگان "تأمین شده توسط: فهرست راهنمای پیوند php" "ارسال مقاله" "آیا می خواهید روزانه برای شما ارسال کنیم" خلاصه مقاله های جدید هر روز" "نویسندگان متخصص" "دایرکتوری مقاله کلیه حقوق محفوظ است." "دایرکتوری پیوند پی اچ پی" "افزودن مقاله" "بررسی شده توسط: دایرکتوری طراحی وب" "ارسال مقاله" موضوع صفحه اصلی موضوع "مجاز نظرات" "اجازه ردیابی" "حداکثر پیوست" "وبلاگ های اصلی" "برای ارسال نظر وارد شوید یا ثبت نام کنید" "کلوپ PHPLD - تم های رایگان برای شما" "ارسال مقاله" "ارسال پیوند" قیمت گذاری "کد نشان داده شده را وارد کنید" "این به جلوگیری از ثبت نام های خودکار کمک می کند." " ارسال مقاله" "طراحی شده توسط: فهرست وب دعوت" "ارسال مقاله" "الگو توسط: Emillie Premium Directory" "افزودن مقاله" "این فهرست پیوند از جلسات برای ذخیره اطلاعات استفاده می کند" "ارسال مقاله" "برای جلوگیری از ارسال خودکار هرزنامه، این قسمت را خالی بگذارید " کشور "شهر/شهر" "آخرین دسترسی" "شما وارد نشده اید" "وردپرس A rticle اسکریپت دایرکتوری" "پی اچ پی لینک دایرکتوری" "افزودن مقاله" "مقاله های زنده" "کلیه حقوق دایرکتوری مقاله محفوظ است." "جزئیات مقاله" "برای ثبت امتیاز باید وارد سیستم شوید" "برای گذاشتن نظر باید وارد شوید" " "طراحی شده توسط پیوندهای یک طرفه" "ارسال مقاله" "طراحی شده توسط: فهرست وب دعوت" "افزودن مقاله" "الگو توسط: Emillie Premium Directory" "ارسال مقاله" "محتوای این فیلد خصوصی است و نشان داده نخواهد شد" به صورت عمومی" "طراحی شده توسط: هنرمندان آینده نگر" "افزودن مقاله" "طراح: فهرست Astralinks" "ارسال مقاله" "سایت های غیرقابل قبول، محتوا و چند دلیل برای تایید نشدن مطالب ارسالی:" "افزودن مقاله" "گزارش های مطبوعاتی داغ" "بیانیه مطبوعاتی" اسکریپت" "از طریق ایمیل به من اطلاع بده" inurl:"populararticles.php" "چهره یا تصویر مجازی شما" "ارسال مقاله" "دایرکتوری پیوند پی اچ پی" "ارسال شده توسط" "برای ارسال نظرات وارد شوید یا ثبت نام کنید" "این سایت را جستجو کنید" :" "جزئیات مقاله" "برای ثبت امتیاز باید وارد سیستم شوید" "برای گذاشتن نظر باید وارد سیستم شوید" "Wordpre" اسکریپت فهرست راهنمای مقاله ss" "دایرکتوری پیوند پی اچ پی" "ارسال مقاله" "تأمین شده توسط vbulletin" "پست های اخیر وبلاگ ها" "ارسال مقالات" inurl:"submitart.php" "طراحی شده توسط: دایرکتوری وب دعوت" "ارسال مقاله" "ارسال مقالات" " "مجموع مقالات" "مجموع نویسندگان" "مجموع دانلودها" "طراحی شده توسط Mitre Design و SWOOP" "افزودن مقاله" "طراحی شده توسط: Futuristic Artists" "ارسال مقاله" "شما می توانید پیکربندی اجزای جزئیات را با دوبار کلیک کردن پس زمینه، متن تنظیم کنید. , تصاویر یا نقل قول ها" "دسته های بیانیه مطبوعاتی" "اسکریپت بیانیه مطبوعاتی" "طراحی شده توسط: PHPLD سایت شما" "افزودن مقاله" "حمایت شده توسط Directhoo" "ارسال مقاله" "شرایط خدمات نویسنده" "شرایط خدمات ناشر" " سلب مسئولیت" "ما این حق را برای خود محفوظ می داریم که در صفحاتی با مقالات شما تبلیغات داشته باشیم" "تأمین شده توسط phpmotion" بلاگ ها inurl:"login.php" "اکنون برای ارسال مقالات خود ثبت نام کنید" صفحه اصلی "افزودن مقاله" "آخرین پیوندها" "برترین بازدیدها" ""طراحی شده توسط ArticleMS از ArticleTrader.com" "ارسال شده توسط Anonymous" "برای ارسال نظرات وارد شوید یا ثبت نام کنید" "محبوب ترین مقالات" "دایرکتوری مقاله کلیه حقوق محفوظ است. " "Skinned by Addictive Games" "ارسال مقاله" "شرایط استفاده" "این یک نسخه نمایشی است فقط صفحه ." "themes/default/templates/generic_terms.htm" "ارسال پیوند" قیمت گذاری "کد نشان داده شده را وارد کنید" "این به جلوگیری از ثبت نام های خودکار کمک می کند." "افزودن مقاله" "Skinned توسط بازی های اعتیاد آور" "ارسال مقاله" inurl:"login2submitart .php" "* مقالات منتشر شده و * نویسندگان ثبت شده در فهرست مقاله ما وجود دارد." "به این مقاله امتیاز دهید: فعلی:" موضوع inurl:"act=dispBoardWrite" inurl:"login.php" "برای دسترسی به کنترل پنل نویسنده خود وارد شوید " "ارسال پیوند" قیمت "کد نشان داده شده را وارد کنید" "این به جلوگیری از ثبت نام های خودکار کمک می کند." "ارسال مقاله" moodle "نمایه عمومی" "یک رمز عبور برای حساب جدید در هر دو قسمت ارائه کنید رمز عبور باید حداقل باشد" "برای تایید اعتبار پیوند متقابل لطفاً کد HTML زیر را در صفحه آدرس URL قرار دهید" "افزودن مقاله" "Skinned by Addictive Games" "Add article" "اطلاعات بیشتر درباره گزینه های قالب بندی" "طراحی شده توسط پیوندهای یک طرفه" "ارسال مقاله" "اطلاعات الکسا" " "جزئیات لیست" "LISTING URL" "آمار سایت" "ارسال مقاله" "طراحی شده توسط AskGra phics.com" "افزودن مقاله" "با انتشار مقالات بسته بندی شده اطلاعاتی، به زودی لذت خواهید برد" inurl:"submitarticles.php" "تأمین شده توسط اسکریپت انتشار مطبوعاتی" "ثبت نام" "لطفاً این فرم را پر کنید، و ما" ارسال خواهیم کرد شما یک ایمیل خوش آمدید برای تأیید آدرس ایمیل خود و ورود به سیستم." انجمن "طراح: قالب های رایگان PHPLD" "افزودن مقاله" inurl:"/blog/index.php?postid=" moodle "توسعه یافته توسط Hutbazar" "ارسال مقاله" "طراح: فهرست Astralinks" "افزودن مقاله" "مقاله خود را در فرمت RSS برای سایر وب‌سایت‌ها برای پیوند» صفحه اصلی «ارسال مقاله» «آخرین پیوندها» «برترین بازدیدها» «الگو توسط DevHunters.com» «ارسال مقاله» پیوند: «www.articledashboard.com» «ورود به حساب کاربری خود» «ورود به به کنترل پنل نویسنده خود دسترسی داشته باشید" "حساب ندارید؟" "منبع یک مرحله ای شما برای مقالات رایگان. آیا به مطالبی برای افزودن به وب سایت خود نیاز دارید؟" "تجهیز شده توسط PHPLD" "افزودن مقاله" "خطوط و پاراگراف ها به طور خودکار شکسته می شوند" "مقالات اخیرا تایید شده" "کلیه حقوق این فهرست محفوظ است." "الگو توسط: PHPmotionTemplates.com" " وبلاگ هوشمند" "افزودن پست جدید" "دایرکتوری پیوند پی اچ پی" inurl:"submit_article.php" "اسکریپت دایرکتوری توسط دایرکتوری پیوند PHP" "افزودن مقاله" "پشتیبانی شده توسط پیشنهاد برای موقعیت" "ارسال مقاله" "دایرکتوری لینک PHP" "ارسال" مقاله" "اسکریپت دایرکتوری توسط دایرکتوری لینک PHP" "ارسال مقاله" "توسعه یافته توسط Hutbazar" "ارسال مقاله" "حمایت شده توسط: نکات و ترفندهای مدیر وب سایت / دانلود رایگان تم های phpLD" "افزودن مقاله" "مقالات داغ" "دایرکتوری مقاله کلیه حقوق محفوظ است." "به صورت رایگان توسط PHPmotion" وبلاگ ها "هنگام ارسال نظرات جدید به من اطلاع دهید" "برای تایید اعتبار پیوند متقابل لطفا کد HTML زیر را در صفحه در URL قرار دهید" "ارسال مقاله" "اکنون * مقالات عالی در پایگاه داده ما از * نویسندگان" "این فهرست پیوند از جلسات برای ذخیره اطلاعات استفاده می کند" "ارسال مقاله" "مقالات خود را آپلود کنید و در مورد مقالات جدید به روز باشید. " صفحه اصلی "افزودن مقاله" "آخرین پیوندها" "برترین بازدیدها" "سایت های غیرقابل قبول، محتوا و چند دلیل برای تایید نشدن مطالب ارسالی:" "ارسال مقاله" "راه حل های حق چاپ * vBulletin" "ایجاد وبلاگ" "الگو با قالب های رایگان PHPLD" "افزودن مقاله" "گزارش مطبوعاتی هفته" "اسکریپت انتشار مطبوعاتی" "الگو با قالب های رایگان PHPLD" "ارسال مقاله" "مقالات خود را آپلود کنید و در مورد مقالات جدید به روز باشید." "PHPLD CLUB - تم های رایگان برای شما" "افزودن مقاله" "ارسال نظرات مقاله" "دایرکتوری مقاله کلیه حقوق محفوظ است." "ایجاد حساب کاربری جدید ورود به سیستم درخواست رمز عبور جدید" "از مقالات موجود در دایرکتوری ما در وب سایت خود برای ارائه بازدیدکنندگان خود استفاده کنید" "اسکریپت دایرکتوری توسط دایرکتوری لینک PHP" "ارسال کنید" مقاله" "تجهیز شده توسط وردپرس ž با استفاده از افزونه Article Directory" "Skinned by Addictive Games" "Add article" "Retailed تایید شده" "Press Release Script" "Editors Selects" "Article Directory تمامی حقوق محفوظ است." "Alexa Information" "جزئیات لیست" " "URL LISTING" "آمار سایت" "ارسال مقاله" "الگو توسط: Emillie Premium Directory" "Add article" "Support Software by Zendesk" Forums "طراحی شده توسط: Futuristic Artists" "Add article" "شما وارد نشده اید. (ورود به سیستم)" کشور "شهر/شهرک" "صفحه وب" "مقالات تصادفی" "دایرکتوری مقاله تمامی حقوق محفوظ است." "طراحی شده توسط Mitre Design و SWOOP" "افزودن مقاله" "توسعه یافته توسط Hutbazar" "افزودن مقاله" "تماس با ما" " "این فقط یک صفحه نمایشی است." "themes/default/templates/generic_contactus.htm" "سایت های غیرقابل قبول، محتوا و چند دلیل برای تایید نشدن مطالب ارسالی:" "ارسال مقاله" "گروه عمومی" "شرایط جستجوی محبوب" " اصطلاحات جستجوی اخیر" "تجهیز شده توسط UCenter Home" "طراح: الگوهای PHPLD" "ارسال مقاله" "خوش آمدید!" "ارسال مقاله" "مقالات جدید ما" "تأمین شده توسط: مقاله دوستانه" "مقالات کل" "طراح: الگوهای PHPLD" "افزودن مقاله" "الگو توسط قالب های رایگان PHPLD" "ارسال مقاله" "موضوع توسط: فهرست وب" "ارسال مقاله" "اگر یک نویسنده روح استخدام کرده اید، موافقت می کنید که" "طراحی شده توسط AskGraphics.com" "ارسال کنید مقاله" "طراح: دایرکتوری Astralinks" "افزودن مقاله" "طراحی شده توسط: هنرمندان آینده نگر" "ارسال مقاله" "نویسندگان متخصص" "اسکریپت بیانیه مطبوعاتی" "درباره Auth" یا" "پست های اخیر" "افزودن نظر جدید" "طراحی وب سایت و توسعه یافته توسط ArticleBeach" "Skinned by: Web Design Directory" "ارسال مقاله" "ارائه رمز عبور برای حساب کاربری جدید در هر دو قسمت" "طراحی شده توسط Mitre Design و SWOOP " "ارسال مقاله" "در اینجا 100 مقاله محبوب در مورد" "اسکریپت مقاله - پشتیبانی شده توسط بازاریابی مقاله" "ارسال مقالات" "لطفا برای نوشتن نظر وارد شوید" "اضافه کردن پست جدید" "برای ارسال محتوای جدید در انجمن وارد شوید. " "پشتیبانی شده توسط دروپال" "پشتیبانی نرم افزار" inurl:"/entries/" "اسکریپت فهرست راهنمای مقاله وردپرس" "پی اچ پی لینک دایرکتوری" "ارسال مقاله" "افزودن مقاله" "دایرکتوری لینک PHP" "ارسال لینک" قیمت گذاری "کد را وارد کنید" نشان داده شده" "این به جلوگیری از ثبت نام های خودکار کمک می کند." "افزودن مقاله" "دایرکتوری پیوند پی اچ پی" "ارسال مقاله" "آدرس شخصی خود را ایجاد کنید تا دوستان و خانواده شما بتوانند شما را پیدا کنند!" "مقالات دارای امتیاز بیشتر" "دایرکتوری مقاله کلیه حقوق محفوظ است. "" پوسته شده توسط: دایرکتوری طراحی وب" "افزودن مقاله" "پیوندهای منظم با متقابل" مقاله "قالب توسط Yazzoo" "ارسال مقاله" "ارسال مقاله" "دایرکتوری لینک PHP" "موضوع توسط: فهرست وب Romow" "افزودن مقاله" " "PHPLD CLUB - تم های رایگان برای شما" "ارسال مقاله" صفحه اصلی "ارسال مقاله" "آخرین پیوندها" "برترین بازدیدها" "به فهرست مقاله خوش آمدید *. در اینجا می توانید اطلاعات جالب و مفیدی را در مورد اکثر تم های محبوب بیابید." "درباره ما" "این فقط یک صفحه نمایشی است." "themes/default/templates/generic_aboutus.htm" "جدیدترین نویسندگان" "به نویسندگان جدید ما خوش آمدید!" "به عنوان یک عضو قادر خواهید بود" "پس منتظر چه چیزی هستید؟" "برای شروع ثبت نام کنید، سرگرم کننده است و رایگان است!" وبلاگ ها "طراح: قالب های رایگان PHPLD" "ارسال مقاله" "وردپرس" اسکریپت دایرکتوری مقاله" "پی اچ پی لینک دایرکتوری" "افزودن مقاله" "مقالات اضافی از" "ارسال شده توسط ناشناس (تأیید نشده)" "طراحی شده توسط AskGraphics.com" "افزودن مقاله" "برای دسترسی به کنترل پنل نویسنده خود وارد شوید" "اکنون ثبت نام کنید" برای ارسال مقالات خود" "این سوال برای آزمایش این است که آیا شما یک بازدیدکننده انسانی هستید یا نه و برای جلوگیری از ارسال خودکار هرزنامه" inurl:"/node/2" "شما اینجا هستید" "با ما تبلیغ کنید" "این یک نسخه نمایشی است" فقط صفحه." "themes/default/templates/generic_advertise.htm" "حمایت شده توسط Directhoo" "ارسال مقاله" لینک:www.articletrader.com "تأمین شده توسط vBulletin" "ایجاد وبلاگ" "پاورده شده توسط PHPLD" "افزودن مقاله" inurl:"/node/3" "شما اینجا هستید" "طراحی و توسعه توسط ArticleBeach" "تأمین شده توسط داشبورد مقاله" inurl:submitarticles.php inurlopulararticles.php "تأمین شده توسط: Article Friendly" inurl: submitguide.php "ارسال مقالات" "تأمین شده توسط ArticleMS" "استفاده از افزونه Directory Article" "هم اکنون برای تبلیغ کسب و کار خود، یافتن شرکا، ایجاد روابط و ارتباط مجدد با جامعه بپیوندید. همگام سازی با فیس بوک توییتر ایمیل پیامک و موارد دیگر" "یک سرویس میکروبلاگینگ مبتنی بر ابزار نرم افزار رایگان Laconica است." "نمایه های خارجی" "آخرین آنلاین" "درباره من" "یادداشت های عمومی" پرسش های متداول تماس با "رابط تلفن همراه" "چه هستند" شما انجام می دهید" "گروه ها" "محبوب ترین" "همه گروه ها" "گذرواژه خود را فراموش کرده اید؟ " "Powered By" "revou" "هم اکنون برای تبلیغ کسب و کار خود، یافتن شرکا، ایجاد روابط و ارتباط مجدد با جامعه، بپیوندید. همگام‌سازی با پیامک‌های ایمیل فیسبوک توییتر و موارد دیگر" "هنگام ورود به سیستم مشکل دارید؟" "یادداشت‌های عمومی" "تمام زمان" "ماه گذشته" "نمایش به‌روزرسانی‌های تصویر" "نمایش به‌روزرسانی‌های متنی" inurl:"/recentupdates.php?m=" "این نرم افزار میکروبلاگینگ StatusNet را اجرا می کند" "یک سرویس میکروبلاگینگ مبتنی بر ابزار رایگان نرم افزار StatusNet است." "به گفتگو بپیوندید" "کد تصویر" "در زیر ثبت نام کنید." "کاربران می توانند با استفاده از به روز رسانی سریع وضعیت 160 کاراکتری یا ارتباط برقرار کنند. کمتر." "این گفتگوی جریان آزاد به شما امکان می دهد برای هر کسی پیام، عکس و ویدئو ارسال کنید" "با آدرس ایمیل خود ثبت نام کنید. قبلاً * اعضای ثبت‌شده وجود دارد." "متن و فایل‌های من در Creative Commons Attribution 3.0 در دسترس هستند به جز این داده‌های خصوصی: رمز عبور، آدرس ایمیل، آدرس IM و شماره تلفن." گروه‌های "محبوب‌ترین" "همه گروه‌ها" رمز عبور؟" "پاورده شده توسط" "نرم افزار ReVou" "اجازه دهید پیام های من برای همه کاربران قابل مشاهده باشد، نه فقط برای دوستانم" "تجهیز شده توسط Sharetronix" "تجهیز شده توسط Jisko" "با این فرم می توانید یک حساب کاربری جدید ایجاد کنید. سپس می توانید اعلامیه ارسال کنید و به دوستان و همکاران خود پیوند دهید." "با این فرم می توانید یک حساب کاربری جدید ایجاد کنید. سپس می‌توانید اعلامیه‌ها را پست کنید و به دوستان و همکارانتان پیوند دهید." "متن و فایل‌های من در Creative Commons Attribution 3.0 در دسترس هستند به جز این داده‌های خصوصی: رمز عبور، آدرس ایمیل، آدرس IM و شماره تلفن." "نام شما (بدون فاصله) بین حروف و کلمات)" "تجهیز شده توسط Blogtronix" "تأمین شده توسط اسکریپت توییتر" "کپی رایت * اسکریپت توییتر" "نرم افزار میکروبلاگینگ Laconica را اجرا می کند" "پاورده شده توسط * اسکریپت" inurl:"/recentupdates.php" "تأمین شده توسط Scritter Script" " "تصویر پیوست: " "تجهیز شده توسط Blogtronix" "یادداشت‌های عمومی" "شرایط خدمات" "نسخه معمولی" "همچنین یافتن و ارتباط با افراد دیگر برای رشته‌های خصوصی و پیگیری به‌روزرسانی‌های آنها آسان است." " یادداشت های عمومی" "نسخه معمولی" "ورود" "تجهیز شده توسط نرم افزار ReVou" inurl:"Special:UserLogin" ویکی inurl:":UserLogin" "موضوع: Feb12" "اولین" "قبلی" "1-20 از" "بعدی" inurl:groups inurl:"http://wiki." "صفحات نظری اخیر" "CategoryWiki" inurl:"title=Lietot%C4%81ja_diskusija:" "MoinMoin Powered" "HTML 4.01 معتبر " inurl:"Utilizador:" wiki inurl:"title=کاربر:" ویکی "Deze pagina is het laatst bewerkt op" "Deze page is" "Aanmelden / registreren" "MoinMoin Powered" "GPL Licensed" inurl:"title=% D0%9E%D0%B1%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B5%D0%BD%D0%BD%D1%8F_%D0%BA%D0% BE%D1%80%D0%B8%D1%81%D1%82%D1%83%D0%B2%D0%B0%D1%87%D0%B0:" "DokuWiki از زبان نشانه گذاری ساده پشتیبانی می کند" "What s داغ" "تغییرات اخیر" "رویدادهای آتی" "برچسب ها" inurl:"title=Diskuse_s_u%C5%BEivatelem:" "سرور Mac OS X - Wikis" inurl:"title=%E0%A6%AC%E0%A7% 8D %E0%A6%AF%E0%A6%AC%E0%A6%B9%E0%A6%BE%E0%A6%B0%E0%A6%95%E0%A6%BE%E0%A6%B0% E0 %A7%80_%E0%A6%86%E0%A6%B2%E0%A6%BE%E0%A6%AA:" inurl:"tiki-forums.php" inurl:"User_talk:" wiki "شما خواهید یافت صفحات مفیدتر در دسته ویکی یا در PageIndex" inurl:"title=Kasutaja_arutelu:" inurl:"title=%E5%88%A9%E7%94%A8%E8%80%85%E2%80%90 % E4%BC%9A%E8%A9%B1:" inurl:"Spezial:Anmelden" ویکی "Thčme: Strasa - Mono" inurl:"title=Diskuse_s_wikistou:" "همکاری با ایجاد سند آنلاین، ویرایش ng، و نظرات. " "ورود به صفحه من" "wikis" inurl:/wiki/dokuwiki inurl:"wiki/RecentlyCommented" inurl:"http://mediawiki." inurl:"title=%E5%88%A9%E7%94% A8%E8%80%85%E3%83%BB%E3%83%88%E3%83%BC%E3%82%AF:"inurl:"%ED%8A%B9%EC%88%98%EA %B8%B0%EB%8A%A5:%EB%A1%9C%EA%B7%B8%EC%9D%B8" inurl wiki:"title=%D7%A9%D7%99%D7%97%D7 %AA_%D7%9E%D7%A9%D7%AA%D7%9E%D7%A9:" "موضوع: Eatlon" "هیچ نظری در این صفحه وجود ندارد." "نام میزبان شما است" "XHTML معتبر" "معتبر CSS" inurl:"title=%D8%A8%D8%AD%D8%AB_%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1:" inurl:"title=Usuario:" inurl :"/wikka.php?wakka=UserSettings" "What links here" "Related changes" "special pages" inurl:"title=%E0%B8%84%E0%B8%B8%E0%B8%A2%E0% B8%81%E0%B8%B1%E0%B8%9A%E0%B8%9C%E0%B8%B9%E0%B9%89%E0%B9%83%E0%B8%8A%E0%B9% 89:" intitle:"Mac OS X Server" "Powered by TikiWiki CMS/Groupware v2" "این صفحه آخرین بار اصلاح شده است" "این صفحه مورد بازدید قرار گرفته است" "ورود به سیستم/ایجاد حساب" "صفحه غیرقابل تغییر" اطلاعات پیوست ها "وجود دارد" در حال حاضر هیچ متنی در این صفحه وجود ندارد، می توانید عنوان این صفحه را جستجو کنید n صفحه دیگر یا ویرایش این صفحه." "Driven by DokuWiki" "از شما برای نصب TikiWiki متشکرم!" inurl:"title=Special:UserLogin" "Diese Seite wurde zuletzt am" "Diese Seite wurde bisher" "Anmelden / Benutzerkonto erstellen" inurl:"Utilisateur:" wiki inurl:groups "ورود به صفحه من" "به روز رسانی" "ویکی" "وبلاگ" "تقویم" "ایمیل" "موضوع: اوهیا" "تجهیز شده توسط TikiWiki" فرانت پیج آخرین تغییرات FindPage محتویات راهنما inurl:" title=Th%E1%BA%A3o_lu%E1%BA%ADn_Th%C3%A0nh_vi%C3%AAn:" inurl:"title=Szerkeszt%C5%91vita:" inurl:"/wikka/UserSettings" "Whats Hot " " تغییرات اخیر" "رویدادهای آتی" inurl:"%C4%90%E1%BA%B7c_bi%E1%BB%87t:%C4%90%C4%83ng_nh%E1%BA%ADp" inurl wiki:"%D0 %A3 %D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:" wiki inurl:"title=Pembicaraan_Pengguna:" inurl:"wiki/index.php? title= "(!LANG: wiki inurl:"title=%E0%A4%B8%E0%A4%A6%E0%A4%B8%E0%A5%8D%E0%A4%AF_%E0%A4%B5%E0%A4%BE%E0%A4%B0%E0%A5%8D%E0%A4%A4%E0%A4%BE:" inurl:"title=Benutzer_Diskussion:" "Theme: Fivealive" inurl:"title=Diskusia_s_redaktorom:" "What’s Hot" "Recent Changes" "Upcoming Events" "Tags" "Edited" inurl:"tiki-index.php" inurl:"title=%D0%A0%D0%B0%D0%B7%D0%B3%D0%BE%D0%B2%D0%BE%D1%80_%D1%81%D0%B0_%D0%BA%D0%BE%D1%80%D0%B8%D1%81%D0%BD%D0%B8%D0%BA%D0%BE%D0%BC:" inurl:"title=Bruger_diskussion:" inurl:"Especial:Registre_i_entrada" wiki inurl:"title=Usuari_Discussi%C3%B3:" inurl:"title=Overleg_gebruiker:" inurl:"title=%CE%A3%CF%85%CE%B6%CE%AE%CF%84%CE%B7%CF%83%CE%B7_%CF%87%CF%81%CE%AE%CF%83%CF%84%CE%B7:" "Make sure to whitelist this domain to prevent registration emails being canned by your spam filter!" inurl:"Especial:Userlogin" wiki inurl:"%E4%BD%BF%E7%94%A8%E8%80%85:" wiki inurl:"title=Usuario_discusi%C3%B3n:" inurl:"title=Brugerdiskussion:" "Theme: Jqui" inurl:"title=Brukerdiskusjon:" "wiki is licensed under" "What’s Hot" "Recent Changes" inurl:"tiki-login.php" inurl:"Special:Inloggning" wiki "MoinMoin Powered" inurl:"Speci%C3%A1ln%C3%AD:P%C5%99ihl%C3%A1sit" wiki inurl:"Speci%C3%A1lis:Bel%C3%A9p%C3%A9s" wiki inurl:"title=Anv%C3%A4ndardiskussion:" inurl:"Special:Whatlinkshere" "pageindex" "recentchanges" "recentlycommented" inurl:"/RecentlyCommented" site:.edu "forums register" site:.edu "register iam over 13 years of age forum" site:.edu "discussion board register" site:.edu "bulletin board register" site:.edu "message board register" site:.edu "phpbb register forum" site:.edu "punbb register forum" site:.edu "forum signup" site:.edu "vbulletin forum signup" site:.edu "SMF register forum" site:.edu "register forum Please Enter Your Date of Birth" site:.edu "forums - Registration Agreement" site:.edu "forum Whilst we attempt to edit or remove any messages containing inappropriate, sexually orientated, abusive, hateful, slanderous" site:.edu "forum By continuing with the sign up process you agree to the above rules and any others that the Administrator specifies." site:.edu "forum In order to proceed, you must agree with the following rules:" site:.edu "forum register I have read, and agree to abide by the" site:.edu "forum To continue with the registration procedure please tell us when you were born." site:.edu "forum I am at least 13 years old." site:.edu "Forum Posted: Tue May 05, 2009 8:24 am Memberlist Profile" site:.edu "View previous topic:: View next topic forums" site:.edu "You cannot post new topics in this forum" site:.edu "proudly powered by bbPress" site:.edu "bb-login.php" site:.edu "bbpress topic.php" site:.edu "Powered by PunBB viewforum.php" site:.edu "Powered by PunBB register.php" site:.edu "The Following User Says Thank You to for this post" site:.edu "BB code is On" site:.edu "Similar Threads All times are GMT +1? site:.edu "If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post" site:.edu "Hot thread with no new posts" site:.edu "Thread is closed" site:.edu "There are 135 users currently browsing forums." site:.edu "forums post thread" site:.edu "forums new topic" site:.edu "forums view thread" site:.edu "forums new replies" site:.edu "forum post thread" site:.edu "forum new topic" site:.edu "forum view thread" site:.edu "forum new replies" site:.edu "add topic" site:.edu "new topic" site:.edu "phpbb" site:.edu "view topic forum" site:.edu "add message" site:.edu "send message" site:.edu "post new topic" site:.edu "new thread forum" site:.edu "send thread forum" site:.edu "VBulletin forum" site:.edu "Quick Reply Quote message in reply?" site:.edu "Currently Active Users: 232 (0 members and 232 guests)" site:.edu "Currently Active Users: members and guests" site:.edu "Forums Posting Statistics Newest Member" site:.edu "Users active in past 30 minutes: SMF" site:.edu "Users active in past 30 minutes: Most Online Today Most Online Ever" site:.edu "Most Online Today Most Online Ever Forums" site:.edu "Currently Active Users: 18 (0 members and 18 guests)" site:.edu "Users active today: 15478 (158 members and 15320 guests)" site:.edu "Threads: 673, Posts: 7,321, Total Members: 376? site:.edu "Add this forum to your Favorites List! Threads in Forum:" site:.edu "Threads in Forum Hot thread with no new posts" site:.edu "powered by vbulletin" site:.edu "powered by yabb" site:.edu "powered by ip.board" site:.edu "powered by phpbb" site:.edu "powered by phpbb3? site:.edu "powered by invision power board" site:.edu "powered by e-blah forum software" site:.edu "powered by xmb" site:.edu "powered by: fudforum" site:.edu "powered by fluxbb" site:.edu "powered by forum software minibb" site:.edu "this forum is powered by phorum" site:.edu "powered by punbb" site:.edu "powered by quicksilver forums" site:.edu "powered by seo-board" site:.edu "powered by smf" site:.edu "powered by ubb.threads" site:.edu "powered by the unclassified newsboard" site:.edu "powered by usebb forum software" site:.edu "powered by xennobb" site:.edu "powered by yaf" site:.edu "Powered By MyBB" site:.edu "Powered by IP.Board" site:.edu "powered by phpbb" site:.edu "forums post thread" site:.edu "forums new topic" site:.edu "forums view thread" site:.edu "forums new replies" site:.edu "forum post thread" site:.edu "forum new topic" site:.edu "forum view thread" site:.edu "forum new replies" site:.edu "forum" site:.edu "phorum" site:.edu "add topic" site:.edu "new topic" site:.edu "phpbb" site:.edu "yabb" site:.edu "ipb" site:.edu "posting" site:.edu "add message" site:.edu "send message" site:.edu "post new topic" site:.edu "new thread" site:.edu "send thread" site:.edu "vbulletin" site:.edu "bbs" site:.edu "intext:powered by vbulletin" site:.edu "intext:powered by yabb" site:.edu "intext:powered by ip.board" site:.edu "intext:powered by phpbb" site:.edu "inanchor:vbulletin" site:.edu "inanchor:yabb" site:.edu "inanchor:ip.board" site:.edu "inanchor:phpbb" site:.edu "/board" site:.edu "/board/" site:.edu "/foren/" site:.edu "/forum/" site:.edu "/forum/?fnr=" site:.edu "/forums/" site:.edu "/sutra" site:.edu "act=reg" site:.edu "act=sf" site:.edu "act=st" site:.edu "bbs/ezboard.cgi" site:.edu "bbs1/ezboard.cgi" site:.edu "board" site:.edu "board-4you.de" site:.edu "board/ezboard.cgi" site:.edu "boardbook.de" site:.edu "bulletin" site:.edu "cgi-bin/ezboard.cgi" site:.edu "invision" site:.edu "kostenlose-foren.org" site:.edu "kostenloses-forum.com" site:.edu "list.php" site:.edu "lofiversion" site:.edu "modules.php" site:.edu "newbb" site:.edu "newbbs/ezboard.cgi" site:.edu "onlyfree.de/cgi-bin/forum/" site:.edu "phpbbx.de" site:.edu "plusboard.de" site:.edu "post.php" site:.edu "profile.php" site:.edu "showthread.php" site:.edu "siteboard.de" site:.edu "thread" site:.edu "topic" site:.edu "ubb" site:.edu "ultimatebb" site:.edu "unboard.de" site:.edu "webmart.de/f.cfm?id=" site:.edu "xtremeservers.at/board/" site:.edu "yooco.de" site:.edu "forum" site:.edu "phorum" site:.edu "add topic" site:.edu "new topic" site:.edu "phpbb" site:.edu "yabb" site:.edu "ipb" site:.edu "posting" site:.edu "add message" site:.edu "send message" site:.edu "post new topic" site:.edu "new thread" site:.edu "send thread" site:.edu "vbulletin" site:.edu "bbs" site:.edu "cgi-bin/forum/" site:.edu "/cgi-bin/forum/blah.pl" site:.edu "powered by e-blah forum software" site:.edu "powered by xmb" site:.edu "/forumdisplay.php?" site:.edu "/misc.php?action=" site:.edu "member.php?action=" site:.edu "powered by: fudforum" site:.edu "index.php?t=usrinfo" site:.edu "/index.php?t=thread" site:.edu "/index.php?t=" site:.edu "index.php?t=post&frm_id=" site:.edu "powered by fluxbb" site:.edu "/profile.php?id=" site:.edu "viewforum.php?id" site:.edu "login.php" site:.edu "register.php" site:.edu "profile.forum?" site:.edu "posting.forum&mode=newtopic" site:.edu "post.forum?mode=reply" site:.edu "powered by icebb" site:.edu "index.php?s=" site:.edu "act=login&func=register" site:.edu "act=post&forum=19? site:.edu "forums/show/" site:.edu "module=posts&action=insert&forum_id" site:.edu "posts/list" site:.edu "/user/profile/" site:.edu "/posts/reply/" site:.edu "new_topic.jbb?" site:.edu "powered by javabb 0.99? site:.edu "login.jbb" site:.edu "new_member.jbb" site:.edu "reply.jbb" site:.edu "/cgi-bin/forum/" site:.edu "cgi-bin/forum.cgi" site:.edu "/registermember" site:.edu "listforums?" site:.edu "forum mesdiscussions.net" site:.edu "version" site:.edu "index.php?action=vtopic" site:.edu "powered by forum software minibb" site:.edu "index.php?action=registernew" site:.edu "member.php?action=register" site:.edu "forumdisplay.php" site:.edu "newthread.php?" site:.edu "newreply.php?" site:.edu "/phorum/" site:.edu "phorum/list.php" site:.edu "this forum is powered by phorum" site:.edu "phorum/posting.php" site:.edu "phorum/register.php" site:.edu "phpbb/viewforum.php?" site:.edu "/phpbb/" site:.edu "phpbb/profile.php?mode=register" site:.edu "phpbb/posting.php?mode=newtopic" site:.edu "phpbb/posting.php?mode=reply" site:.edu "/phpbb3/" site:.edu "phpbb3/ucp.php?mode=register" site:.edu "phpbb3/posting.php?mode=post" site:.edu "phpbb3/posting.php?mode=reply" site:.edu "/punbb/" site:.edu "punbb/register.php" site:.edu "powered by phpbb" site:.edu "powered by punbb" site:.edu "/quicksilver/" site:.edu "powered by quicksilver forums" site:.edu "index.php?a=forum" site:.edu "index.php?a=register" site:.edu "index.php?a=post&s=topic" site:.edu "/seoboard/" site:.edu "powered by seo-board" site:.edu "seoboard/index.php?a=vforum" site:.edu "index.php?a=vtopic" site:.edu "/index.php?a=register" site:.edu "powered by smf 1.1.5? site:.edu "index.php?action=register" site:.edu "/index.php?board" site:.edu "powered by ubb.threads" site:.edu "ubb=postlist" site:.edu "ubb=newpost&board=1? site:.edu "ultrabb" site:.edu "view_forum.php?id" site:.edu "new_topic.php?" site:.edu "login.php?register=1? site:.edu "powered by vbulletin" site:.edu "vbulletin/register.php" site:.edu "/forumdisplay.php?f=" site:.edu "newreply.php?do=newreply" site:.edu "newthread.php?do=newthread" site:.edu "powered by bbpress" site:.edu "bbpress/topic.php?id" site:.edu "bbpress/register.php" site:.edu "powered by the unclassified newsboard" site:.edu "forum.php?req" site:.edu "forum.php?req=register" site:.edu "/unb/" site:.edu "powered by usebb forum software" site:.edu "/usebb/" site:.edu "topic.php?id" site:.edu "panel.php?act=register" site:.edu "a product of lussumo" site:.edu "comments.php?discussionid=" site:.edu "/viscacha/" site:.edu "forum.php?s=" site:.edu "powered by viscacha" site:.edu "/viscacha/register.php" site:.edu "/post?id=" site:.edu "post/printadd?forum" site:.edu "community/index.php" site:.edu "community/forum.php?" site:.edu "community/register.php" site:.edu "powered by xennobb" site:.edu "hosted for free by zetaboards" site:.edu "powered by yaf" site:.edu "yaf_rules.aspx" site:.edu "yaf_topics" site:.edu "postmessage.aspx" site:.edu "register.aspx" site:.edu "post/?type" site:.edu "action=display&thread" site:.edu "index.php" site:.edu "index.php?fid" site:.edu inurl:guestbook inurl: edu guestbook inurl:edu Link:http://worldwidemart.com/scripts/ inurl:"guestBook.aspx" site:edu inurl:guest inurl:guest site:edu inurl:guestbook.html inurl:guestbook.php inurl:kg.php inurl:guestbook.html site:.edu inurl:guestbook.php site:.edu inurl:?agbook=addentry inurl:?show=guestbook&do=add inurl:?t=add inurl:GuestBook/addentry.php inurl:Myguestbook/index.asp inurl:addentry.html inurl:addentry.php inurl:addguest.cgi inurl:addguest.htm inurl:addguest.html inurl:addguest.php inurl:addguest.shtml inurl:apeboard.cgi inurl:apeboard_plus.cgi inurl:apeboard_plus.cgi?command= inurl:ardguest.php?do= inurl:aska.cgi inurl:aspboardpost.asp?id= inurl:bbs.cgi inurl:bbs.cgibbs.cgi? inurl:bbs.cgibbs.cgi?id= inurl:bbs.cgibbs.cgi?mode= inurl:bbs.cgibbs.cgi?page= inurl:bbs.cgibbs.cgi?room= inurl:bbs.cgibbs.php inurl:bbs.cgibbs/mm.php inurl:bbs.cgibbs_inaka.jsp inurl:board.cgi?id= inurl:board.cgi?mode= inurl:book.php inurl:c-board.cgi?cmd= inurl:cbbs.cgi inurl:cbbs.cgi?mode= inurl:cbbs.cgi?mode=new inurl:cf.cgi?mode= inurl:cgi-bin/config.pl inurl:cgi-bin/gbook.cgi inurl:cgi/gbook.cgi inurl:clever.cgi inurl:clever.cgi?mode= inurl:clever.cgi?page= inurl:clip.cgi inurl:combbs.cgi?mode= inurl:comment.htm inurl:comment.php inurl:comment.php?id= inurl:comment_reply.php?com_itemid= inurl:commentaire.php?id= inurl:comments.asp inurl:comments.htm inurl:comments.html inurl:comments.php inurl:comments.php?id= inurl:crazyguestbook.cgi?db= inurl:custombbs.cgi inurl:custreg.asp?action= inurl:cutebbs.cgi inurl:dcguest.cgi?action=add_form inurl:default.asp inurl:default.asp?action= inurl:diary.cgi?mode= inurl:e-guest_sign.pl inurl:e_sign.asp inurl:easyguestbookentry inurl:eguestbook.cgi?Sign inurl:eintrag.htm inurl:eintrag.html inurl:eintrag.php inurl:eintrag.php?id= inurl:eintrag1.php inurl:eintrag_neu.php inurl:eintragen.asp inurl:eintragen.htm inurl:eintragen.html inurl:eintragen.php inurl:eintragen.php?menuid= inurl:eintragen.pl inurl:emfsend.cgi?sc= inurl:entry.php inurl:entry.php?id= inurl:epad.cgi inurl:fantasy.cgi inurl:firebook.cgi inurl:form.php inurl:forum_posts.asp inurl:forum_topics.asp inurl:fpg.cgi inurl:fsguest.html inurl:fsguestbook.html inurl:g_book.cgi inurl:gaeste.php? inurl:gaestebuch.cgi inurl:gaestebuch.htm inurl:gaestebuch.html inurl:gaestebuch.php inurl:gaestebuch.php?action= inurl:gaestebuch.php?action=entry inurl:gaestebuch/ inurl:gaestebuch_lesen.php inurl:gastbok.php inurl:gastbuch.php inurl:gastenboek.html inurl:gastenboek.php inurl:gb.asp inurl:gb.cfm?bookID= inurl:gb.cgi?id= inurl:gb.php inurl:gb.php?action= inurl:gb.php?id= inurl:gb.php?tmpl= inurl:gb.php?user= inurl:gb/ inurl:gb/addrec.php inurl:gb_list.asp inurl:gb_sign.asp inurl:gbadd.php inurl:gbadd.php?action=new&interval=1 inurl:gbaddentry.php inurl:gbook.asp inurl:gbook.html inurl:gbook.php inurl:gbook.php?a= inurl:gbook.php?action= inurl:gbook.php?id= inurl:gbook.php?page=1 inurl:gbook.php?show= inurl:gbook/?page=1 inurl:gbook/gbook.php inurl:gbook2.php inurl:gbook?sign= inurl:gbooksign.asp inurl:gbserver inurl:gbuch.php inurl:gjestebok.php inurl:gjestebok/index.asp inurl:gjestebok/index.pl inurl:gjestebok3.asp inurl:gjesteboken.asp inurl:glight.cgi inurl:goto.php?msgadd inurl:gst_sign.dbm inurl:gstbk_add.php?sid= inurl:guest.asp inurl:guest.cfm inurl:guest.cgi inurl:guest.cgi?action=add_form inurl:guest.cgi?handle= inurl:guest.cgi?pageid= inurl:guest.cgi?site= inurl:guest.htm inurl:guest.html inurl:guest.php inurl:guest.pl inurl:guest/gbook.php inurl:guest_book.htm inurl:guest_book.html inurl:guestadd.html inurl:guestbook inurl:guestbook-add.html inurl:guestbook.asp inurl:guestbook.asp?action= inurl:guestbook.asp?mode= inurl:guestbook.asp?sent= inurl:guestbook.aspx inurl:guestbook.cfm inurl:guestbook.cgi inurl:guestbook.cgi?action= inurl:guestbook.cgi?action=add&aspm1= inurl:guestbook.cgi?id= inurl:guestbook.cgi?start= inurl:guestbook.htm inurl:guestbook.html inurl:guestbook.html?page= inurl:guestbook.mv?parm_func= inurl:guestbook.php inurl:guestbook.php.cgi?gbook= inurl:guestbook.php? inurl:guestbook.php?act= inurl:guestbook.php?action= inurl:guestbook.php?action=add inurl:guestbook.php?cmd= inurl:guestbook.php?do= inurl:guestbook.php?form= inurl:guestbook.php?id= inurl:guestbook.php?inputmask= inurl:guestbook.php?lang= inurl:guestbook.php?mode= inurl:guestbook.php?new_message= inurl:guestbook.php?new_message=1 inurl:guestbook.php?page= inurl:guestbook.php?pg= inurl:guestbook.php?sn= inurl:guestbook.pl inurl:guestbook.pl?action= inurl:guestbook.pl?action=add inurl:guestbook.pl?action=form inurl:guestbook/add.html inurl:guestbook/comment.php?gb_id= inurl:guestbook/index.asp inurl:guestbook/php/entry.php inurl:guestbook/post/ inurl:guestbook2.asp?l= inurl:guestbook_add.php inurl:guestbook_new.php inurl:guestbook_sign.php inurl:guestbook_sign.php?oscsid= inurl:guestbookadd.asp inurl:guestbookvip.php inurl:guestbookvip.php?memid= inurl:guestbox.php?anfangsposition= inurl:guestform.php inurl:guestform.php?gbid=cdg inurl:guestsaisie.php inurl:honey.cgi inurl:honey.cgi?mode= inurl:ibbs.cgi inurl:ibbs.cgi?H=tp&no=0 inurl:ibbs.cgi?page= inurl:imgboard.cgi inurl:index.php3?add=1 inurl:index.php?gbname= inurl:index.php?id=...&item_id= inurl:index.php?p=guestbook!}<=NL&action=add inurl:index.php?page=guestbook_read inurl:joyful. inurl:joyful.cgi inurl:joyfulyy.cgi inurl:jsguest.cgi?action=new inurl:kakikomitai.cgi? inurl:kb_pc.cgi inurl:kboard.cgi inurl:kbpost.htm inurl:kerobbs.cgi inurl:kerobbs.cgi?page= inurl:kiboujoken.htm inurl:kniha.php inurl:krbbs.cgi inurl:ksgosci.php inurl:ksiega.php inurl:ktaiufo.cgi inurl:light.cgi inurl:light.cgi?page= inurl:mboard.php inurl:messageboard.html inurl:messages.php?1=1&agbook=addentry inurl:mezase.cgi inurl:minibbs.cgi inurl:minibbs.cgi?log= inurl:mkakikomitai.cgi inurl:msboard.cgi?id= inurl:msgboard.mv?parm_func= inurl:msgbook.cgi?id= inurl:new.php?forum_id= inurl:new_message.asp inurl:newdefault.asp inurl:newdefault.asp?DeptID= inurl:news.php?subaction= inurl:patio.cgi inurl:petit.cgi inurl:phello.cgi inurl:post.asp inurl:post.htm inurl:post.html inurl:post_comment.php?u= inurl:post_comment.php?w= inurl:postcards.php?image_id= inurl:print_sec_img.php inurl:purybbs.cgi inurl:purybbs.cgi?page= inurl:rabook.php inurl:rbook.cgi inurl:rbook.cgi?page= inurl:read.cgi/gboy/ inurl:read.cgi?board= inurl:reg.php?pid= inurl:resbbs.cgi inurl:schedule.cgi?form= inurl:sendmessage.asp inurl:showguestbook.php?linkid= inurl:sicharou.cgi inurl:sign.asp inurl:sign.asp?PagePosition= inurl:sign.html inurl:sign.php inurl:sign_guestbook.asp inurl:sign_guestbook_form.asp inurl:signbook.cfm inurl:signerbok.asp inurl:signgb.php inurl:signguestbook.asp inurl:signguestbook.html inurl:signguestbook.php inurl:signup.php inurl:simbbs.cgi inurl:skriv.html inurl:skriv_i_gaestebogen.html inurl:spguest.cgi?id= inurl:stlfbbs.cgi inurl:submit.asp inurl:submit.html inurl:submit.php inurl:submit.pl inurl:suggest.php?action= inurl:sunbbs.cgi?mode= inurl:tnote.cgi inurl:treebbs.cgi inurl:ttboard.cgi?act= inurl:upb.cgi inurl:upbbs.cgi inurl:user.php inurl:view.php?id=9&action=new inurl:write.asp inurl:write.php?uid= inurl:wwwboard.cgi inurl:yapgb.php?action= inurl:yuu-fantasy.cgi inurl:yybbs.cgi inurl:zboard.php?id= inurl:0815guestbooks.de inurl:100pro-gaestebuch.de/gbserver/ inurl:12book.de/gaestebuch inurl:Gb/Sign_Guestbook.asp inurl:Gbook/Sign_Guestbook.asp inurl:GuestBook/gst_sign.dbm inurl:Guestbook/Sign_Guestbook.asp inurl:Guestbook_eintrag.htm inurl:Sign_Guestbook.asp inurl:addbook.cgi inurl:addentry inurl:addguest inurl:addguest.html inurl:addguest.php inurl:addguestGB2.cgi inurl:addmessage inurl:apeboard inurl:bbs inurl:burning inurl:epad inurl:feedbook.de inurl:flash_gb9.php?id= inurl:flf-book.de inurl:free-guestbooks.de/gbserver/ inurl:freeguestbook.de/addbook.cgi? inurl:freeguestbook.de/readbook.cgi? inurl:freeguestbook4you.de gaestebuch-umsonst.ws inurl:gaestebuch. inurl:gaestebuch.007box.de inurl:gaestebuch.php inurl:gaestebuch.php? inurl:gaestebuch/neu.php inurl:gaestebuch4u.de inurl:gaestebuchking.de inurl:gastbuch.php inurl:gastbuch.php3 inurl:gastbuch.php?id= inurl:gb.cgi inurl:gb.php?user= inurl:gb.webmart.de inurl:gb.webmart.de/gb.cfm?id= inurl:gb/addguest.html inurl:gb/guest.pl inurl:gb/sign.html inurl:gb2003.de inurl:gb_eintrag.php? inurl:gbook.cgi inurl:gbook.tv inurl:gbook/addguest.html inurl:gbook/guest.pl inurl:gbook/sign.html inurl:gbserver.de inurl:gratis-gaestebuch.de inurl:gratis-gaestebuch.eu/firebook.cgi? inurl:gst_sign.dbm inurl:guessbook/sign.html inurl:guest. inurl:guest.pl inurl:guest_book/guest.pl inurl:guestb inurl:guestbook inurl:guestbook-free.com/books inurl:guestbook-free.com/books2 inurl:guestbook.cgi inurl:guestbook.onetwomax.de inurl:guestbook/a=sign inurl:guestbook/addguest.html inurl:guestbook/guest.pl inurl:guestbook/sign.html inurl:guestbook24.com/gastbuch.php inurl:guestbook24.eu inurl:guestbook4you.de/gb.php? inurl:iboox.com inurl:multiguestbook.com inurl:my-gaestebuch.de inurl:netguestbook.com inurl:new.html#sign inurl:power-guestbook.de inurl:regsign.cgi inurl:sign.fcgi inurl:sign.html inurl:sign_book.cgi inurl:wgbsign.html site:com “powered by BlogEngine.NET” inurl:blog "post a comment" -"comments closed" -"you must be logged in" site:edu “powered by BlogEngine.NET” inurl:blog "post a comment" -"comments closed" -"you must be logged in" site:org “powered by BlogEngine.NET” inurl:blog "post a comment" -"comments closed" -"you must be logged in" site:gov “powered by BlogEngine.NET” inurl:blog "post a comment" -"comments closed" -"you must be logged in" site:com “powered by BlogEngine.NET” inurl:blog "Leave a comment" -"comments closed" -"you must be logged in" site:org “powered by BlogEngine.NET” inurl:blog "Leave a comment" -"comments closed" -"you must be logged in" site:edu “powered by BlogEngine.NET” inurl:blog "Leave a comment" -"comments closed" -"you must be logged in" site:gov “powered by BlogEngine.NET” inurl:blog "Leave a comment" -"comments closed" -"you must be logged in" site:com “powered by BlogEngine.NET” inurl:blog "add a comment" -"comments closed" -"you must be logged in" site:org “powered by BlogEngine.NET” inurl:blog "add a comment" -"comments closed" -"you must be logged in" site:edu “powered by BlogEngine.NET” inurl:blog "add a comment" -"comments closed" -"you must be logged in" site:gov “powered by BlogEngine.NET” inurl:blog "add a comment" -"comments closed" -"you must be logged in" site:com “powered by BlogEngine.NET” "post a comment" -"comments closed" -"you must be logged in" site:edu “powered by BlogEngine.NET” "post a comment" -"comments closed" -"you must be logged in" site:org “powered by BlogEngine.NET” "post a comment" -"comments closed" -"you must be logged in" site:gov “powered by BlogEngine.NET” "post a comment" -"comments closed" -"you must be logged in" site:com “powered by BlogEngine.NET” "Leave a comment" -"comments closed" -"you must be logged in" site:org “powered by BlogEngine.NET” "Leave a comment" -"comments closed" -"you must be logged in" site:edu “powered by BlogEngine.NET” "Leave a comment" -"comments closed" -"you must be logged in" site:gov “powered by BlogEngine.NET” "Leave a comment" -"comments closed" -"you must be logged in" site:com “powered by BlogEngine.NET” "add a comment" -"comments closed" -"you must be logged in" site:org “powered by BlogEngine.NET” "add a comment" -"comments closed" -"you must be logged in" site:edu “powered by BlogEngine.NET” "add a comment" -"comments closed" -"you must be logged in" site:gov “powered by BlogEngine.NET” "add a comment" -"comments closed" -"you must be logged in" site:com “powered by BlogEngine.NET” "post a comment" site:edu “powered by BlogEngine.NET” "post a comment" site:org “powered by BlogEngine.NET” "post a comment" site:gov “powered by BlogEngine.NET” "post a comment" site:com “powered by BlogEngine.NET” "Leave a comment" site:org “powered by BlogEngine.NET” "Leave a comment" site:edu “powered by BlogEngine.NET” "Leave a comment" site:gov “powered by BlogEngine.NET” "Leave a comment" site:com “powered by BlogEngine.NET” "add a comment" site:org “powered by BlogEngine.NET” "add a comment" site:edu “powered by BlogEngine.NET” "add a comment" site:gov “powered by BlogEngine.NET” "add a comment" site:com “powered by BlogEngine.NET” inurl:blog "post a comment" site:edu “powered by BlogEngine.NET” inurl:blog "post a comment" site:org “powered by BlogEngine.NET” inurl:blog "post a comment" site:gov “powered by BlogEngine.NET” inurl:blog "post a comment" site:com “powered by BlogEngine.NET” inurl:blog "Leave a comment" site:org “powered by BlogEngine.NET” inurl:blog "Leave a comment" site:edu “powered by BlogEngine.NET” inurl:blog "Leave a comment" site:gov “powered by BlogEngine.NET” inurl:blog "Leave a comment" site:com “powered by BlogEngine.NET” inurl:blog "add a comment" site:org “powered by BlogEngine.NET” inurl:blog "add a comment" site:edu “powered by BlogEngine.NET” inurl:blog "add a comment" site:gov “powered by BlogEngine.NET” inurl:blog "add a comment" site:edu "powered by BlogEngine.NET" site:com "powered by BlogEngine.NET" site:gov "powered by BlogEngine.NET" site:org "powered by BlogEngine.NET" “powered by BlogEngine.NET” site:com “Powered by BlogEngine.NET 1.4.5.0” inurl:blog "post a comment" -"comments closed" -"you must be logged in" site:edu “Powered by BlogEngine.NET 1.4.5.0” inurl:blog "post a comment" -"comments closed" -"you must be logged in" site:org “Powered by BlogEngine.NET 1.4.5.0” inurl:blog "post a comment" -"comments closed" -"you must be logged in" site:gov “Powered by BlogEngine.NET 1.4.5.0” inurl:blog "post a comment" -"comments closed" -"you must be logged in" site:com “Powered by BlogEngine.NET 1.4.5.0” inurl:blog "Leave a comment" -"comments closed" -"you must be logged in" site:org “Powered by BlogEngine.NET 1.4.5.0” inurl:blog "Leave a comment" -"comments closed" -"you must be logged in" site:edu “Powered by BlogEngine.NET 1.4.5.0” inurl:blog "Leave a comment" -"comments closed" -"you must be logged in" site:gov “Powered by BlogEngine.NET 1.4.5.0” inurl:blog "Leave a comment" -"comments closed" -"you must be logged in" site:com “Powered by BlogEngine.NET 1.4.5.0” inurl:blog "add a comment" -"comments closed" -"you must be logged in" site:org “Powered by BlogEngine.NET 1.4.5.0” inurl:blog "add a comment" -"comments closed" -"you must be logged in" site:edu “Powered by BlogEngine.NET 1.4.5.0” inurl:blog "add a comment" -"comments closed" -"you must be logged in" site:gov “Powered by BlogEngine.NET 1.4.5.0” inurl:blog "add a comment" -"comments closed" -"you must be logged in" site:com “Powered by BlogEngine.NET 1.4.5.0” "post a comment" -"comments closed" -"you must be logged in" site:edu “Powered by BlogEngine.NET 1.4.5.0” "post a comment" -"comments closed" -"you must be logged in" site:org “Powered by BlogEngine.NET 1.4.5.0” "post a comment" -"comments closed" -"you must be logged in" site:gov “Powered by BlogEngine.NET 1.4.5.0” "post a comment" -"comments closed" -"you must be logged in" site:com “Powered by BlogEngine.NET 1.4.5.0” "Leave a comment" -"comments closed" -"you must be logged in" site:org “Powered by BlogEngine.NET 1.4.5.0” "Leave a comment" -"comments closed" -"you must be logged in" site:edu “Powered by BlogEngine.NET 1.4.5.0” "Leave a comment" -"comments closed" -"you must be logged in" site:gov “Powered by BlogEngine.NET 1.4.5.0” "Leave a comment" -"comments closed" -"you must be logged in" site:com “Powered by BlogEngine.NET 1.4.5.0” "add a comment" -"comments closed" -"you must be logged in" site:org “Powered by BlogEngine.NET 1.4.5.0” "add a comment" -"comments closed" -"you must be logged in" site:edu “Powered by BlogEngine.NET 1.4.5.0” "add a comment" -"comments closed" -"you must be logged in" site:gov “Powered by BlogEngine.NET 1.4.5.0” "add a comment" -"comments closed" -"you must be logged in" site:com “Powered by BlogEngine.NET 1.4.5.0” "post a comment" site:edu “Powered by BlogEngine.NET 1.4.5.0” "post a comment" site:org “Powered by BlogEngine.NET 1.4.5.0” "post a comment" site:gov “Powered by BlogEngine.NET 1.4.5.0” "post a comment" site:com “Powered by BlogEngine.NET 1.4.5.0” "Leave a comment" site:org “Powered by BlogEngine.NET 1.4.5.0” "Leave a comment" site:edu “Powered by BlogEngine.NET 1.4.5.0” "Leave a comment" site:gov “Powered by BlogEngine.NET 1.4.5.0” "Leave a comment" site:com “Powered by BlogEngine.NET 1.4.5.0” "add a comment" site:org “Powered by BlogEngine.NET 1.4.5.0” "add a comment" site:edu “Powered by BlogEngine.NET 1.4.5.0” "add a comment" site:gov “Powered by BlogEngine.NET 1.4.5.0” "add a comment" site:com “Powered by BlogEngine.NET 1.4.5.0” inurl:blog "post a comment" site:edu “Powered by BlogEngine.NET 1.4.5.0” inurl:blog "post a comment" site:org “Powered by BlogEngine.NET 1.4.5.0” inurl:blog "post a comment" site:gov “Powered by BlogEngine.NET 1.4.5.0” inurl:blog "post a comment" site:com “Powered by BlogEngine.NET 1.4.5.0” inurl:blog "Leave a comment" site:org “Powered by BlogEngine.NET 1.4.5.0” inurl:blog "Leave a comment" site:edu “Powered by BlogEngine.NET 1.4.5.0” inurl:blog "Leave a comment" site:gov “Powered by BlogEngine.NET 1.4.5.0” inurl:blog "Leave a comment" site:com “Powered by BlogEngine.NET 1.4.5.0” inurl:blog "add a comment" site:org “Powered by BlogEngine.NET 1.4.5.0” inurl:blog "add a comment" site:edu “Powered by BlogEngine.NET 1.4.5.0” inurl:blog "add a comment" site:gov “Powered by BlogEngine.NET 1.4.5.0” inurl:blog "add a comment" site:edu "Powered by BlogEngine.NET 1.4.5.0" site:com "Powered by BlogEngine.NET 1.4.5.0" site:gov "Powered by BlogEngine.NET 1.4.5.0" site:org "Powered by BlogEngine.NET 1.4.5.0" “Powered by BlogEngine.NET 1.4.5.0” site:com “powered by expressionengine” inurl:blog "post a comment" -"comments closed" -"you must be logged in" site:edu “powered by expressionengine” inurl:blog "post a comment" -"comments closed" -"you must be logged in" site:org “powered by expressionengine” inurl:blog "post a comment" -"comments closed" -"you must be logged in" site:gov “powered by expressionengine” inurl:blog "post a comment" -"comments closed" -"you must be logged in" site:com “powered by expressionengine” inurl:blog "Leave a comment" -"comments closed" -"you must be logged in" site:org “powered by expressionengine” inurl:blog "Leave a comment" -"comments closed" -"you must be logged in" site:edu “powered by expressionengine” inurl:blog "Leave a comment" -"comments closed" -"you must be logged in" site:gov “powered by expressionengine” inurl:blog "Leave a comment" -"comments closed" -"you must be logged in" site:com “powered by expressionengine” inurl:blog "add a comment" -"comments closed" -"you must be logged in" site:org “powered by expressionengine” inurl:blog "add a comment" -"comments closed" -"you must be logged in" site:edu “powered by expressionengine” inurl:blog "add a comment" -"comments closed" -"you must be logged in" site:gov “powered by expressionengine” inurl:blog "add a comment" -"comments closed" -"you must be logged in" site:com “powered by expressionengine” "post a comment" -"comments closed" -"you must be logged in" site:edu “powered by expressionengine” "post a comment" -"comments closed" -"you must be logged in" site:org “powered by expressionengine” "post a comment" -"comments closed" -"you must be logged in" site:gov “powered by expressionengine” "post a comment" -"comments closed" -"you must be logged in" site:com “powered by expressionengine” "Leave a comment" -"comments closed" -"you must be logged in" site:org “powered by expressionengine” "Leave a comment" -"comments closed" -"you must be logged in" site:edu “powered by expressionengine” "Leave a comment" -"comments closed" -"you must be logged in" site:gov “powered by expressionengine” "Leave a comment" -"comments closed" -"you must be logged in" site:com “powered by expressionengine” "add a comment" -"comments closed" -"you must be logged in" site:org “powered by expressionengine” "add a comment" -"comments closed" -"you must be logged in" site:edu “powered by expressionengine” "add a comment" -"comments closed" -"you must be logged in" site:gov “powered by expressionengine” "add a comment" -"comments closed" -"you must be logged in" site:com “powered by expressionengine” "post a comment" site:edu “powered by expressionengine” "post a comment" site:org “powered by expressionengine” "post a comment" site:gov “powered by expressionengine” "post a comment" site:com “powered by expressionengine” "Leave a comment" site:org “powered by expressionengine” "Leave a comment" site:edu “powered by expressionengine” "Leave a comment" site:gov “powered by expressionengine” "Leave a comment" site:com “powered by expressionengine” "add a comment" site:org “powered by expressionengine” "add a comment" site:edu “powered by expressionengine” "add a comment" site:gov “powered by expressionengine” "add a comment" site:com “powered by expressionengine” inurl:blog "post a comment" site:edu “powered by expressionengine” inurl:blog "post a comment" site:org “powered by expressionengine” inurl:blog "post a comment" site:gov “powered by expressionengine” inurl:blog "post a comment" site:com “powered by expressionengine” inurl:blog "Leave a comment" site:org “powered by expressionengine” inurl:blog "Leave a comment" site:edu “powered by expressionengine” inurl:blog "Leave a comment" site:gov “powered by expressionengine” inurl:blog "Leave a comment" site:com “powered by expressionengine” inurl:blog "add a comment" site:org “powered by expressionengine” inurl:blog "add a comment" site:edu “powered by expressionengine” inurl:blog "add a comment" site:gov “powered by expressionengine” inurl:blog "add a comment" site:edu "powered by expressionengine" site:com "powered by expressionengine" site:gov "powered by expressionengine" site:org "powered by expressionengine" “powered by expressionengine” inurl:"title=Dyskusja_u%C5%BCytkownika:" inurl:"/wiki/index.php" "Theme: Strasa - Mono" wiki "you only need to fill in when" categorywiki "This is an alphabetical list of pages you can read on this server." "Login/Register" inurl:"title=%EC%82%AC%EC%9A%A9%EC%9E%90%ED%86%A0%EB%A1%A0:" inurl:"title=U%C5%BEivatel_diskuse:" "Theme: Fluid Index by Your Index" inurl:"title=Discussion_utilisateur:" "Welcome to MoinMoin. You will find here the help pages for the wiki system itself." "Wiki:About" inurl:"Speciaal:Aanmelden" wiki inurl:"title=%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D1%83%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B0:" inurl:"CategoryWiki" inurl:"Especial:Entrar" wiki inurl:"title=Discussioni_utente:" inurl:"/mediawiki/index.php" "The wiki, blog, calendar, and mailing list" inurl:"Istimewa:Masuk_log" wiki inurl:"title=%E4%BD%BF%E7%94%A8%E8%80%85%E8%A8%8E%E8%AB%96:" inurl:"title=%E0%B8%84%E0%B8%B8%E0%B8%A2%E0%B9%80%E0%B8%81%E0%B8%B5%E0%B9%88%E0%B8%A2%E0%B8%A7%E0%B8%81%E0%B8%B1%E0%B8%9A%E0%B8%9C%E0%B8%B9%E0%B9%89%E0%B9%83%E0%B8%8A%E0%B9%89:" inurl:"title=Usu%C3%A1rio_Discuss%C3%A3o:" inurl:"Speciale:Entra" wiki "Powered by WikkaWiki" inurl:"tiki-register.php" "dokuwiki.txt" "Tema: Fivealive - Lemon" inurl:"%E7%89%B9%E5%88%A5:%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3" wiki Categories PageIndex Recent Changes Recently Commented "Login/Register" "" "" "Powered by Tikiwiki CMS/Groupware" inurl:"title=Utilizador_Discuss%C3%A3o:" "Tema: Fivealive" "This page was last modified on" "wiki" inurl:"Specjalna:Zaloguj" wiki "Thanks for installing Wikka! This wiki runs on version" inurl:"http://wikka." "Theme: Coelesce" "Powered By MediaWiki" inurl:wiki "Theme: Fivealive - Kiwi" inurl:"Utente:" wiki "recentchanges" "findpage" "helpcontents" inurl:"Sp%C3%A9cial:Connexion" wiki inurl:"Pengguna:" wiki "MoinMoin Powered" "Python Powered" inurl:"title=%E0%B4%89%E0%B4%AA%E0%B4%AF%E0%B5%8B%E0%B4%95%E0%B5%8D%E0%B4%A4%E0%B4%BE%E0%B4%B5%E0%B4%BF%E0%B4%A8%E0%B5%8D%E0%B4%B1%E0%B5%86_%E0%B4%B8%E0%B4%82%E0%B4%B5%E0%B4%BE%E0%B4%A6%E0%B4%82:" inurl:"U%C5%BCytkownik:" wiki inurl:"Speciel:Log_p%C3%A5" wiki "Powered By MediaWiki" "Powered By MediaWiki" inurl:wiki "what links here" "related changes" "special pages" inurl:Special:Whatlinkshere "There is currently no text in this page, you can search..." "Powered by wikkawiki" inurl:wiki/RecentlyCommented "pageindex" "recentchanges" "recentlycommented" "you only need to fill in when" categorywiki "MoinMoin Powered" "MoinMoin Powered" "Python Powered" "recentchanges" "findpage" "helpcontents" "powered by tikiwiki" "powered by tikiwiki" inurl:tiki-index.php Powered by TikiWiki CMS/Groupware v2 inurl:tiki-register.php

مشتری می تواند از وب سرور هم یک فایل سند از دیسک و هم سندی را که به صورت پویا توسط برخی از برنامه های خارجی تولید شده است درخواست کند (به عنوان یک قاعده، بسته به داده های ارائه شده توسط کاربر هنگام پر کردن فرم). رابط CGI مشخصه ای برای تعامل بین وب سرور و یک برنامه خارجی است که وب سرور برای پردازش درخواست اجرا می کند. (یک برنامه خارجی، صرف نظر از ماهیت آن، اغلب به عنوان یک اسکریپت CGI شناخته می شود.)

CGI تعیین می کند که چگونه داده های ارائه شده توسط مشتری در یک درخواست به برنامه ارسال می شود، چگونه برنامه محتوای HTML تولید شده را به سرور برمی گرداند و چه متغیرهای محیطی توسط سرور هنگام شروع برنامه تنظیم می شوند. متغیرهای محیطی حاوی اطلاعات اضافی درباره سرور و درخواست هستند (به عنوان مثال، نوع سرور، آدرس IP مشتری و غیره).

داده های یک فرم HTML که توسط مشتری پر شده است را می توان به دو روش به سرور ارسال کرد: GET و POST، این توسط پارامتر تعیین می شود. روشبرچسب مربوطه<روش فرم=... عمل=...> در حالت اول (GET)، داده ها پس از علامت سوال به انتهای URL مشخص شده در پارامتر اضافه می شوند. عمل، در مورد دوم، آنها در بدنه درخواست ارسال می شوند - در بخش در نظر گرفته شده برای داده ها (پس از همه سرصفحه ها و یک خط خالی). در هر دو مورد، داده ها به همان روش رمزگذاری می شوند - بعدی را ببینید. پاراگراف

هنگامی که یک برنامه CGI فراخوانی می شود، هر آنچه در بدنه درخواست وجود دارد در ورودی استاندارد به برنامه داده می شود و هر آنچه در URL پس از علامت سوال در متغیر محیطی QUERY_STRING قرار می گیرد. وب سرور به هیچ وجه داده های درخواست را تفسیر یا تبدیل نمی کند، این وظایف به برنامه CGI اختصاص داده می شود.

برنامه CGI محتوای پاسخ (معمولاً محتوای HTML) را در خروجی استاندارد خود می نویسد که توسط وب سرور رهگیری می شود تا به مشتری ارسال شود. برنامه CGI باید ابتدا هدر «Content-Type» را چاپ کند و با یک خط خالی آن را از داده ها جدا کند. به عنوان مثال، خروجی یک برنامه CGI که ​​HTML تولید می کند ممکن است به شکل زیر باشد:

نوع محتوا: متن/html

سلام دنیا

پیکربندی سرور آپاچی برای اجرای اسکریپت های CGI

برای اینکه آپاچی بتواند تمام فایل های موجود در یک فهرست خاص را به عنوان اسکریپت های CGI در نظر بگیرد، باید از دستورالعمل استفاده کنید.

ScriptAlias ​​/ مجازی/مسیر/ /مسیر/به/دایرکتوری/ ScriptAlias‎/cgi-bin/ /usr/local/www/cgi-bin/ به این معنی است که برای پردازش درخواست یک URL مانند http://your.server.com/cgi-bin/dir/script، یک فایل اسکریپت از کاتالوگ DocumentRoot/cgi-bin/dir/ و /usr/local/www/cgi-bin/dir/script در حال اجرا است.

برای ذخیره سازی مختلط فایل ها و اسکریپت های CGI در یک فهرست درون درخت DocumentRootبه اسکریپت های CGI پسوند یکسانی بدهید (مثلاً ".cgi") و به سرور بگویید که این فایل ها را به عنوان اسکریپت های CGI تفسیر کند:

AddHandler cgi-script .cgi دستورالعمل AddHandler را می توان در هر زمینه پیکربندی آپاچی استفاده کرد.

ساختار URL و درخواست رمزگذاری داده

بخش‌هایی از URL به نام‌های PATH_INFO و QUERY_STRING برای عملکرد برنامه‌های CGI ضروری هستند. درخواستی را با URL مشابه در نظر بگیرید

http://my.server.com/cgi-bin/dir/prog/a/b?A=1&B=qwerty

با استفاده از بخشنامه ScriptAlias، داده شده در پاراگراف قبل، سرور تشخیص می دهد که برنامه CGI فراخوانی شده است و برای جستجوی این برنامه، عبارت اولیه را جایگزین می کند. /cgi-bin/بر /usr/local/www/cgi-bin/. به دنبال URL درخواستی، سرور یک زیر شاخه را در این فهرست پیدا می کند کارگردان، اما زیر شاخه progدر کاتالوگ /usr/local/www/cgi-bin/dirتشخیص داده نشد. در این حالت سرور چنین فرض می کند prog- نام برنامه CGI که ​​باید اجرا شود. اگر برنامه /usr/local/www/cgi-bin/dir/progیافت نشد یا اجرا نشد، سرور یک خطای 403، 404 یا 500 را به کلاینت برمی گرداند. در غیر این صورت، برنامه prog اجرا می شود و بقیه مسیر از URL است. /a/b- به برنامه prog در متغیر محیطی PATH_INFO منتقل می شود. به این ترتیب می توانید پارامترهای اضافی را به برنامه CGI منتقل کنید.

هر چیزی بعد از علامت سوال A=1&B=qwerty- در متغیر محیطی QUERY_STRING به prog منتقل شد. این می تواند داده هایی از فرمی باشد که توسط کاربر پر شده است، با استفاده از روش GET به سرور ارسال می شود، یا برخی اطلاعات دیگر (سرور هیچ فرضی در مورد تفسیر داده ها در QUERY_STRING نمی کند، این وظیفه نامیده می شود. برنامه).

داده های فیلدهای فرم پر شده توسط کاربر - صرف نظر از روشی (POST یا GET) که به سرور ارسال می شوند - به صورت زیر کدگذاری می شوند:

نام زمینه=فیلد_مقدار&نام زمینه=فیلد_مقدار...

جفت‌های نام-مقدار با یک علامت از هم جدا می‌شوند. کاراکترهای حروف عددی و برخی از علائم نگارشی که معنای خاصی ندارند (خط تیره، خط زیر) همانطور که هست منتقل می شوند. کاراکترهای باقی مانده به صورت "کدگذاری می شوند %NM "، جایی که NM- کد کاراکتر هگزادسیمال دو رقمی. یک فاصله می تواند به عنوان "%20" یا به عنوان یک کاراکتر "+" ارسال شود. کاراکترهای سیریلیک نیز باید به روش مشخص شده کدگذاری شوند. هنگام ارسال فیلدهای فرم تکمیل شده، رمزگذاری توسط مرورگر انجام می شود.

مثلا:

http://my.server.com/cgi-bin/dir/prog?birthday=11%2F05%2F73&name=John+Smith یعنی در جعبه روز تولدکاربر "11/05/73" را وارد کرده و در قسمت نام- جان اسمیت.

رمزگشایی داده های فرم وظیفه برنامه CGI است.

هنگام ارسال داده های فرم کدگذاری شده به روش فوق با استفاده از روش POST، مشتری باید سرصفحه درخواست Content-Type را به صورت زیر تنظیم کند:

نوع محتوا: برنامه کاربردی/x-www-form-urlencoded

متغیرهای محیطی CGI

هنگام اجرای یک اسکریپت CGI، وب سرور متغیرهای محیطی اضافی را تنظیم می کند:

متغیر معنی
AUTH_TYPE

روش احراز هویت که برای احراز هویت کاربر استفاده می شود. همچنین به REMOTE_USER و REMOTE_IDENT مراجعه کنید.

CONTENT_LENGTH

طول داده درخواست در بایت از طریق ورودی استاندارد به اسکریپت CGI ارسال می شود.

نوع محتوا

نوع MIME داده درخواست.

DOCUMENT_ROOT

دایرکتوری ریشه درخت سند سرور وب (تعریف شده توسط دستورالعمل DocumentRoot).

GATEWAY_INTERFACE

نسخه CGI برای استفاده.

HTTP_ACCEPT

لیستی از انواع داده های MIME که مشتری می تواند بپذیرد.

HTTP_FROM

آدرس ایمیل کاربری که درخواست کرده است (بسیاری از مرورگرها این اطلاعات را ارسال نمی کنند).

HTTP_REFERER
HTTP_USER_AGENT

مرورگر مشتری.

PATH_INFO PATH_INFO (در صورت وجود) - بالا را ببینید " "
PATH_TRANSLATED

PATH_INFO به یک مسیر کامل در سیستم فایل سرور تبدیل شد (PATH_INFO به DOCUMENT_ROOT اضافه شد).

QUERY_STRING

درخواست داده به عنوان بخشی از نشانی اینترنتی پس از علامت سؤال - به " " بالا مراجعه کنید.

REMOTE_ADDR

آدرس IP مشتری

میزبان راه دور نام DNS مشتری.
REMOTE_USER نام کاربری تایید شده
REQUEST_METHOD

روش درخواست (GET، POST، HEAD و غیره).

SCRIPT_NAME مسیر مجازی (به عنوان مثال /cgi-bin/program.pl) به اسکریپت اجرایی CGI.
نام ارائهکننده نام DNS سرور یا در صورت عدم تعیین نام، آدرس IP آن.
SERVER_PORT

شماره پورت سرور

SERVER_PROTOCOL نام و نسخه پروتکلی که درخواست از طریق آن انجام شده است (به عنوان مثال، HTTP/1.1).
SERVER_SOFTWARE

نوع و شماره نسخه نرم افزار وب سرور.

آپاچی دارای یک اسکریپت تست استاندارد به نام test-cgi است که مقادیر متغیرهای محیطی CGI را نمایش می دهد.

کوکی ها و سایر روش های ذخیره وضعیت

مشکل اصلی هنگام نوشتن اسکریپت های تعاملی CGI، یعنی. اسکریپت هایی که فراخوان های متوالی آنها توسط یک کاربر به طور منطقی با یکدیگر مرتبط هستند، یک مشکل ماندگاری حالت است. واقعیت این است که پروتکل HTTP تمام درخواست های ورودی به سرور را مستقل از یکدیگر در نظر می گیرد. بر این اساس، پس از پردازش هر درخواست جدید، اسکریپت CGI به طور کامل کار خود را خاتمه می دهد و برای پردازش درخواست بعدی، چه متعلق به همان جلسه کاربر منطقی باشد و چه نباشد، اسکریپت بدون هیچ اطلاعاتی از تاریخچه از ابتدا شروع می شود.

نمونه‌هایی از موقعیت‌هایی که پس‌انداز دولتی مورد نیاز است عبارتند از: یک فرآیند ثبت نام متوالی، زمانی که ثبت‌کننده باید چندین فرم را تکمیل کند، با فرم بعدی بسته به نتیجه تکمیل فرم قبلی. خرید آنلاین، زمانی که کاربر هنگام حرکت در سایت، خریدهای خود را در سبد جمع آوری می کند. تست ها و آزمون ها، زمانی که کاربر به طور مداوم به سوالات پاسخ می دهد.

چندین روش برای ذخیره حالت وجود دارد:

  1. کوکی ها - ذخیره در رایانه مشتری،
  2. فیلدهای پنهان - در فرم ارسال شده به مشتری ذخیره می شود،
  3. ذخیره در یک فایل با هر فرمتی در سرور،
  4. ذخیره در یک پایگاه داده در حال اجرا موازی

دو روش آخر پایداری حالت را در سمت سرور پیاده سازی می کنند.

پایگاه داده

هر یک از DBMS های موجود می تواند به عنوان یک پایگاه داده موازی عمل کند که برای دسترسی به آن زبان برنامه نویسی اسکریپت دارای یک رابط است (Perl دارای کتابخانه هایی است که تعامل با همه DBMS های رایج را فراهم می کند).

همچنین راه حلی به شکل دیمون وجود دارد که به صورت موازی با سرور http اجرا می شود و اطلاعات مورد نیاز را در رم آن به صورت ذخیره می کند. متغیر=معنی. برای نوشتن یا بازیابی داده ها، اسکریپت به دیمون در یک پورت TCP یا UDP از پیش تعیین شده متصل می شود، خود را شناسایی می کند و از مجموعه ای از دستورات ساده مانند "save" استفاده می کند. نام=مقدار"و" استخراج نام" (برمی گرداند مقدار).

جالب اینجاست که علیرغم پیچیدگی پیاده سازی، چنین راه حلی (یا استفاده از یک DBMS با قابلیت دسترسی از طریق شبکه) به شما امکان می دهد داده ها را بین اسکریپت های در حال اجرا بر روی سرورهای مختلف به اشتراک بگذارید (اگر نوعی سیستم وب تعاملی توزیع شده پیچیده وجود داشته باشد. پیاده سازی شده)، در حالی که داده ها را در سمت کاربر ذخیره می کند.

فایل

عیب اصلی ذخیره سازی داده ها در یک فایل، جدای از فضای مصرفی دیسک و سربار عملیات فایل، خود عملیات نوشتن دیسک است. نوشتن روی دیسک می تواند منبع مشکلات امنیتی جدی باشد، زیرا عملکرد یک اسکریپت CGI در واقع توسط کاربران خارجی کنترل می شود که ممکن است قصد مخربی داشته باشند. با ارسال هرگونه داده خاص به یک اسکریپت شلخته، می توانید باعث خرابی جدی سرور شوید. اگر اسکریپت دارای مجوز نوشتن روی دیسک باشد، عواقب آن می‌تواند بسیار جدی‌تر باشد، بنابراین معمولاً اسکریپت‌های CGI، مانند خود سرور وب، با حداقل امتیازات از طرف کاربر هیچ‌کس بدون اجازه نوشتن روی دیسک اجرا می‌شوند.

تداوم حالت در سمت کاربر

ذخیره داده های وضعیت در سمت کاربر (کوکی ها و از نظر فنی، فیلدهای مخفی) یک نقطه ضعف قابل توجه است: کاربر به داده های ذخیره شده دسترسی کامل دارد و می تواند آن را به طور غیرمجاز تغییر دهد (به عنوان مثال، پاسخ آزمون صحیح را بخوانید یا شناسه کاربری را تغییر دهید) . مزیت اجرای ساده آن است.

بیسکویت ها

کوکی ها داده های مشاهده هستند نام=معنی، که پس از دریافت از سرور، توسط مرورگر بر روی دیسک کاربر ذخیره می شوند تا در درخواست های بعدی به این یا آدرس اینترنتی دیگر به سرور بازگردانده شوند. از آنجایی که داده ها روی دیسک ذخیره می شوند، پس از راه اندازی مجدد مرورگر می توان از آن استفاده کرد.

سرور کوکی را از طریق فیلد سرصفحه پاسخ HTTP "Set-Cookie" ارسال می کند. مرورگر همچنین کوکی را از طریق یک فیلد خاص در هدر درخواست HTTP - "کوکی" برمی گرداند. در سمت سرور، کوکی معمولاً توسط یک اسکریپت تشکیل می شود که به سادگی هدر مناسب را به STDOUT خروجی می دهد. انتقال داده های دریافتی از طریق کوکی ها از مرورگر به اسکریپت توسط سرور با تنظیم متغیر محیطی HTTP_COOKIE انجام می شود که در داخل اسکریپت موجود است و شامل جفت می باشد. نام=معنی، که مرورگر در قسمت "کوکی" در سربرگ درخواست خود ارسال کرده است.

قالب فیلد تنظیم کوکی (پاسخ HTTP)

تنظیم کوکی ها: نام=معنی; حداکثر سن = ثانیه; نظر = متن_نظر; مسیر= URI_or_part_URI; دامنه = server_domain; امن است؛ نسخه=1

همه عناصر به جز نام=معنیو نسخه اختیاری هستند. یک سرصفحه پاسخ سرور می‌تواند شامل چندین فیلد Set-Cookie باشد.

نام=معنیاطلاعاتی که قرار است در سمت مشتری ذخیره شود و متعاقباً به سرور بازگردانده شود. نه در نام، و نه در معنینمی تواند شامل فاصله، زبانه یا نقطه ویرگول باشد. در صورت لزوم، چنین کاراکترهایی باید مطابق با قوانین کلی برای رمزگذاری URL ها کدگذاری شوند.

حداکثر سن = ثانیهتاریخ انقضای داده ها را تنظیم می کند (در ثانیه از لحظه دریافت کوکی)؛ به طور پیش فرض - تا پایان این فرآیند مرورگر.

نظر = متن_نظرنظر سرور در مورد هدف کوکی؛ فرض بر این است که اگر کاربر نظر را دوست نداشته باشد، می تواند از کار با این کوکی خودداری کند.

دامنه = server_domainدامنه ای که این کوکی برای آن معتبر است (مرورگر هنگام دسترسی به همه سرورهای این دامنه، با در نظر گرفتن پارامتر مسیر [به زیر مراجعه کنید] باید یک کوکی برگرداند). دامنه باید با یک نقطه شروع شود. این سرور باید در این دامنه باشد. اگر پارامتر Domain مشخص نشده است، کوکی را فقط به این سرور برگردانید.

مسیر= URI_or_part_URIمسیر از ریشه درخت سند سرور (URI)؛ مرورگر هنگام دسترسی به این URI و همه URI هایی که با این URI شروع می شوند باید یک کوکی برگرداند. به طور پیش فرض، URI که در صورت درخواست، کوکی را تولید می کند، منهای نام فایل.

به عنوان مثال: هنگام دسترسی به "http://s.vvsu.ru/a/b/c"، سرور پاسخی را با مجموعه فیلد هدر برگرداند:

SetCookie: X=5; نسخه=1 این بدان معنی است که هنگام دسترسی به همه URL ها مانند "http://s.vvsu.ru/a/b/، کوکی باید توسط مرورگر بازگردانده شود. برخی از نام فایل".
اگر SetCookie در پاسخ سرور به این شکل باشد: SetCookie: X=5; دامنه=.vvsu.ru; مسیر=/a/; نسخه=1، سپس مرورگر باید این کوکی را به همه درخواست‌های URLهای فرم پیوست کند: "http:// نام_بدون_نقطه.vvsu.ru/a/b/ بعضی_مسیر_یا_هیچکدام".

اگر این پارامتر وجود داشته باشد، ایمن باشد، مرورگر باید کوکی را فقط از طریق یک کانال ارتباطی امن به سرور بازگرداند. استاندارد مکانیسم خاصی را برای محافظت از داده ها در حین انتقال مشخص نمی کند، اما فرض بر این است که این SSL است.

قالب فیلد کوکی (درخواست HTTP)

بیسکویت ها: نام=معنی; مسیر= URI_or_part_URI; دامنه = server_domain; نسخه=1

پارامترهای Path و Domain تنها در صورتی گنجانده می شوند که در هدر Set-Cookie تنظیم شده باشند. اگر چند کوکی پارامتر Path را برآورده کند، آنها در همان هدر کوکی یکی پس از دیگری (با یک نقطه ویرگول از هم جدا می شوند) به ترتیب زیر مشخص می شوند: ابتدا کوکی هایی با پارامتر مسیر طولانی تر ارسال می شوند. ترتیب برابری پارامترهای Path تعریف نشده است.

زمینه های پنهان

یک فیلد مخفی در داخل یک فرم با استفاده از یک برچسب ایجاد می شود
نام 1ارزش= ارزش 1>

هنگامی که مرورگر سندی را با این فرم دریافت می کند، محتویات فیلدهای نوع "مخفی" نمایش داده نمی شود و کاربر از وجود آنها آگاه نیست (مگر اینکه در متن HTML سند ارسال شده نگاه کند). پس از ارسال فرم توسط کاربر به سرور، " name1=value1" به داده‌های فرم پیوست شده است که توسط اسکریپت تازه راه‌اندازی شده پردازش می‌شود. به این ترتیب، اسکریپت می‌تواند اطلاعاتی در مورد تاریخچه کار خود با کاربر به دست آورد. به عنوان مثال، هنگام خرید آنلاین، فیلدهای مخفی ممکن است حاوی لیستی از محصولات انتخاب شده برای خرید در بخش های دیگر که کاربر قبلاً در این جلسه از آنها بازدید کرده است.

عیب این روش (به غیر از امکان دسترسی و اصلاح داده های ذکر شده در بالا) این است که داده ها فقط در یک جلسه مرورگر ذخیره می شوند. در صورت راه اندازی مجدد مرورگر، تمام داده ها از بین می روند و فرآیند تعامل با اسکریپت از ابتدا شروع می شود.

سمت سرور شامل

SSI مکانیزم سمت سرور برای تجزیه اسناد HTML به منظور مکان یابی آنها در سند و اجرای دستورالعمل هایی است که اطلاعات اضافی را به سند اضافه می کند.

همه دستورالعمل ها در تگ های نظر HTML درج می شوند، که به مشتری اجازه می دهد، اگر سرور از SSI پشتیبانی نمی کند، این دستورالعمل ها را نادیده بگیرد. دستورالعمل ها دارای فرمت زیر هستند:

در زیر لیستی از دستورات اصلی SSI و پارامترهای آنها آمده است.

اکومقدار یک متغیر محیطی مشخص شده به عنوان پارامتر (همچنین به لیست متغیرهای CGI) یا یک متغیر SSI خاص (نگاه کنید به ) را در سند جایگزین می کند:

شما به سرور واقع در...

عبارتند ازمتن فایل دیگری را در سند وارد می کند. مولفه های: فایل- مسیر فایل درج شده را نسبت به محل این سند نشان می دهد. مجازی- مسیر مجازی (همانطور که در URL ظاهر می شود) به فایلی که قرار است درج شود را مشخص می کند.

این دستورالعمل برای ایجاد هدر و پاورقی استاندارد برای صفحات وب بسیار مفید است.

fsizeاندازه فایل مشخص شده در پارامتر را درج می کند (مسیر فایل مجازی است):

اندازه فایل archive.zip -بایت ها

flashmodتاریخ و زمان آخرین تغییر فایل مشخص شده در پارامتر را در سند درج می کند (مسیر فایل مجازی است):

آخرین تاریخ اصلاح:بایت ها فرمت خروجی تاریخ و زمان را می توان با پارامتر مشخص کرد timefmtبخشنامه ها پیکربندی.

اجراییبرنامه خارجی مشخص شده توسط پارامتر را اجرا می کند و خروجی آن برنامه را در سند وارد می کند. مولفه های: cmd- برنامه اجرایی یک برنامه معمولی است. cgi- برنامه در حال اجرا یک اسکریپت CGI است

از این صفحه بازدید کردیک بار. مثال اول از جایگزینی متغیر محیطی استفاده می کند (به متغیرهای CGI مراجعه کنید).

پیکربندیجنبه های مختلف نحوه کار SSI را اصلاح می کند. مولفه های:

  • errmsg - پیام خطایی که در صورت عدم اجرای دستورالعمل صادر می شود:
  • sizefmt - فرمت خروجی اندازه فایل را تنظیم می کند (که توسط دستورالعمل جایگزین می شود fsize; ارزش های: بایت ها- نمایش در بایت. مخفف- به نزدیکترین تعداد کلی کیلوبایت گرد می کند.اندازه فایل archive.zip - تقریبابایت ها
  • timefmt - فرمت خروجی تاریخ و زمان را تنظیم می کند، ببینید.

متغیرهای ویژه SSI

در زیر متغیرهای SSI هستند که می توانند در دستورالعمل استفاده شوند اکوعلاوه بر متغیرهای CGI.

DOCUMENT_NAME نام این سند. مثلا:

شما در حال خواندن فایلی به نام:

DOCUMENT_URL مسیر مجازی به سند داده شده. مثلا:

QUERY_STRING_UNESCAPED داده‌های رمزگشایی شده از QUERY_STRING (به " " مراجعه کنید)، با تمام متا نویسه‌های پوسته با یک اسلش (\).

DATE_LOCAL تاریخ و زمان فعلی به وقت محلی. مثلا:

اکنون

DATE_GMT تاریخ و زمان کنونی GMT.

LAST_MODIFIED
تاریخ و زمان آخرین تغییر این سند. مثلا:

این فایل آخرین بار اصلاح شد

وظیفه

یک اسکریپت CGI برای یک بازی جلاد بنویسید (حدس زدن یک کلمه با املا).

قوانین بازی

سرور یک کلمه را از فرهنگ لغت حدس می زند و آن را به صورت مبدل به کاربر نشان می دهد (حروف با ستاره جایگزین می شوند). کاربر تعداد مشخصی تلاش دارد. در طول هر تلاش، او می تواند یک حرف را حدس بزند. اگر کاربر حرفی را به درستی حدس بزند یا حرفی را که قبلاً استفاده کرده است نامگذاری کند، تلاش به حساب نمی آید. در غیر این صورت، تعداد تلاش ها یک بار کاهش می یابد.

اگر کاربر حرف را به درستی حدس بزند، سرور تمام اتفاقات حرف حدس زده را در نمایش کلمه پنهان می کند. در هر صورت، سرور برای راحتی کاربر، حرف پیشنهادی کاربر را به لیست حروف استفاده شده که در طول هر تلاش نمایش داده می شود، اضافه می کند. تعداد تلاش های باقی مانده نیز نشان داده شده است.

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

اگر کاربر در هر تلاشی بیش از یک حرف را پیشنهاد کند، در نظر گرفته می‌شود که کاربر سعی دارد کل کلمه را حدس بزند. با یک حدس صحیح، کاربر برنده می شود، در غیر این صورت، بدون توجه به تعداد تلاش های باقی مانده، بازنده است.

پیاده سازی

کلمات به صورت تصادفی از یک فایل متنی انتخاب می شوند.

نسبت تعداد تلاش ها و طول کلمه به طور منطقی توسط برنامه نویس تعیین می شود. به عنوان مثال، تعداد تلاش ها تابعی از طول کلمه است. تعداد تلاش ها به شدت به هر کلمه در فرهنگ لغت گره خورده است. طول کلمات در فرهنگ لغت و تعداد تلاش ها ثابت هستند. هنگام تعیین تعداد تلاش ها، از سطح دشواری اعلام شده توسط کاربر استفاده می شود.

اولین باری که به اسکریپت دسترسی پیدا می شود، یک صفحه نمایش اسپلش و یک فرم ثبت نمایش نمایش داده می شود.

خواندن را توصیه می کنیم

بالا