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 - گستردهترین استاندارد در حال حاضر، اصلاح شدهاند. نام تگ ها و ویژگی ها را می توان در هر رجیستر وارد کرد، اما هیچ محدودیتی وجود ندارد، بنابراین برچسب هایی که باز می شوند با حروف بزرگ نوشته می شوند و برچسب های بسته با حروف کوچک نوشته می شوند.
تنها نوع ورودی که در اینجا ندیده ایم، نوع 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 با عنوان "دیکشنری من"، چاپ "
در حالی که (($count< $start) and ($line =
# از تمام ردیفهای قبل از cob بگذرید، در حالی که (($count< $start+10) and
($line ?
#
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;