ایران رایانه > برنامه نویسی و پایگاه های داده > برنامه نویسی تحت وب > PHP در قیاس با CGI
هاست
آنتی ویروس

PHP در قیاس با CGI

ارزیابی كاربر: OFFOFFOFFOFFOFF / 0
ضعیف عالی 
نوشته شده توسط فرهاد سخایی

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

PHP یک زبان اسکریپتی سمت سرویس دهنده است . که در میزبانان وبی مانند Apache قرار می گیرد و شما می توانید از آن برای ایجاد صفحات وب خود بصورت پویا (Dynamic) استفاده نمایید . شما می توانید از آن در شرایطی که از یک اسکریت CGI برای رسیدن به هدف خود استفاده می کردید استفاده کنید . برای مثال در فرم FeedBack سایت thefreecountry.com از یک اسکریت PHP برای ایجاد فرم و فرستادن پیامها برای من (نویسنده) استفاده شده است .

1. زبان

اگر شما با زبانهایی مانند C, C++, Perl, Java or JavaScript آَشنا هستید یادگیری PHP به راحتی خوردن یک تکه کیک خواهد بود .در حقیقت شما می توانید تقریبا بلافاصله شروع به نوشتن اسکریپتهای خود با PHP بنمایید .

PHP همانند Perl  از متغیرها بدون نوع داده ای (TypeLess Variables) استفاده می کند، متغیرها در PHP با پیشوند $ شروع می شوند مثلا $whatever متغیر است که می تواند انواع داده ای چون رشته ها ، اعداد و یا هر نوع دیگری که شما بخواهید در خود ذخیره کند . اگر $whatever یک عدد باشد شما می توانید مقدار آنرا به یکی از روشهای زیر افزایش دهید :

$whatever++ ;
or
$whatever += 1 ;
or
$whatever = $whatever + 1 ;



که شما را به یاد C, C++, Perl, Java or JavaScript می اندازد ، متوجه منظور من شدید ؟


2. امکانات درونی

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

برای مثال اگر بخواهید یک email به خودتان از فرمی که در یک صفحه وب قرار دارد بفرستید در Perl باید چیزی شبیه به این بنویسید :

open ( MAIL,"|/usr/sbin/sendmail -t");
print MAIL "To: myself\@mydomain.com\n" ;
print MAIL "From: visitor\@hisdomain.com\n" ;
print MAIL "Subject: Comments from Web Form\n\n" ;
print MAIL $mainmessage ;
close ( MAIL ) ;



در PHP همین کار را می توانید با کد زیر انجام دهید :

mail ( " ", "Comments from Web Form",
$mainmessage, "From: " );



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

یکی دیگر از تسهیلات آن راحتی بررسی داده ها ی ورودی فرمهاست . برای مثال یک فرم با فیلدی شبیه این را در نظر بگیرید :

<input type=text name="dateofbirth">


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



دسترسی به پایگاه داده ها (DataBases) هم به همین سادگی است . در PHP امکاناتی برای دسترسی به MySQL, MSQL, Dbase, Oracle, InterBase در نظر گرفته شده است ، و به همین ترتیب فهرست این توانایی ها  بسیار طولانی خواهد بود . نیاز دارید که پیام خود را به کد در آورید ؟ یک تابع وجود دارد که این کار را برای شما انجام می دهد . بسیار دیگری وجود دارد که برای پرداختن به همه آنها یک کتاب لازم است ، این فقط برای بر انگیختن اشتیاق شما بود.

3. ساختن صفحات وب

بصورت پیش فرض هر آنچه که شما در سند PHP خود تایپ می کنید کلمه به کلمه به مرورگر وب فرستاده می شود . به این ترتیب یک اسکریپت ساده PHP می توند شبیه اسکریت زیر باشد :

<html>
<head><title>My First PHP Script</title></head>
<body>
<h1>My First PHP Script</h1>
<p>
Welcome, Internet user from IP address
<?echo $REMOTE_ADDR?>. Hope you like my first
PHP page.
</body>
</html>



توجه داشته باشید که این کاملا شبیه یک صفحه وب است بجز قسمتی که با <? ... ?> محصور شده که اسکریپت PHP است . در این مورد ما فقط می خواهیم که IP کاربر را بر رو صفحه وب نمایش دهیم ، از این رو از تابع "echo" استفاده کردیم . REMOTE_ADDR  که یک متغیر محیطی سرویس دهنده وب است به صورت اتوماتیک در اسکریپت PHP با متغیری به همین نام قابل دسرسی است.(همانطور که تمام متغیرهای محیطی و ورودیهای فرم قابل دسترسی هستند .)

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

4. اشکال زدایی در PHP در مقایسه با Perl

اگر شما مایل هستید که اسکریپتهای خود را به صورت برخط (online) اشکال زدایی کنید PHP واقعا می درخشد . در حالت عادی به هنگامی که یک اسکریپت CGI به زبان Perl دچار خطا می شود شما یک پیغام خطای رمزی در مرورگر خور دریافت می نمایید : که متشکل از "500 Internal Server Error" می باشد .

رفع خطای بر خط ، هنگامی که در اسکریپ PHP با خطا مواجه می شوید ، یک پیغام خطا که دقیقا به خطهایی که خطا در آنها به وجود آمده اشاره می کند دریافت می نمایید و این پیام به شما در پیدا کردن خطا کمک می کند. ولی به هرحال شما باز هم گاهی اوقات پیامی رمزی مانند "Parser Error" و یا چیزی شبیه به این دریافت می کنید ، بنابراین شما هنوز مجبور هستید که به مغز خود برای حل کردن مشکل فشار بیاورید ولی حداقل شما می دانید که خطا در کجا به وجود آمده است. در اسکریپتهای CGI پرل (Perl) ، "500 Internal Server Error" می تواند دلایل مختلفی مانند : خطای نحوی و یا در مورد ساده ای فراموش کردن اینکه فایل را به صورت اجرایی در آوریم وآنرا به صورت متنی Upload کنیم .

رفع خطای برون خطی ، به هر حال این مورد متفاوت است ، برخی از افراد به مطلب پی برده اند که مفسر Perl پیامهای مفیدتری از مفسر PHP می دهد ، چرا که مفسر PHP به بسیاری از خطاها را با برچسب "Parser Error" اشاره می کند . البته ممکن است که مورد در نسخه های جدیدتر PHP تغییر کند .

5. مشکل PHP چیست ؟

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


الف . تمام میزبانان وب از امکانات PHP پشتیبانی نمی کنند . البته  همه میزبانان وب نیز از CGI پشتیبانی نمی کنند ، ولی تعداد آنهائی که از PHP پشتیبانی می کنند کمتر است .

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

در هر صورت اگر شما از سرورهای تجاری ( غیر مجانی ) استفاده می کنید مشکل کمتری خواهید داشت . به نظر من عده کثیری از فروشندگان سرویس PHP و حتی آنهایی که هم اکنوون این سرویی را ارائه نمی کتتد در آینده نزدیک تصمیم به فراهم آوردن امکان ارائه این سرویس خواهند گرفت .

ب . اشکال زدائی PHP نیز مانند سایر زبانهای اسکریتی دیگر (شامل Perl ) در صورتی که شما نسخه ای از آن را بر روی کامپیوتر خود نصب نکرده باشید بسیار ناراحت کننده خواهد بود . به عبارت دیگر ممکن است که شما مجبور شوید که زمان زیادی Online باشید و به امتحان و رفع خطای اسکریپت خود بپردازید . شما می توانید دستورعمل نصب PHP بر روی Windows را در مقاله من(نویسنده) با عنوان "How to Install PHP on Windows" که در آدرس زیر قرار دارد بیابید :

http://www.thefreecountry.com/articles/installphp.shtml


در ضمن شما می توانید یک Apache web server بر روی کامپیوتر خود داشته باشید که به این ترتیب شما محیطی همانند به سایت واقعی خود و یا حداقل به اندازه کافی شبیه به آن خواهید داشت . شما می توانید مطالبی درباره چگونگی تنظیمات Apache web server ، اگر از Windows استفاده می کنید ، در مقاله دیگر من با عنوان                            "How to Install Your Own Apache Server on Windows 95/98/NT/2000" بخوانید. این مقاله در آدرس زیر قرار دارد :

http://www.thefreecountry.com/articles/apache.shtml



البته اگر که شما یک بسته Linux دارید همه چیز تقریبا آماده است ، فقط کافیست که CD نصب آنرا در درایو قرار دهید و یک سرور به همراه ماژول PHP نصب کنید ، البته اگر قبلا این کار را نکرده باشید .(اکثر بسته های ممتاز Linux به همرا Apache web server و ماژول PHP عرضه می شوند .)

ج. PHP یک زبان برنامه نویسی همه منظوره  مانند Perl , C, C++ و یا Java نیست . با اینکه قابلیتهای بسیاری دارد مخصوص وب طراحی شده و بیشتر برای برآورده کردن نیازهای وب مناسب است . ولی با این وجود من PHP را شایسته تر از این یافتم که از آن فقط در برنامه های وب استفاده کنم .

6. از کجا می توان آن را گرفت ؟

شما می توانید تعدادی از میزبانان وب Unix و بهترین آنها که از PHP پشتیبانی می کنند در فهرستی که در آدرسهای زیر قرار دارد بیابید :

http://thefreecountry.com/ecentricity/bestwebhosts.shtml

http://thefreecountry.com/ecentricity/budgethosting.shtml

تعداد بسیار کمی از میزبانان وبی که بصورت رایگان از PHP پشتیبانی می کنند نیز در فرست دیگری قرار دارد که اگر شما نمی خواهید مبلغی برای میزبانی وب خود بپردازید می توانید به این فهرست  در آدرس زیر رجوع کنید :

http://thefreecountry.com/ecentricity/hosts.html

شما باید تمام مطالب (documentation) PHP را از سایت آن DownLoad کنید . در زمانی که من این مقاله را نوشتم راهنمای قدم به قدمی (tutorial) در این سایت وجود نداشت که اگر در آینده فرصتی باشد یکی از این راهنما ها در سایت TheFreeCountry.com قرار خواهم داد .

آدرس سایت PHP به قرار زیر است :

http://www.php.net

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

بر گرفته از مقاله Christopher Heng
ترجمه و تنظیم : آرش میکائیلی

< قبلی بعدی >

0 نظر

هیچ نظری وجود ندارد. اولین نفر برای نظر دهی به این مقاله باشید!

ارسال یك نظر


هجی كردن هجی كردن

آخرین محصولات

آنتی ویروس + فایروال Emsisoft تک کاربره آنتی ویروس + فایروال Emsisoft تک کاربره
قیمت: 312000 ﷼
آنتی ویروس emsisoft  سه کاربره آنتی ویروس emsisoft سه کاربره
قیمت: 312000 ﷼
آنتی ویروس emsisoft  یک کاربره آنتی ویروس emsisoft یک کاربره
قیمت: 232000 ﷼
E7520 E7520
قیمت: 1 ﷼
E7530 E7530
قیمت: 1 ﷼
محصولات جدید

ورود كاربر





هنوز ثبت نام نكرده اید؟ عضویت در سایت

رأی گیری

آیا مطالب ایران رایانه برای شما مفید هستند؟

نتایج