ترک کردن
پورتال اطلاع رسانی زنان
  • چگونه رویای وارونگی راه های مردم را ببینیم
  • Five of Pentacles (5 of Pentacles): معنی کارت تاروت پنج دیناری
  • پنج پنتاکل - به معنای کارت تاروت پنج دیناری
  • Psuvannya در مراسم تشییع جنازه - در کلبه، کوره سوزی و در مرکز
  • چگونه آن را درست بپزیم؟
  • Psuvannya برای سلامتی - علائم و چگونه می توان دانست؟
  • Zoning inurl c board cgi cmd. برنامه نویسی با CGI اضافی

    Zoning inurl c board cgi cmd.  برنامه نویسی با CGI اضافی

    تجارت الکترونیک روسی هوشمند. چگونه کسب و کار را در اینترنت مدیریت کنیم؟

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

    من می خواهم به این نکته اشاره کنم که با تأکید بر فرآیندها و کانال هایی که به جذب مشتری کمک می کند.

    تجارت الکترونیک: چیست؟

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

    خرید، فروش، بیمه، بانک، پول الکترونیک، همه چیز اینجاست. آن را بردارید، امضا کنید.

    نوع علامت

    برای اینکه با غذا آشنا بشید راهش رو از انتها بهتون میگم. متا برای هر کسب و کاری چیست؟ درست است، پول درآورید. بنابراین، بیایید هر محصولی را در نظر بگیریم، به عنوان مثال، لیسه های سیلیکونی. چرا که نه؟

    با توجه به اولین چیزی که به ذهنم رسید، مشخص شد که ...

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

    از قبل برای من مناسب است که کوچک باشم. این به درک فرآیندهای مختلف کمک می کند. کم کم؟!

    تا اینجا مدل ما به این شکل است. ضایعات را می گیریم، روی اینترنت می گذاریم و سکه ها را می بریم. این به سادگی فوق العاده است! چشمانم می سوزند، دره هایم عرق می کنند و من از قبل می خواهم آن را در دست بگیرم. آیا نیاز به ایجاد یک وب سایت برای فروش میدان دارید؟

    سایت یا میدانچیک برای فروش

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

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

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

    سیستم های پرداخت

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

    سرویس مورد نیاز خود را انتخاب کنید. در اینجا اعداد بالاتری وجود خواهد داشت و در اینجا مشترک تمیزتر است. فقط کمی غذا کد مورد نیاز خود را در سایت قرار دهید، تمام تراکنش ها را به حساب خود در کارت و voila پیوند دهید!

    محور جای خود را به همه چیز می داد. سایت دارای کارت های محصول است و دکمه «خرید» کار می کند، اما نمایش داده نمی شود... هیچ جریانی از مشتریانی که در حال خرید هستند وجود ندارد.

    مشتری جریان می یابد

    De: CAC = امکان به دست آوردن مشتری جدید. MCC (هزینه های کمپین بازاریابی) = مجموع هزینه های بازاریابی سرمایه گذاری شده برای جذب مشتریان (به غیر از هزینه ها). W (دستمزد) = حقوق برای بازاریابان و مدیران فروش. S (نرم افزار) = انواع نرم افزاری که در تبلیغات و فروش استفاده می شود (مثلاً پلتفرم های فروش مستعمل، اتوماسیون بازاریابی، تست A/B، خدمات تحلیلی و غیره). PS (professionalservices) = انواع خدمات حرفه ای که به بخش های بازاریابی و فروش (طراحی، مشاوره و غیره) ارائه می شود. O (دیگر) = سایر هزینه ها در بازاریابی و فروش انجام می شود. CA (customersacquired) = تعداد کل مشتریان به دست آمده.

    اما نمی توانید شدت مشتری را فراموش کنید، LTV می تواند در اینجا کمک کند.

    نمایشگرهای مهم: LTV

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

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

    LTV = (تراکنش 1 + تراکنش 2 + تراکنش 3 ... + تراکنش N) x سهم درآمد.

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

    روش های دیگر را می توان در یافت.

    شاخص های مهم: رابطه CAC و LTV

    برای درک دوام تجارت، توجه به نتایج دو شاخص CAC:LTV مهم است.

    • منش نیژ 1:1 - شما با تمام سرعت مسابقه می دهید تا زمانی که ورشکست شوید.
    • 1:1 - شما سکه هایی را خرج یک مشتری پوست می کنید.
    • 1:2 - بد است، اما به نظر می رسد که شما پول کافی سرمایه گذاری نمی کنید، اما می توانستید سریعتر پیشرفت کنید. با به دست آوردن مشتریان کمپین های تهاجمی تر راه اندازی کنید و تا 1:3 به شاخص های عزیزان خود برسید.
    • 1:3 - رابطه ایده آل. شما یک تجارت پر رونق و یک مدل تجاری عالی دارید.

    شاخص های مهم: ROI فراموش نشدنی است

    همانطور که در بالا آموختیم، در تجارت الکترونیک لازم است به وضوح درک کنیم که انتخاب کانال درآمد مهم است. LTV و CAC یکی دیگر از شاخص های مهم از جمله ROI هستند. این نشان می دهد که سرمایه گذاری شما در تلاش ما برای تبلیغات نتیجه داده است. توبتو. کربووانتس چند سرمایه گذاری برای ما به ارمغان آورد؟

    برای توسعه یک vikorist، فرمول بسیار دست و پا گیر است:

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

    با در نظر گرفتن این موضوع، فرمول به شکل زیر گسترش می یابد:

    ROI = (درآمد کانال - Sobivartist) - هزینه های تبلیغات / هزینه های تبلیغات x 100٪

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

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

    جای دادن همه چیز در یک مطلب غیرممکن است، اما خواندن چه کسی اینقدر طول می کشد؟ بعداً من یک راهنمای جامع در مورد تفاوت های ظریف تجارت الکترونیک ایجاد خواهم کرد که می تواند بر فروش تأثیر بگذارد.

    با یکدیگر

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

    بنابراین، بدون فراموش کردن، به شما خوانندگان عزیز خوش آمدید! برایت آرزوی موفقیت دارم، آن جانور بر تو غلبه کرد!

    فصل شماره 9.

    برنامه نویسی با CGI اضافی

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

    این بخش عمدتاً برای کسانی در نظر گرفته شده است که پایگاه‌های اطلاعاتی را استخراج می‌کنند و از اضافه کردن دانش به نرم‌افزار خود برای وب اهمیتی ندارند. اگر نام مستعار شما Berners-Lee یا Andreessen است، بعید است کسی را در اینجا پیدا کنید که قبلاً نمی‌شناسید. با این حال، از آنجایی که شما با CGI جدید نیستید، کشف در دستان یک راهنمای کوتاه در طول ساعتی که در اسرار MySQL و mSQL قفل شده‌اید می‌تواند حتی بدتر باشد.

    CGI چیست؟

    مانند بسیاری از کلمات اختصاری، Common Gateway Interface (CGI) در اصل حرف زیادی برای گفتن ندارد. رابط کاربری چگونه است؟ این دروازه کجاست؟ قدرت زبان در چیست؟ برای تایید این غذا، اجازه دهید کمی به عقب برگردیم و به WWW نگاه کنیم.

    تیم برنرز لی، فیزیکدانی که در CERN کار می کرد، وب را در دهه 1990 کشف کرد، اگرچه این طرح در سال 1988 راه اندازی شد. ایده این بود که به محققان در فیزیک ذرات بنیادی امکان تبادل آسان و سریع با چند رسانه ای را بدهد. داده ها - متن، تصاویر و صدا - از طریق اینترنت. WWW از سه بخش اصلی تشکیل شده بود: HTML، URL و HTTP. HTML -قالب جدیدی که برای ارائه در وب در حال توسعه است. URL -اینها آدرس هایی هستند که برای استخراج فرمت HTML (یا هر چیز دیگری) از وب سرور استفاده می شوند. استراحت، HTTP -این بدان معنی است که با وب سرور ارتباط برقرار می کند و به مشتریان اجازه می دهد اسناد را از سرور بازیابی کنند.

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

    CGI مجموعه ای از قوانین است که برنامه های روی سرور می توانند داده ها را از طریق وب سرور به مشتریان ارسال کنند. مشخصات CGI با تغییراتی در HTML و HTTP همراه بود که مشخصه جدیدی به نام فرم ها را معرفی کرد.

    از آنجایی که CGI به برنامه‌ها اجازه می‌دهد تا داده‌ها را به یک کلاینت بفرستند، این قابلیت را گسترش می‌دهد که به مشتری اجازه می‌دهد داده‌ها را به یک برنامه CGI ارسال کند. اکنون koristuvach نه تنها می تواند ساعت دقیق را تماشا کند، بلکه تاریخ را نیز تعیین می کند! فرم های CGI درهایی را برای تعامل مفید در وب ایجاد کرده اند. برنامه های توسعه یافته CGI عبارتند از:

    • HTML پویا کل سایت ها را می توان با یک برنامه CGI تولید کرد.
    • مکانیسم های جستجو برای یافتن اسناد با استفاده از کلمات داده شده.
    • کتاب‌های مهمان و دختران شگفت‌زده هستند که چه نوع کوریستوواچ می‌تواند اطلاعات اضافه کند.
    • فرم های سفارش
    • پرسشنامه.
    • دریافت اطلاعات از سرور پایگاه داده

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

    HTML را تشکیل دهید

    اول از همه، بیایید نگاهی به رایج ترین روش ایجاد رابط برای برنامه های CGI بیندازیم: فرم های HTML. این فرم تا حدی یک زبان HTML است که فیلدهایی از انواع مختلف را در اختیار کاربر نهایی قرار می دهد. داده های وارد شده در فیلدها ممکن است به وب سرور ارسال شود. از فیلدها می توان برای وارد کردن متن یا دکمه ها استفاده کرد که می توان آنها را فشار داد یا با علامت تیک علامت گذاری کرد. HTML سمت لبه محور برای قرار دادن فرم:

    <НТМL><НЕАD><ТITLЕ>صفحه من با فرم ها


    <р>همه چیز در مورد فرم است.


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



    این فرم یک ردیف تا 40 کاراکتر ایجاد می کند که کاربر می تواند نام ها را وارد کند. یک دکمه در زیر ردیف ورودی وجود دارد؛ هنگامی که تایپ می شود، هر گونه اطلاعات فرم به سرور ارسال می شود. برچسب‌های پایین‌تر برای پشتیبانی از HTML 3.2 - گسترده‌ترین استاندارد در حال حاضر، اصلاح شده‌اند. نام تگ ها و ویژگی ها را می توان در هر رجیستر وارد کرد، اما هیچ محدودیتی وجود ندارد، بنابراین برچسب هایی که باز می شوند با حروف بزرگ نوشته می شوند و برچسب های بسته با حروف کوچک نوشته می شوند.


    این تگ به cob فرم اشاره دارد. برای مثال، در انتهای فرم باید تگ را ببندید

    . بین تگ ها
    سه ویژگی مجاز است: ACTION URL یا مسیر برنامه های CGI را مشخص می کند که داده ها را ارسال می کند. METHOD روش HTTP را مشخص می کند که فرم برای آن ارسال می شود (این می تواند GET یا POST باشد، در غیر این صورت در آینده از POST استفاده خواهیم کرد). ENCTYPE روش رمزگذاری داده ها را نشان می دهد (این فقط در صورتی باید استفاده شود که درک روشنی از آنچه روی آن کار می کنید داشته باشید).


    این کارآمدترین راه برای کاربر برای وارد کردن داده است. در واقع 9 نوع تگ مختلف وجود دارد . نوع با ویژگی TYPE نشان داده می شود. قنداق جلو دارای دو تگ است : یکی از نوع SUBMIT و دیگری از نوع TEXT. این نه نوع عبارتند از:

    TEXT

    فیلد برای وارد کردن یک ردیف متن.

    کلمه عبور

    مانند TEXT، اما متنی که وارد می کنید روی صفحه نمایش داده نمی شود.

    چک باکس

    Praporets، چنین koristuvach می تواند نصب و تخفیف.

    رادیو

    یک دکمه رادیویی که می تواند با یک دکمه رادیویی ترکیب شود. Koristuvach می تواند فقط یکی را ارتعاش کند.

    ارسال

    دکمه ای که با کلیک روی آن به سرور وب فشار داده می شود.

    تنظیم مجدد

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

    فایل

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

    پنهان

    یک فیلد نامرئی که می توان داده ها را در آن ذخیره کرد.

    تصویر

    مشابه دکمه SUBMIT است، اما می توانید یک تصویر را نیز روی دکمه تنظیم کنید.

    اطراف برچسب های TYPE مشخصه ویژگی NAME را انتخاب کنید، که داده های وارد شده در فیلد داده را با نام های داده شده مرتبط می کند. نام‌ها و داده‌ها با مقدار سبک = مقدار به سرور منتقل می‌شوند. در مثال قبلی، فیلد متن firstname نام داشت. می‌توانید ویژگی VALUE را تغییر دهید تا مقادیری را به فیلدهایی از نوع TEXT، PASSWORD، FILE و HIDDEN اختصاص دهید. این ویژگی که با دکمه هایی مانند SUBMIT یا RESET استفاده می شود، متن کار را روی آنها نمایش می دهد. فیلدهایی از نوع RADIO و CHECKBOX را می توان به گونه ای نمایش داد که گویی در پشت ویژگی اضافی CHECKED بدون مقدار قرار گرفته اند.

    ویژگی SIZE برای تعیین بیش از یک فیلد از نوع TEXT، PASSWORD و FILE استفاده می شود. از ویژگی MAXLENGTH می توان برای محدود کردن متن وارد شده استفاده کرد. ویژگی SRC نشانی اینترنتی تصویر را که باید در نوع IMAGE انتخاب شود را مشخص می کند. در صورت یافتن، ویژگی ALIGN ماهیت تراز تصویر از نوع IMAGE را مشخص می کند و می تواند روی مقادیر TOP، MIDDLE، BOTTOM، LEFT یا RIGHT تنظیم شود.

    .

    یا تگ کنم ، با برچسب و هر متنی که بین تگ ها ظاهر شود به عنوان متن تبلیغاتی پذیرفته می شود ، شبیه به ویژگی VALUE برای یک برچسب . برای برچسب زدن

    ، که مکانی را برای معرفی نقاشی فراهم می کند. این به دلیل نام "مقاله" است. بلوک متن 70 کاراکتر عرض و 10 ردیف عمق دارد. فاصله بین تگ ها

    شما می توانید برای قرعه کشی zrazka vicoristuvati. -->

    انواع "SUBMIT" و "RESET" واضح هستند. دکمه "SUBMIT" ممکن است "Enter data" را دوباره اختصاص دهد و دکمه "RESET" ممکن است تنظیمات را نشان دهد (که توسط مرورگر نشان داده شده است). با کلیک بر روی دکمه "SUBMIT" داده ها را به وب سرور ارسال می کنید، دکمه "RESET" با مشاهده تمام داده های وارد شده، داده ها را به صفحه خروجی به روز می کند. -->


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

    هنگامی که اصول اولیه فرم های HTML را بدانید، می توانید فرم های CGI را چاپ کنید.

    مشخصات CGI

    بنابراین، دقیقاً «مجموعه قوانین» چیست که به برنامه‌های CGI، مثلاً در Batavia، Illinois اجازه می‌دهد تا با یک مرورگر وب در مغولستان خارجی ارتباط برقرار کنند؟ مشخصات رسمی CGI به همراه سایر اطلاعات در مورد CGI را می‌توانید در سرور NCSA در آدرس دریافت کنید http://hoohoo . ncsa.uluc.edu/cgi/.اما این قسمت برای این منظور است که شانس افزایش قیمت و شوخی با آن را نداشته باشید.

    در اینجا روش هایی وجود دارد که CGI داده ها را بین فریم CGI-npor و وب سرور و سپس سرویس گیرنده وب منتقل می کند:

    • تیزی جدی
    • خط فرمان.
    • دستگاه تزریق استاندارد
    • دستگاه نمایشگر استاندارد

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

    این داده ها بر اساس سرور HTTP آپاچی ارائه شده است. آپاچی پیشرفته ترین وب سروری است که عملا بر روی هر پلتفرمی از جمله ویندوز 9x و ویندوز NT اجرا می شود. با این حال، آنها ممکن است از تمام سرورهای HTTP که از CGI پشتیبانی می کنند مسدود شوند. برخی از سرورهای اختصاصی، مانند مایکروسافت و نت اسکیپ، ممکن است عملکردهای اضافی را ارائه دهند یا عملکرد متفاوتی داشته باشند. چهره وب با سرعتی سریع در حال تغییر است، استانداردها هنوز در حال تغییر هستند و بدون شک تغییراتی در آینده وجود خواهد داشت. با این حال، در حالی که CGI یک نگرانی است، این فناوری خسته به نظر می رسد - هزینه ای که باید پرداخت کرد این است که فناوری های دیگر، مانند اپلت ها، جایگزین آن شده اند. تمام برنامه های CGI که ​​می نویسید، vikorist و این اطلاعات به راحتی می توانند روی اکثر وب سرورها اجرا شوند.

    هنگامی که یک برنامه CGI روی یک فرم اضافی کلیک می کند - گسترده ترین رابط، مرورگر یک ردیف طولانی برای سرور ارسال می کند که در ابتدای آن مسیرهایی به برنامه های CGI و نام آنها وجود دارد. سپس داده های مختلف دیگری که اطلاعات مسیر نامیده می شوند دنبال می شوند و از طریق تغییر PATH_INFO به برنامه CGI منتقل می شوند (شکل 9-1). اطلاعات با یک کاراکتر "؟" دنبال می شود و به دنبال آن داده های فرمی که با استفاده از روش HTTP GET به سرور ارسال می شود. این داده ها از طریق اصلاح QUERY_STRING در دسترس برنامه های CGI قرار می گیرند. هر داده ای که سایت با استفاده از روش HTTP POST که بیشتر مورد استفاده قرار می گیرد، از طریق یک دستگاه ورودی استاندارد به برنامه CGI منتقل می شود. یک ردیف معمولی که می تواند از یک سرور در یک مرورگر مشاهده شود در شکل نشان داده شده است. 9-1. برنامه برای اجاره پیشخواندر کاتالوز cgi-binبرای اطلاعات بیشتر با سرور تماس بگیرید اضافی/اطلاعاتو با این داده ها گزینه=help را وارد می کنم - شاید به عنوان بخشی از URL خروجی. داده های خود فرم (متن برنامه نویسی CGI در قسمت کلمات کلیدی) از طریق روش HTTP POST ارسال می شود.

    تیزی جدی

    هنگامی که سرور یک برنامه CGI را تبدیل می کند، داده ها را به آن منتقل می کند تا زمانی که کار تغییر کند. مشخصات رسماً دارای هفده تغییر است، اما به طور غیررسمی تغییرات بیشتری وجود دارد - برای مکانیزم اضافی، که در زیر توضیح داده شده است، به نام HTTP_/nec/zams/n. برنامه CGI

    دسترسی به این تغییرات مانند هر تغییری در وسط پردازشگر فرمان هنگام راه اندازی از خط فرمان وجود دارد. برای مثال، در یک اسکریپت پردازشگر فرمان، مقدار قابل تغییر F00 را می توان روی F00$ تنظیم کرد. Perl شبیه به $ENV("F00") است. در C - getenv ("F00")؛ جدول 9-1 تغییراتی را لغو کرده است که همیشه توسط سرور نصب می شوند - حتی اگر مقادیر تهی باشند. علاوه بر این داده‌های قابل تغییر که توسط کلاینت در هدر درخواست بازگردانده می‌شود، فرم قابل تغییر HTTP_F00 به آن داده می‌شود که در آن F00 نام هدر است. به عنوان مثال، بیشتر مرورگرهای وب اطلاعات نسخه را در سربرگ USEfl_AGENT قرار می دهند. فریم CGI شما می‌تواند این داده‌ها را از تغییر HTTP_USER_AGENT بازیابی کند.

    جدول 9-1.CGI فوق العاده تیز

    Zminne otochennya

    شرح

    CONTENT_LENGTH

    Dovzhina داده ها با استفاده از روش های POST و PUT در بایت منتقل می شود.

    نوع محتوا

    نوع MIME داده های پذیرفته شده با روش های POST یا PUT.

    GATEWAY_INTERFACE

    شماره نسخه مشخصات CGI که ​​سرور پشتیبانی می کند.

    PATH_INFO

    اطلاعات تکمیلی در مورد مسیرها توسط مشتری ارائه شد. مثلا بپرسم http://www.myserver.eom/test.cgi/this/is/a/ path?field=greenمقادیر تغییر PATH_ INFO خواهد بود /this/is/a/ مسیر.

    PATH_TRANSLATED

    مانند PATH_INFO ، اما سرور همه چیز را ویبره می کند


    برای مثال می توان پسوندهای نامی مانند "-account" را ترجمه کرد. »

    QUERY_STRING

    همه داده ها، چه چیزی باید از نماد "؟" پیروی کرد. در URL این همان داده‌ای است که وقتی فرم REQ-UEST_METHOD GET باشد منتقل می‌شود.

    REMOTE_ADDR

    آدرس های IP مشتری برای درخواست.

    میزبان راه دور

    نام گره ماشین مشتری، همانطور که هست.

    REMOTE_IDENT

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

    REQUEST_METHOD

    روشی که مشتری برای درخواست درخواست استفاده می کند. برای برنامه های CGI که ​​می خواهیم بسازیم، POST یا GET خواهد بود.

    نام ارائهکننده نام میزبان - یا آدرس IP، اگر نام در دسترس نباشد - دستگاهی که وب سرور به آن متصل است.
    SERVER_PORT شماره پورت استفاده شده توسط وب سرور.
    SERVER_PROTOCOL
    پروتکلی که کلاینت Vikorist برای برقراری ارتباط با سرور استفاده می کند. در نسخه ما، این پروتکل در درجه اول HTTP است.
    SERVER_SOFTWARE اطلاعات مربوط به نسخه وب سروری که برنامه CGI روی آن نصب شده است.

    SCRIPT_NAME

    اسکریپت و دستورالعمل های مشتری را دنبال کنید. می‌توانید هنگام ارسال یک URL برای خودتان مراقب باشید و اسکریپت‌هایی که برای نمایش در مکان‌های مختلف ارسال می‌شوند، در یک مکان متفاوت باشند.

    بیایید یک اسکریپت CGI را در Perl اجرا کنیم که تمام تغییرات ایجاد شده توسط سرور را چاپ می‌کند و تمام تغییراتی مانند PATH را که توسط پردازشگر دستوری که سرور را اجرا می‌کند، برمی‌گرداند.

    #!/usr/bin/perl -w

    چاپ<< HTML;

    نوع محتوا: text/html\n\n

    <р>تیزی جدی

    HTML

    foreach (کلیدهای %ENV) ( چاپ "$_: $ENV($_)
    \n";)

    چاپ<

    HTML

    همه قیمت ها ممکن است توسط برنامه CGI شما تغییر کند. با این حال، این تغییرات بر وب سروری که برنامه را اجرا می کند تأثیر نمی گذارد.

    خط فرمان

    CGI اجازه می دهد تا آرگومان ها به عنوان پارامترهای خط فرمان به برنامه CGI ارسال شوند که به ندرت مورد استفاده قرار می گیرند. به ندرت تشخیص داده می شود که مشکلات عملی بیشمار است و ما به تفصیل در مورد آنها صحبت نمی کنیم. نکته اصلی این است که اگر وضوح QUERY_STRING را طوری تغییر دهید که با نماد = تداخل نداشته باشد، برنامه CGI با پارامترهای خط فرمان گرفته شده از QUERY_STRING مطابقت خواهد داشت. مثلا، http://www.myserver.com/cgi- bin/finger?rootریشه انگشت را اجرا کنید www.myserver.com.

    دو کتابخانه اصلی برای ارائه یک رابط CGI برای Perl وجود دارد. پرشا از آنها - cgi-lib.plسودمند cgi-lib.plاین کتابخانه بسیار گسترش یافته است و در سه ساعت گذشته به یک کتابخانه بزرگ بدل شده است. این برای استفاده در Perl 4 در نظر گرفته شده است، اما با Perl 5 نیز کار می کند. CGI.pm،جدید و تغییرات زیاد cgi-lib.pl. CGI.pmبرای Perl 5 و یک طرح کاملا شی گرا برای کار با داده های CGI نوشته شده است. مدول CGI.pmدستگاه ورودی استاندارد را تجزیه می کند و QUERY_STRING را تغییر می دهد و داده ها را در یک شی CGI ذخیره می کند. برنامه شما باید یک شی CGI جدید ایجاد کند و از روش های ساده ای مانند paramQ برای به دست آوردن داده های مورد نیاز خود استفاده کند. شکل 9-2 نمایش کوتاهی از چگونگی است CGI.pmداده ها را تفسیر می کند. تمامی برنامه های پرل در این بخش ویکوری خواهند بود CGI.PM.

    سهام 9-2. تجزیه اطلاعات CGI در پرل

    #!/usr/bin/perl -w

    استفاده از CGI qw(:standard);

    # ماژول CGI.pm در حال ویکیپدیت است. واردات qw(:استاندارد).

    # فضای نام برای توابع استاندارد CGI برای جلوگیری از

    # کد هوشمندتر بسته به سناریو می توانید کار کنید

    # فقط یک شی CGI در حال ویکوریزه شدن است.

    $mycgi = CGI جدید; یک شی CGI ایجاد کنید که یک "دروازه" به داده ها باشد

    @fields = $mycgi->param; # نام تمام فیلدهای فرم تکمیل شده را حذف کنید

    هدر چاپ، start_html("تست CGI.pm"); ft روش "header" و "start_html"،

    # نادانی

    # CGI.pm، رندر HTML را آسان تر کنید.

    # "header" هدر HTTP مورد نیاز را چاپ کنید، a

    #"start_html" هدر HTML را با نام داده شده نمایش می دهد،

    #a همچنین تگ کنید .

    چاپ "<р>فرم داده:
    ";

    foreach (@fields) ( چاپ $_، ":"- $mycgi->param($_)، "
    "; }

    # برای قسمت پوسته، نام و مقداری را که برای راهنمایی حذف شده است وارد کنید

    # $mycgi->param("fieldname").

    print end_html; # میانبر برای نمایش تگ های پایانی "".

    پردازش داده های ورودی C

    در حالی که API های اصلی برای MySQL و mSQL به زبان C نوشته شده اند، ما به طور کامل تحت تأثیر C بر روی هسته Perl نخواهیم بود، اما در واقع در آنجا تعدادی برنامه کاربردی را به C معرفی خواهیم کرد. سه کتابخانه C پرکاربرد وجود دارد. برای برنامه نویسی CGI: cgicتام بوتل *; cgihtmlیوجین کیم تی libcgi Vіd EIT*. ما از آن قدردانی می کنیم cgicاین کامل ترین و ساده ترین در ویکورستان است. با این حال، اگر بوی تعفن از دور برای شما قابل مشاهده نباشد، او هیچ امکانی ندارد که تمام اشکال قابل تغییر را بیش از حد خسته کند. در واقع می توان آن را به یک پچ ساده اضافه کرد، اما این از محدوده این بخش خارج نمی شود. تام در پیوست 9-3 ما یک کتابخانه vikoryst داریم cgihtml،برای تکرار اسکریپت پرل بالا در دستورالعمل.

    سهام 9-3.تجزیه داده های CGI در C

    /* cgihtmltest.c - برنامه CGI معمولی برای نمایش کلیدها و مقادیر آنها

    از داده های گرفته شده از فرم */

    #عبارتند از

    #include "cgi-lib.h" /* همه توابع مهم CGI در اینجا قرار دارند */

    #include "html-lib.h" /* در اینجا می توانید تمام توابع اضافی برای HTML را پیدا کنید */

    void print_all (لیست 1)

    /* این توابع داده های ارسال شده توسط فرم را با فرمت مشابه با شناور در اسکریپت پرل خروجی می دهند. Cgihtml یک تابع داخلی نیز ارائه می دهد

    Print_entries()، به منظور جلوگیری از فرمت مشابه با لیست HTML. */(

    گره*پنجره؛

    /* نوع "node" مقادیر موجود در کتابخانه cgihtml به لیست مرتبط اعمال می شود که تمام داده های فرم را ذخیره می کند. */

    پنجره = I.head; /* نشانگر را در داده های فرم درج می کند */

    while (window != NULL) ( /* از طریق لیست پیوند شده به عنصر باقی مانده (اولین خالی) بروید */

    printf(" %s:%s
    \n",window->entry. name,replace_ltgt(window->entry.value));

    /* داده ها را وارد کنید. Replace__ltgt() تابعی است که رمزگذاری HTML متن را درک می کند و خروجی صحیح آن را به مرورگر مشتری تضمین می کند. */

    window = window->next; /* به لیست آینده بروید. */

    } }

    int main() (

    ورودی های لیست؛ /* نشانگر داده های تحلیل شده*/

    وضعیت int; /* عدد صحیح، که وضعیت */

    Html__header(); /* تابع HTML اضافی برای نمایش هدر HTML*/

    Html_begin("تست cgihtml");

    /* یک تابع HTML اضافی که بالای صفحه HTML را از یک هدر تعیین شده نمایش می دهد. */

    status = read_cgi_input(&entries); /* ورودی و تجزیه داده های فرم در حال انجام است*/

    Printf("<р>فرم داده:
    ");

    Print_all(entries); /* تابع print_all() را فراخوانی می کند. */

    html_end(); /* تابع HTML اضافی برای نمایش انتهای صفحه HTML. */

    List_clear(&entries); /* حافظه اشغال شده توسط داده های فرم را بازیابی می کند. */

    بازگشت 0; )

    خروجی دستگاه استاندارد

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

    لطفا به من بگویید که شما ویکوریست نیستید nph-سناریو، سرور باید یک دستور بدهد تا کاربر را در مورد دیدگاه شما مطلع کند. این شامل سرصفحه HTTP نوع محتوا و احتمالاً سرصفحه مکان است. هدر با یک ردیف خالی دنبال می شود، یا یک انتقال ردیف یا یک ترکیب CR/LF.

    هدر Content-Type به سرور می گوید که برنامه CGI شما چه نوع داده هایی را می بیند. از آنجایی که این یک سمت HTML است، ردیف حاوی Content-Type است: متن/html.هدر Location به سرور می‌گوید یک URL متفاوت - آدرسی که در همان سرور است - مشتری را به کجا هدایت کند. عنوان مقصر این نگاه است: مکان: http:// www. سرور من com/دیگر/مکان/.

    بعد از سرصفحه های HTTP و ردیف خالی، می توانید داده هایی را که برای برنامه شما قابل مشاهده است - صفحه HTML، تصاویر، متن یا هر چیز دیگری افزایش دهید. از جمله برنامه های CGI که ​​از سرور آپاچی می آیند، وجود دارد nph-test-cgiі test-cgiواضح است که چگونه می توان تفاوت بین عنوان ها را در سبک های nph و non-nph بهتر نشان داد.

    از چه کسی کتابخانه ها را به اشتراک خواهیم گذاشت؟ CGI.pmі cgic،برخی از آنها عملکردهایی برای نمایش هدرها در HTTP و HTML دارند. می‌خواهم به شما اجازه دهم روی فضای نشان‌داده شده تمرکز کنید. این توابع اضافی در برنامه‌هایی که قبلاً در این بخش ارائه شده‌اند در دسترس هستند.

    ویژگی های مهم اسکریپت های CGI

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

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

    به خاطر خواهم آورد

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

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

    برخی از مشتریان با ظهور Netscape Navigator راه حلی را ارائه کرده اند که به نظر می رسد یک راه حل عجولانه تحت نام کوکی ها باشد. این شامل ایجاد یک هدر HTTP جدید است که می تواند بین مشتری و سرور ارسال شود، شبیه به هدرهای Content-Type و Location. مرورگر مشتری، با رد کردن هدر کوکی، مسئول ذخیره داده ها در کوکی و همچنین نام دامنه ای است که کوکی در آن قرار دارد. بنابراین، هنگامی که یک URL در دامنه مشخص شده وارد می شود، هدر کوکی باید به سرور برگردانده شود تا در برنامه های CGI در آن سرور استفاده شود.

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

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

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

    به منظور حفظ ظاهر koristuvach و صرفه جویی ناچیز اطلاعات در مورد او، می توانید از حافظه باریک استفاده کنید، چیزی که دستگاه های صوتی محبوب ارائه می دهند. هنگامی که با استفاده از سرویس هایی مانند AltaVista یا Yahoo جستجو می کنید، نتایج قابل توجهی بیشتر از آنچه در یک نمای دستی قابل خواندن نمایش داده می شود، دریافت خواهید کرد. این مشکل از این واقعیت ناشی می شود که فقط تعداد کمی از نتایج نمایش داده می شود - شمارش 10 یا 20 - و امکان حرکت برای بررسی گروه فعلی نتایج وجود دارد. اگرچه چنین رفتاری برای یک مرورگر وب معمولی آشنا و آشنا به نظر می رسد، اجرای موثر آن بی اهمیت است و نیاز به حفظ کردن دارد.

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

    سهام 9-4. من پول را در اسکریپت CGI پس انداز خواهم کرد

    #!/usr/bin/perl -w

    استفاده از CGI؛

    Open(F,"/usr/dict/words") یا die("من نمی توانم آن را باز کنم! $!");

    #این همان فایلی است که وجود دارد، هر چه که باشد.

    $output = CGI جدید.

    sub print_range (# این تابع اصلی برنامه my $start = shift است.

    # فایل ردیف Cob، من $count = 0;

    # Vkazivnik, my $line = "";

    # فایل را ساده کنید، $output->header را چاپ کنید،

    $output->start_html("فرهنگ لغت من");

    # ایجاد HTML با عنوان "دیکشنری من"، چاپ " \n"؛

    در حالی که (($count< $start) and ($line = )) ($count++;)

    # از تمام ردیف‌های قبل از cob بگذرید، در حالی که (($count< $start+10) and ($line ? )) ($line را چاپ کنید؛ $count++؛ )

    # 10 ردیف دیگر اضافه کنید.

    my $newext = $start+10; my $newprev = $start-10;

    # ردیف‌های cob را برای URL "بعدی" و "قبلی" تنظیم کنید،

    چاپ "

    ";

    مگر اینکه ($start == 0) (# URL "قبلی" را درج کنید، فقط در مورد شما

    # دیگر روی بلال نیست.

    چاپ qq%قبلی%; )

    مگر اینکه (eof) (# اگر شما # URL "بعدی" را وارد کنید نه در انتهای فایل

    چاپ qq%% بعدی;

    }

    چاپ "HTML;HTML

    خروج (0); )

    # از آنجایی که هیچ داده ای وجود ندارد، اکنون شروع کنید،

    if (نه $output->param) (

    &print_range(0); )

    # حالا روال سفارش شده از آنها را شروع کنید.

    &print_range($output->param("start"));

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

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

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

    علاوه بر این، او حتی بچه های بیشتری را دور می اندازد. فایلی که در برنامه ما استفاده شد /usr/diet/wordsواقعا عالیه. اگر در اواسط مطالعه ترک کنیم، اما بخواهیم به عقب برگردیم، چه می شود؟ از آنجایی که نمی توانید URL صفحه اصلی را به خاطر بسپارید، راهی برای بازگشت وجود ندارد، اما AltaVista اجازه نمی دهد. اگر رایانه خود را مجدداً راه اندازی کنید یا شروع به استفاده از یکی دیگر کنید، بازگشت به نتایج جستجوی قبلی بدون وارد کردن مجدد عبارت غیرممکن خواهد بود. با این حال، همانطور که مدت زیادی است در مورد آن صحبت می کنیم، حافظه اساس شخصی سازی وب سایت ها شده است و شگفت انگیز است که چقدر سریع می توانید به آن دست پیدا کنید. سهام 9-5 نسخه اصلاح شده سهام 9-4 است.

    سهام 9-5. من شروع به یادآوری خواهم کرد

    #!/usr/bin/perl -w

    استفاده از CGI؛

    umask 0;

    Open(F,"/usr/dict/words") یا die("من نمی توانم آن را باز کنم! $!");

    Chdir("users") or die("من نمی توانم به دایرکتوری $ بروم!");

    # این کاتالوگ است که تمام داده ها در آن ذخیره می شوند

    # درباره koristuvach.

    خروجی = CGI جدید.

    if (not$output->param) (

    چاپ $output->header،

    $output->start_html("فرهنگ لغت من");

    چاپ "HTML;


    <р>نام حسابدار خود را وارد کنید:


    HTML

    خروج (0); )

    $user = $output->param("username");

    ## اگر فایل موجود نیست، آن را ایجاد و نصب کنید

    ## مقدار بلال "0"،

    if (نه -e "$user") (

    open (U, ">$user") یا die("من نمی توانم آن را باز کنم! $!");

    چاپ U "0\n"؛

    بستن U;

    &print_range("0");

    ## به عنوان منبع اطلاعاتی است و در URL نصب نشده است

    ## از معنی شروع کنید، معنی باقیمانده را بخوانید و از آنجا شروع کنید.

    ) elif (نه $output->param("start")) (

    Open(U"Suser") or die("من نمی توانم kristuvach را باز کنم! $!");

    $شروع = ; بستن U;

    chomp $starl;

    محدوده چاپ ($start)؛

    ## نحوه تماس با ما و URL مشخص نشده است

    ## معنی پوچاتکوو معنی پوچاتکوه را بنویس

    ## u file koristuvacha ta pochati visnovok.

    ) دیگر (

    Open(U,">$user") or die ("من نمی توانم حساب را برای یک قرار باز کنم! $!");

    print U $output->param("start"), "\n";

    بستن U;

    &print_range($output->param("start 1)); )

    محدوده چاپ فرعی(

    my $start = shift;

    من $count = 0;

    من $line = " "

    چاپ $output->header،

    $output->start_html("فرهنگ لغت من");

    چاپ "

    \n"؛ 

    در حالی که (($count< $start) and ($line = )) ($count++;)

    در حالی که (($count< $start+10) and ($line = ))

    چاپ $line; $count++;

    my $newext = $start+10;

    my $newprev = $start-10;

    چاپ "

    مگر اینکه (شروع == 0)

    {

    چاپ

    qq%

    قبلی%؛

    }

    مگر اینکه (eof) (چاپ qq% بعدی%;

    # لطفا توجه داشته باشید که نام کاربری "نام کاربری" به URL اضافه شده است.

    # در غیر این صورت، CGI را فراموش کنید، با چنین کوریستوواچ Mav در سمت راست.

    }

    چاپ $output->end_html;

    خروج (0") ;

    }

    با خیال راحت وارد شوید

    هنگام کار با سرورهای اینترنتی، چه سرورهای HTTP یا هر چیز دیگری، حفظ لاگین های امنیتی مهم ترین وظیفه است. تبادل داده بین مشتری و سروری که در چارچوب

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

    #!/usr/bin/perl -w

    استفاده از CGI؛

    من $output = CGI جدید;

    my $username = $output»param("username");

    print $output->header، $output->start_html("خروجی انگشت")،

    "

    "، "finger $username"، "
    "، $output->end_html;

    این برنامه یک رابط کامل CGI را به دستور ارائه می کند انگشت.نحوه اجرای برنامه به سادگی انگشت.cgi،لیستی از تمام مشتریان روی سرور را مشاهده خواهید کرد. چگونه این را اجرا کنیم finger.cgi?username=fred,سپس اطلاعاتی در مورد مشتری "fred" در سرور خواهید دید. شما می توانید آن را به این صورت اجرا کنید انگشت. oo.comبرای نمایش اطلاعات مشتری از راه دور با این حال، چگونه آن را اجرا کنیم؟ finger.cgi?username=fred; ممکن است صحبت های بی ادبانه ای وجود داشته باشد. عملگر stroke بازگشتی """ در پرل یک فرآیند پوسته و یک دستور جدید ایجاد می کند که نتیجه را معکوس می کند. این برنامه دارای " انگشت $username*این یک راه ساده برای تایپ فرمان انگشت و دریافت نتایج آن است. با این حال، اکثر پردازنده های فرمان به شما اجازه می دهند تعدادی از دستورات را در یک ردیف ترکیب کنید. به عنوان مثال، هر پردازنده مشابه پردازنده Bourne از نماد اضافی "; " تام"انگشت فرد؛ پست دوباره دستور را اجرا کنید انگشت، وسپس فرمان پست الکترونیکی چگونه می توان فایل رمز سرور را برای خبرنگار ناشناس ارسال کرد؟

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

    #!/usr/local/bin/perl -w

    استفاده از CGI؛

    من $output = CGI جدید;

    my $username = $output->param("username");

    $|++;

    # بافر را با روش ارسال تمام داده ها به مشتری روشن کنید.

    print $output->header, $putput->start_html("خروجی انگشت")، "

    \n"؛ 

    $pid = open(C_OUT, "-|");# این اصطلاح Perl یک فرآیند فرزند ایجاد می کند و باز می شود

    # کانال بین فرآیندهای پدر و فرزند،

    if ($pid) (# این فرآیند پدر است.

    چاپ ; ft داده های خروجی را در فرآیند فرزند چاپ کنید.

    چاپ "

    "، $output->end_html;

    خروج (O); ft برنامه را تمام کنید. )

    elif ($pid تعریف شده) (# این فرآیند فرزند است.

    $|++; # بافر را خاموش کنید.

    exec("/usr/bin/finger",$username) یا die("exec() فراخوانی انجام نشد.");

    # برنامه انگشت را از Susername به عنوان یک واحد تبدیل می کند
    آرگومان خط فرمان ) else ( die ("در امتحان فورک() ناموفق")؛ )

    # تایید عفو.

    همانطور که می دانید، برنامه خیلی پیچیده نیست. آل چگونه این را اجرا کنیم finger.cgi?username=fred; سپس برنامه انگشت استدلال را دنبال می کند فرد؛ ایمیل به عنوان یک امام کوریستواچ.

    به عنوان یک ورودی امنیتی اضافی، این اسکریپت انگشت را به طور واضح به صورت /usr/bin/finger اجرا می کند. در شرایط کم خطر، اگر وب سرور برنامه CGI شما را از یک مسیر ناشناس عبور دهد، اجرای یک انگشت ساده ممکن است منجر به دسترسی به برنامه اشتباه شود. یک مرحله امنیتی دیگر را می توان با تغییر تنظیمات PATH و تغییر تنظیمات بدست آورد که ممکن است مفیدتر باشد. پاک کردن دایرکتوری فعلی از PATH خوب نیست، زیرا فقط شما آن را وارد کرده اید، در صورتی که واقعاً نیاز به حذف برنامه موجود در آن داشته باشید، اینطور نیست.

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

    محافظت از ربات ak koristuvacha s oszheniyuschih حقوق احتمالات CGI را مورد بازجویی قرار می دهد. از آنجایی که برنامه‌های CGI نیاز به خواندن یا نوشتن فایل‌ها دارند، فقط می‌توانند بدون جدا بودن در آنجا کار کنند. مثلا فایل دیگری برای خاطره یک پزشک پوست نگهداری می شود. برنامه CGI وظیفه دارد اجازه دهد تا خواندن و ضبط فایل از روی فایل ها حذف شود، حتی بدون اشاره به خود فایل ها. شما می توانید این کار را با ایجاد دایرکتوری برای همان کاربر سرور انجام دهید که فقط برای آن کاربر حقوق خواندن و نوشتن داشته باشد. با این حال، برای چنین هکری به عنوان هیچ کس، تنها root دارای قدرت مشابهی است. اگر شما یک فوق حرفه ای نیستید، هنگام ایجاد هرگونه تغییر در CGI باید با مدیر سیستم مشورت کنید.

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

    اگر این اولین آزمایش شما قبل از برنامه نویسی CGI است، توسعه بیشتر را می توان به روش های مختلف ادامه داد. ده ها کتاب در این زمینه نوشته شده است که بسیاری از آنها امکان دانش چندانی از برنامه نویسی را ندارند. "برنامه نویسی CGI در شبکه جهانی وب"انتشارات O"Reilly and Associates مطالب را از سناریوهای ساده و زبان های مختلف گرفته تا ترفندها و ترفندهای مفید را پوشش می دهد. اطلاعات در پشت صحنه موجود است و همچنین برای WWW یک موهبت است. شروع ایده بدی است. CGI واقعا آسان ساخته شده است(در مورد CGI ساده است) در آدرس http://www.jmarshall.com/easy/cgi/ .

    CGI و داده های پایه

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

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

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

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

    همانطور که قبلاً گفته شد، فقط شما می توانید بین پایگاه های داده و وب ارتباط ایجاد کنید. در حال حاضر هزاران پایگاه داده منحصر به فرد و اصلی وجود دارد که می توان از طریق وب به آنها دسترسی داشت. انواع پایگاه های داده ای که بین این برنامه ها کار می کنند حتی متفاوت است. آنها از برنامه های CGI به عنوان رابط برای سرور پایگاه داده مانند MySQL یا mSQL استفاده می کنند. این نوع ها بیشترین علاقه را برای ما دارند. برخی دیگر از برنامه های تجاری برای تعامل با پایگاه های داده دسکتاپ محبوب مانند Microsoft Access و Claris FileMaker Pro استفاده می کنند. برخی دیگر به سادگی با فایل های متنی مسطح کار می کنند که ساده ترین پایگاه داده موجود است.

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

    سمت 1 از 30

    امروزه چنین سخنرانی هایی، مانند کتاب مهمان، جستجو در سرور، فرمی برای ارسال اعلان ها، ویژگی نامرئی تقریباً هر سایت جدی است. مشکل رکود این زنگ ها و سوت ها و سایر زنگ ها، بدیهی است که همگی وب استاد لپه را بیدار می کند و خواب، اشتها و هوس شما را برای آبجو کاهش می دهد. متأسفانه بررسی خروجی HTML سایت های رقبا چیزی جز ارسال پیام به «cgi-bin» ارائه نمی دهد و حتی در گروه های خبری نیز گاهی اوقات یک رمز و راز درباره چیستی cgi-script ها وجود دارد. این مقاله به اصول استفاده از این اسکریپت های CGI برای شکوه و رونق سایت شما اختصاص دارد.

    برای شروع، حدس می‌زنم، درک مفاهیم ضروری است. اسکریپت CGI برنامه ای است که بر روی یک وب سرور برای درخواست مشتری (و سپس ارسال آن به وب سایت) کامپایل می شود. این برنامه، در اصل، به هیچ وجه با برنامه های اصلی نصب شده بر روی رایانه شما - MS Word یا Quake - متفاوت نیست. CGI یک فرآیند برنامه نویسی نیست، مانند نوشتن یک اسکریپت، اما Common Gateway Interface یک رابط ویژه است که به شما امکان می دهد اسکریپت را راه اندازی کنید و با آن تعامل داشته باشید.

    مقدمه کوتاه غزلی با استفاده از CGI

    عزیزم چی شده CGI- فیلمنامه ها و سخنرانی های مشابه شروع به سوختن کردند. دلیلش این است که مرورگر شما (اگر تایپ کرده باشید URL) برای پروتکل ثبت نام کنید HTTPاز سرور تعیین شده و وارد کردن به یک فایل مورد نیاز جدید، تقریباً مانند این:

    دریافت /~paaa/cgi-bin/guestbbok.cgi HTTP/1.0-محور در بالای لیست قرار دارد

    خوب، اگر مثلا یک فایل ساده درخواست کنید .htmlاگر چنین فایلی وجود داشته باشد، سرور پیام زیر را به مرورگر ارسال می کند:

    HTTP/1.0 200 بسیار خوب
    نوع محتوا: متن/html

    بعد از یک ردیف خالی (شما باید آب اضافه کنید سرفصلچشم انداز بدن) اطلاعات از کجا می آید URL"آ ...
    محور اصل و کل WWW....از یک جایی به آن جا می روی.
    چه چیزی را باید وارد این روند تاریک کنید؟ با توجه به مرجعتعاملی تر، پویا، زیباتر و معجزه آسا...؟ تغذیه و تغذیه چیست؟ فقط چی پرسیدی؟ URLوارد یک برنامه خاص ( CGI، برنامه رابط دروازه مشترک - رابط دروازه واحد) و آنهایی که می توانید ببینید و به مرورگر بفرستید .... سرور شروع می شود .cgiبرنامه و مثلاً با جمع‌آوری داده‌ها از فرم، شما را در جایی از پایگاه داده آن وارد کرده و به شما بگوید چه چیزی تو پسر خوبی هستی :)
    خب امیدوارم براتون جذاب باشم......؟

    اطلاعات کوتاه در مورد آنچه که برای نوشتن باید بدانید CGI scripty: خب، اول از همه باید بدانید که چیست اینترنتو چگونه کار می کند (آیا می دانید؟) ;))) ) خوب، فقط کمی آن را برنامه ریزی کنید (مهمتر از همه)
    بیایید با هم یک فیلمنامه ساده بنویسیم و سپس به شما می گویم که سگ کجا دچار مشکل شد.
    خوب، اول از همه، یک دایرکتوری برای فهرست اصلی خود ایجاد کنید cgi-bin:

    سی دی public_html
    mkdir cgi-bin
    chmod 0777 cgi-bin

    ردیف باقی مانده حتی مهم تر خواهد بود.
    ویرایشگر را انتخاب کنید و تایپ کنید: #!/usr/bin/perl
    #first.cgi
    چاپ "Content-Type: text/html\n\n"؛
    چاپ " ";
    چاپ "

    سلام بر شما درود بر شما!

    ";
    چاپ ""؛

    آن را در دایرکتوری ذخیره کنید cgi-binزیر آنها first.cgi.خب چطوری ذخیره کردی؟
    و حالا بیایید با برنامه شروع کنیم:

    chmod +x first.cgi

    خوب، بیایید به لحظه مناسب برسیم .... در ردیف مرورگر تایپ کنید http://www.uic.nnov.ru/~tviy_login/cgi-bin/first.cgi
    و تعجب می کنم که چه اتفاقی خواهد افتاد. یکی از دو وجود خواهد داشت، یا اسکریپت درخواست می‌کند و شما صفحه ایجاد شده توسط آن را مشاهده می‌کنید (شرط می‌بندم که به هنگ ما رسیده است!) یا خطای سرور داخلی- خجالت نکش، درست انجامش ندادی. سپس از کمکی در گرفتن کک بهره مند خواهید شد. خوب، اول از همه، شما می توانید نحو را در اسرع وقت بررسی کنید:

    perl -z first.cgi

    پرل بلافاصله خواهید دید که اطلاعاتی در مورد اصلاحات وجود دارد (خب، اتفاق می افتد، شما نکته را فراموش کرده اید، دست ها یا پاها را فراموش کرده اید...) و می توانید بلافاصله در طول مسیر آن را اصلاح کنید.
    نادیده گرفتن نمایش ردیف خالی، که هدر را از بدنه تقویت می کند، بی ادبانه تر به نظر می رسد:
    چاپ "Content-Type: text/html\n\n"؛ #همه چیز درست است
    چاپ "Content-Type: text/html\n"؛ #رحمت!

    بیایید نگاهی به فیلمنامه بیاندازیم:
    ردیف اول #!/usr/bin/perlاین به سادگی نشان می دهد که در سیستم توسعه Perl قرار دارد. دیگری فقط یک نظر است - می توانید در اسرع وقت پس از علامت کلیک کنید #
    بعد من میرم چاپ "Content-Type: text/html\n\n"؛این هدر نوع را نشان می دهد به جای هر چیزی که اسکریپت در نسخه استاندارد خود STDOUT دارد در حال پردازش به سرور است. ردیف خالی هدر را از بدنه تقویت می کند، مانند مورد ما

    سلام بر شما درود بر شما!



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

    خوب، محور قبلاً مسلط شده است، همه چیز آنقدر مهم و ظالمانه نیست که قبلاً می توانست باشد
    اکنون می توانید نوشتن چنین اسکریپت های ساده ای را برای بهبود مهارت های خود تمرین کنید.

    رابط دروازه مشترک (CGI، روسی: Zagalny Gateway Interface) یک روش استاندارد برای رندرینگ پویا به جای صفحات وب با استفاده از برنامه های ویژه ای است که در سمت سرور وب اجرا می شوند. این برنامه ها پردازنده یا دروازه های CGI یا اغلب اسکریپت های CGI نامیده می شوند، زیرا آنها به زبان های خطی نوشته شده اند، بیشتر به زبان پرل.

    از آنجایی که فرامتن ماهیت خود ثابت است، وب سایت نمی تواند مستقیماً با وب سایت تعامل داشته باشد. قبل از ظهور جاوا اسکریپت، هیچ راه دیگری برای پاسخگویی به اقدامات کاربر وجود نداشت، به جز ارسال ورودی به وب سرور برای پردازش بیشتر. در مورد CGI، این پردازش با استفاده از برنامه‌های اسکریپت خارجی اضافی انجام می‌شود که از طریق استانداردسازی (بخش RFC 3875: CGI نسخه 1.1) رابط - دروازه خارجی اصلاح می‌شوند. یک مدل ساده شده که ربات CGI را نشان می دهد در شکل نشان داده شده است. 1.

    CGI چگونه کار می کند؟

    یک الگوریتم رباتیک پیشرفته تر از طریق CGI را می توان به شکل زیر مشاهده کرد:

    1. مشتری ضمیمه CGI را از URI خود درخواست می کند.
    2. وب سرور درخواست را دریافت و نصب می کند وضوح قابل تغییر، که از طریق آن داده ها و اطلاعات خدمات منتقل می شود.
    3. وب سرور درخواست ها را از طریق جریان ورودی استاندارد (stdin) به ورودی برنامه ای که فراخوانی می شود هدایت می کند.
    4. افزونه CGI تمام عملیات لازم را گردآوری می کند و نتایج را به شکل HTML تشکیل می دهد.
    5. فرمت فرامتن توسط وب سرور از طریق جریان خروجی استاندارد (stdout) ارائه می شود. اعلان‌های مربوط به اصلاحات از طریق stderr ارسال می‌شوند.
    6. وب سرور نتایج را به مشتری منتقل می کند.

    مناطق CGI

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

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

    بررسی UVAGU: CGI برنامه نویسی نیست! این یک پروتکل ساده است که به یک وب سرور اجازه می دهد تا داده ها را از طریق stdin ارسال کرده و آنها را از stdout بخواند. زیرا یک CGI-producer می تواند به عنوان یک برنامه سرور که با جریان های استاندارد ورودی/خروجی کار می کند استفاده شود.

    سلام دنیا!

    نمونه ای از یک اسکریپت ساده CGI در زبان Perl در لیست 1 نشان داده شده است. اگر این کد را در فایلی با نام hello (نام می تواند هر چه باشد، پسوند یکسان است) ذخیره می کنید، فایل را در دایرکتوری سرور cgi قرار دهید. -bin (به طور دقیق تر، اگر یک دایرکتوری وب سرور دارید که برای برنامه های CGI و دستورالعمل ها در پیکربندی وب سرور استفاده می شود) و مجوزهای فایل را روی wikiname (chmod uo+x hello) تنظیم کنید، در این آدرس در دسترس خواهد بود. آدرسی مانند http://servername/ cgi-bin/hello.

    فهرست 1. لبه یک اسکریپت CGI (Perl)

    #!/usr/bin/perl print "Content-type: text/html\n\n"; چاپ< CGI می گوید سلام

    سلام دنیا!

    خروج HTML؛

    در این کد، خط #!/usr/bin/perl مسیر بعدی مفسر پرل را نشان می دهد. ردیف Content-type: text/html\n\n یک هدر http است که به جای آن نوع (mime-type) را مشخص می کند. نماد دو ردیف (\n\n) اجباری است، عنوان ها را به عنوان مجموعه ای از اطلاعات تقویت می کند.

    تیزی جدی

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

    Zminne otochennyaشرح
    نوع محتوا نوع داده ای که به سرور منتقل می شود. Vikorist در صورتی متعهد می شود که کلاینت بر داده ها غلبه کند، برای مثال، یک فایل را رمزگذاری کند.
    CONTENT_LENGTHاندازه به جای آن نوشته خواهد شد. این تغییر برای درخواست های POST محفوظ است.
    HTTP_COOKIEمجموعه «کوکی‌ها» را به‌عنوان جفت «مقدار کلیدی» تبدیل می‌کند.
    HTTP_USER_AGENTاطلاعات در مورد agent koristuvach (مرورگر)
    PATH_INFOراهی به کاتالوگ CGI
    QUERY_STRINGردیف وارد می شود (URL-encoded)، که با استفاده از روش GET منتقل می شود.
    REMOTE_ADDRآدرس های IP مشتری که برای درخواست استفاده می شود.
    میزبان راه دورنام مشتری خارجی (FQDN). (Yaksho є)
    REQUEST_METHODروشی که سوال توسط آن نوشته می شود. اغلب GET یا POST است.
    SCRIPT_FILENAMEبه اسکریپتی که مورد پرسش قرار می گیرد (از سیستم فایل سرور) برگردید.
    SCRIPT_NAMEاسکریپت را نام ببرید
    نام ارائهکنندهنام ارائهکننده
    SERVER_ADDRآدرس های IP سرور
    SERVER_SOFTWAREاطلاعاتی در مورد نرم افزار سرور

    لیست 2 حاوی کد یک برنامه کوچک پرل است که لیستی از تغییرات را نمایش می دهد. نتیجه این کار در شکل نشان داده شده است. 2.

    لیست 2. وضوح جدی

    #!/usr/bin/perl print "Content-type: text/html\n\n"; چاپ " \n \n

    محیط

    \n"؛ foreach (کلیدهای مرتب سازی %ENV) (چاپ " $_: $ENV($_)
    \n"؛ ) چاپ "\n"؛ خروج؛

    انتقال داده: روش GET

    روش GET برای انتقال داده های urlencod شده از طریق یک سری درخواست استفاده می شود. آدرس های منبع درخواستی (اسکریپت CGI) و داده هایی که به آن منتقل می شود با علامت "؟" جلوتر هستند. نمونه ای از این آدرس:

    http://example.com/cgi-bin/script.cgi?key1=value1&key2=value2

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

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

    فهرست 3. فشار دادن داده ها از یک فرم وب با استفاده از روش GET

    یک برنامه نویسی ساده CGI: ارسال داده با استفاده از روش GET نام شما: نام = "کاربر">
    شما اهل کجا هستید؟: نام "از">

    پس از وارد کردن داده ها در فرم لیست 3 و فشار دادن دکمه "ارسال"، ردیفی به شکل زیر تشکیل می شود:

    http://example.com/cgi-bin/ سلام برسان?کاربر=یک متن&از جانب=متن دیگر

    de: sayhello – نام اسکریپت CGI. کاربر و از - نام پارامترها. متن فعالیت و متن دیگر - مقادیر پارامترهای مختلف را وارد کنید.

    لیست 4 دارای یک اسکریپت است که می تواند داده های فرم را برای لیست 3 پردازش کند.

    فهرست 4. فشار دادن داده ها از یک فرم وب با استفاده از روش GET

    #!/usr/bin/perl محلی ($buffer، @pairs، $pair، $name، $value، %FORM)؛ # تجزیه و تحلیل دقیق $ENV("REQUEST_METHOD") =~ tr/a-z/A-Z/; اگر ($ENV(" REQUEST_METHOD") معادل" گرفتن") ($buffer = $ENV(" QUERY_STRING"); ) # ردیف به شرط های کلید/مقدار تقسیم می شود @pairs = split(/&/, $buffer)؛ foreach $pair (@pairs) ( ($name, $value) = split(/=/, $ جفت)، $value =~ tr/+/ /؛ $value =~ s/%(..)/pack("C", hex($1))/به عنوان مثال؛ $FORM($name) = $value؛ ذخیره شده داده ها در آرایه) # Header را می توان ارسال کرد چاپ "نوع محتوا: متن/html\n\n"؛ # فرامتن قابل ارسال است چاپ< CGI می گوید سلام

    سلام، $FORM(کاربر) از $FORM(از)!

    خروج HTML؛

    انتقال داده: روش POST

    به طور کلی مناسب ترین روش برای انتقال به اسکریپت CGI روش POST است. بلوک داده مانند روش GET تشکیل می شود، اما انتقال مستقیم در بدنه درخواست رخ می دهد. داده ها از طریق ورودی استاندارد (stdin) به برنامه های CGI وارد می شوند.

    برای تقویت داده ها با استفاده از این روش، باید از وظایف واضح در توضیحات فرم (action="POST") استفاده کنید.

    برای پردازش داده های ورودی، اسکریپت CGI باید stdin را بخواند و برای پردازش صحیح آن، باید اندازه پیام را با استفاده از تغییر CONTENT_LENGTH بداند. برای نشان دادن این موضوع، بلوک تجزیه و تحلیل را در لیست 4 با جایگزین کردن آن با کد زیر اصلاح می کنیم:

    ... # تجزیه و تحلیل دقت $ENV("REQUEST_METHOD") =~ tr/a-z/A-Z/; اگر ($ENV(" REQUEST_METHOD") معادل" پست")(خواندن( STDIN, $buffer, $ENV(" CONTENT_LENGTH"}); } ...

    پردازش بیشتر پس انداز از پارامترهای $buffer تغییر یافته و مقدار آنها به همان روشی که با روش GET محاسبه می شود.

    مزایای CGI

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

    زیر دستان CGI

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

    یکی دیگر از معایب CGI امنیت کمتر وب سرور در مقایسه با راه حل های دیگر است. پیکربندی نادرست حقوق دسترسی به منابع سرور از برنامه های CGI می تواند نه تنها در دسترس بودن وب سرور، بلکه امنیت اطلاعات را نیز به خطر بیندازد. با این حال، حتی اگر بتوان از فناوری متوسط ​​حتی فراتر از هدف مورد نظر خود به طور بالقوه ناایمن استفاده کرد.

    آدرس کامل این صفحه:

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

    تجارت الکترونیک: چیست؟

    درک ساده‌تر اینگونه به نظر می‌رسد: در تجارت الکترونیکی منظور ما رویکردی جدید برای اداره یک کسب‌وکار است که شامل عملیات سطح پایین، انتقال دیجیتال داده‌ها برای عرضه کالاها و خدمات/شغل‌ها، بنابراین کرم‌ها با کمک اینترنت است.

    به این ترتیب، حتی اگر یک لذت تجاری باشد، زیرا برای اتصال الکترونیکی اضافی لازم است.

    مدار ربات به صورت زیر طراحی شده است:

    • هر وبلاگ نویس یا هر مرجع دیگری در یک سایت اینترنتی قدرتمند) در این سیستم ثبت شده است.
    • من قدرت قدرت را رد خواهم کرد.
    • یک کد ویژه در وب سایت خود قرار می دهد - تبلیغات شریک رسمی منتخب شبکه همکاران تجارت الکترونیک.
    • ردیابی تبدیل وب سایت؛
    • برای هر خرید در وب سایت شما، که به دنبال پست های وابسته است، مقدار زیادی پول به دست می آورد.

    تجارت الکترونیک WP

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

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

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

    2005-2017، HOCHU.UA