برنامه نویسی و پایگاه های داده
برنامه نویسی تحت وب
معرفی اجمالی و مروری بر PHP
اخبار
اخبار دنیای رایانه در ایران اخبار دنیای رایانه در جهان اخبار اینترنت در جهان اخبار اینترنت در ایران اخبار امنیت و هك وب سایت های ایرانیمقالات
برنامه نویسی و پایگاه های داده نرم افزارهای تحت وب نرم افزارهای كامپیوتر موتورهای جستجو و بهینه سازی سایت شبكه ، سرور و میزبانی وب سخت افزار و قطعات كامپیوتر گرافیك ، انیمیشن و تدوین وسایل صوتی و تصویری اینترنتورود كاربر
رأی گیری
هیچ رأی گیری موجود نمی باشدلینك های مرتبط
- تویتر مورد علاقه خود را در وبلاگ خود جاسازی کنید!
- انتقال به URL دیگر با استفاده از تگ meta
- ایجاد ناحیه حاوی اسكرول به صورت اتوماتیك با استفاده از CSS
- صفحه اصلی
- مرجع كامل PHP در فرمت PDF
- تغیر چهره گوگل
- مایکروسافت شبکه جهانی تولید ای میل های ناخواسته را می بندد
- هشدارچین به گوگل: قوانین ما را رعایت کن
- دو موسسه آمورشی چینی حملات اینترنتی بر گوگل را رد کردند
- گوگل با 'Buzz' وارد قلمروی فیس بوک و تویتر شد
- گوگل دیگر از اینترنت اکسپلورر ۶ پشتیبانی نمی کند
- چین محدودیتهای اینترنت را بیشتر می کند
- پیشگامان اینترنت: گفت و گو با آینر کواران، از همیاران متعهد و با سابقه دانشنامه ویکیپیدیا
- سیستم مدیریت وبلاگ وردپرس
- سایت بانك سامان هك شد
- لوح الکترونیک آی پد وارد بازار شد
- افزایش تعرفه تلفن ثابت
- فناوری Light Peak اینتل: ۱۰ گیگابیت در ثانیه فقط قدم اول است
- سیستم مدیریت محتوای مامبو
- سیستم مدیریت محتوای جوملا!
- نحوه ارسال مقاله یا خبر به ایران رایانه
- زبان برنامه نویسی سی شارپ (#C)
- مای اس كیو ال (Mysql)
- پی اچ پی بی بی (PHPBB)
- تراوین (Travian)
- آنتی ویروس (ضد ویروس) (Anti Virus)
- سیستم عامل (Operating System)
- عدم ارائه اینترنت پرسرعت از طرف مخابرات یك اشتباه تاریخی بود
- مالتی مدیا (چند رسانه ای)
- نرم افزار سیستمی
- اپن آفیس (Open Office)
- نرم افزار جعبه لایتنر ماندگار
- بازیابی آسان پسوردهای آفیس ، فایل متنی و ....با Passware Kit Enterprise 9.7 Build 1665
- بهینه سازی موتورهای جستجو
- ارتباطات
- بلوتوث (Bluetooth)
- امنیت
- هك
- فیلتر شدن موقت گوگل
- سایت persianscript.ir هك شد
- آموزش نصب و پیاده سازی PHP و MySQL
- كلاسها در PHP
- PHP در قیاس با CGI
- تابع mail در PHP
- وب سایت اصلی دانشگاه آزاد اسلامی هك شد
معرفی اجمالی و مروری بر PHP
PHP كه با نام كامل “PHP : Hypertext Preprocessor “ شناخته می شود ، یك زبان اســكریپت نویسی توكار HTML می باشد . بیشترتركیب ها (syntax) و دسـتورات PHP از زبانهای C ، Java و Perl گرفته شده و قابلیتهای منحصر به فردی به آن اضافه گردیده است . هدف اصلی از این زبان آنسـت كه به توسعه دهندگان وب امكان دهد تا به سرعت ، صفحات پویایی را تولید نمایند.
توجه كنید كه PHP امروزه صرفا یك پیش پرداز ابرمتن نیست . شما می توانید تصاویر ، فایلهای PDF و حتی پویانمایی های ” فلش “ را با اسكریپت های ساده PHP تولید نموده یا بكار گیرید .
PHP چه توانایی هایی دارد ؟
در ساده ترین سطح ، با PHP می توانید تمام كارهایی را كه با سایر برنامه های CGI قابل اجرا هستند ، انجام دهید. مانند گردآوری داده از فــرم های HTML ، تولید صفحات پــویا و یا ارســال ودریافــت
Cookie ها. شاید قوی ترین و مهمترین خاصیت PHP ، پشتیـبانی آن از بسیاری پایگاه داده هاست .
نوشتن یك صفحه مرتبط با پایگاه داده به طرز غیر قابل باوری ، ساده است . هم اكنون این پایگاه داده ها توسط PHP پشتیبانی می شوند.
Adabas D Ingres Oracle(OCI7andOCI8)
dBase InterBase Ovrimos
Empress FrontBase PostgreSQL
FilePro mSQL Solid
Hyperwave DirectMS-SQL Sybase
IBM DB2 MySQL Velocis
Informix ODBC Unix dbm
PHP همچنین برای ارتباط با سایر سرویس ها ، از پروتــكل هایی مانند IMAP ،SNMP ، NNT ،POP3 ، HTTP و بسیاری دیگر پشتیبانی می كند.
تاریخچه مختصری از PHP
فكر اولیهPHP در پاییز سال 1994 توسط Rasmus Lerdorf ( ) شكل گرفت .
در ابتدا نگارشی از PHP در صفحه شخصی وی به كار گرفته شد ، تا اطلاعاتی از كسانی كه رزومه وی را
را می بینند ، نگاه داشته شود. اولین نگارش عمومی آن در اوایل سال 95 ارایه شد و با نام ” Personal Home Page Tools “ معرفی گردید . كه البته شامل پارسری بسیار ساده بود كه ماكروهای خاصی را می شناخت و نیز برخی كاربردهای مشترك در صفحات شخصـی مانند شمـارنده یا Guestbook وبرخـی ابزار های دیگر را شامل می شد.
پارســر در نیمه سال 95 بازنویســی شد و با نام “ PHP/FI نگارش 2 “ ارایه گردید . FI نام بسـته
نرم افزاری دیگری از Rasmus بود كه فرم های داده HTML را تفسیر می كرد . پس از آن بسیاری از PHP در كــد های خود استفاده كردند . در میانه سال 96 میزان استــفاده كنندگان به حـــدود 15 هـزار سایت رسید . این میــزان در نیمه سال 97 در حدود 50 هزار سایت مختلف بود. در هـمین زمان PHP از حالت یك پروژه شخصی درآمد و توســط تیمی توسـعه یافت . این گروه نگارش جدیدی از PHP را ارایه دادند و پارسر آن را بازنویسی نمودند. PHP3 به سرعت مورد استفاده قرار گرفـت . هم اكنـون نیز PHP4 آخرین نگارش این محصول است كه در آن از موتور اسكریپت Zend برای بدست آوردن قابلیت های بیشتر استفاده شده است .
امروزه ، PHP3 و PHP4 بر روی بسیاری از محصولات تجاری مانند “RedHat’s Stronghold web Server” ارایه می گردد. هم اكنون برآورد می شود بیش 5.100.000 سایت از PHP استفاده كرده اند
كه این میزان اندكی از تمامی سایتهای كه از ســرور های IIS مایكروسافت استفاده می كنند (5.03 میلیون) بیشتر است.
چگونه از PHP استفاده كنیم ؟PHP نرم افزاری رایگان و Open source است كه می توان آنرا از سایت http://www.php.net دریافت كرد. در این سایت بسیاری از نرم افزار هایی كه برای كار با PHP طراحی شده اند معرفی گردیده و می توانید از آنها استفاده نمایید.همچنین دستورالعمل استفاده از PHP و معرفی دستورات و توابع آن درقالبهای مختلف از جمله Html ، PDF و فایل Help ویندوز در دسترس شماست.
البته ابزارهایی مانند “ PHP Traid “ كه یك بسـته نرم افزاری رایگان است و در آن علاوه بر مفســرPHP ، مفسر زبان Perl ، موتور پایگاه داده MySQL و نسخه تحت ویندوز وب ســرور Apache قرار گرفته ، ابزار مناسبی جهت كار با PHP و پایگاه داده MySQL می باشد ویا نرم افزار PHPEDكه محیطی دیداری جهت كار با PHP فراهم می آورد. از سـایـت http://www.download.comقابل تهیه می باشند.
آموزش PHPآنچه می آید راهنمایی كاربردی برای آغاز كار بار PHP است . تاكید این آموزش بر روی راهنمایی دادن به مبتدیانی كه كاربردهای كوچك web و پایگاه داده های SQL را انجام میدهند ، و نیز پاسخ دهی به پرسشهای عمومی مانند چگونگی ارسال یك فرم توسطmail و.. می با شد .
1- نخستین گام با PHP
2- ساخت سر آیند (header) و زیر صفحه (footer) هماهنگ در یك سایت
3- استفاده از PHP برای ساخت و ارسال mail
4- استفاده از MyODBC برای تماس با یك پایگاه داده راه دور.
5- اجرای ایمن اسكریپت های PHP
نخستین گام با PHP
I . معرفی PHP
PHP زبانی برای ساخت آسان صفحات پویای وب می باشد . این زبان راهی سـاده تر برای انجام برنامـه- نویسی های مربوط به وب را فراهم می سازد ، كه پیش از این صرفا توسط زبانهای پیچیده و توانمندی مانندC و Perl انجام می شده است .
PHP به صورت ایده آلی به وب متصل شده است . چون اســكریپتهای آن درون صفـحات وب و در مـیان تگ ها و محتوای HTML جای می گیرند ، PHP یك زبان اسكریپت نویسی ” توكار “ خوانده می شـودتوسعه دهندگان می توانند برنامه هایشان را در صفحات وب جاسازی نموده و آنرا پویا سازند.
آنها می توانند با برنامه ، همچون صفحات وب رفتار كنند. صفحات PHP همزمان می توانند داراری محتوای معمول HTML و نیز كدهای PHP باشند. این قابلیت به شما اجازه می دهد تا كاربردهای وب را بسرعت توسعه دهید.
به هر حال ، برخلاف برخی زبانهای اســـكریپت نویسی وب ، PHP تفاوت آشــكاری میان بخش كدهای PHP و محتوای HTML ایجاد می كند.
هنگامی كه یك وب ســرور درخواستی را برای صفحات PHP دریـافت می كند. ابتدا در صفحه به دنــبال كدهای PHP می گردد و هر آنجه را كه یافت اجرا می كند . بخشهای معمولی HTML نیز بدون تغییر بـه
مرورگر ارسال می گردد.
II. چرا از PHP استفاده كنیم ؟
گذشته از Open Source بودن آن ، دلایل بسیاری برای انتخاب PHP برای ایجاد محتوای محاوره ای بـر روی سایت های وب ، وجود دارد.
ساختار و تركیبی بسیار شبیه زبان C دارد .
نوع داده ها و ساختارهای (Structures) ، PHP به آسانی آموخته و به كار گرفته می شوند.PHP مـیداند منظور شما چیست و نوع های داده را ، خود تغییر می دهد.
نیازی به دانستن دستور خاصی برای كامپایل برنامه ندارید ، برنامه شما خود ، در مـرورگر اجرا می شود لازم نیست برای ابتدای كار و نوشتن برنامه های كاربردی در باره PHP زیاد اطلاع داشته باشید .
PHP سرویسی از مجموعه فایل های كتابخانه ای C را ارایه می دهد كه به آسانی درون زبان قرارگرفته و با انعطاف بسیار به آن قابلیت پاسخ دهی سریع برای تغییرات در وب را می دهد .
آنچه شما می توانید با PHP انجام دهید ، با دیگر زبانها نیز قابل انجام است . اما PHP برای كار در زمـینه وب طراحی شده است . بنابراین كارهایی مشكل و خسته كننده برای برنامه نویسان كه نوشـتن آن در Perl آنها را به زحمت می انداخت ، به آسانی با PHP انجام می شود.
PHP وب سایت ها را قادر می سازد كه با سرعت مبهوت كننده ای گسترش یابند . به این خاطر بسرعــت برای صفحات پویا و پشتیبانی پایگاه داده ها به كار گرفته شده است .
كد های كوچك توكار در یك صفحه وب بسیار كـارآمدند . به عنوان مثال ، در یك صفــحه وب ایستا ممكن است شما مقدار یك متغیر را بدست آورید . و سپس آنرا برای تغییرات پویای محتوای صفحه به كار برید. این مثال PHP ، عبارتی را كه نشانگر مرورگر وب كاربر است بر روی صفحه نمایش می دهد .
<?php
$browser = getenv("HTTP_USER_AGENT");
?>
<P>You are using the <?php echo($browser);?> web browser.
</P>
III . چند مثال
الف )Hello World
سریعترین راه برای آموختن PHP آنست كه شروع به كار با آن كنید و ببینید كه چه رخ می دهد. ما با مثال معروف “Hello World “ كه شما پیــش از این در آموختن سایر زبانها نیـز آنرا به كار برده اید ، كار با PHP را آغاز می كنیم . این مثال سـاده عبارت “HELLO WORLD” را در مرورگر به وســیله تابع echo () می نویسد.
<?php
echo("Hello World\n");
?>
تابعecho ( ) یك یا چند رشته متنی را به مرورگر برای نمایش می فرستد . در واقع echo() یك تابع نیست بلكه یك ساختار زبان است . اما مانند یك تابع عمل می كند. به ابن خاطر نیــازی به پرانتزها نیسـت و می- توانید از آنها صرف نظر كنید.
اكنون اجازه دهید به برخی از تركیبهای دستوری معمول در اسكریپت های PHP بپردازیم .
ابتدا وانتهای بخش PHP با علامتهای ” كوچكتر از “ و ” بزرگتر از “ نشانه گذاری می شود . كه پس و یا پیش از آنها یك علامت سوال آمده است . پایان هرخط با یك ” ; “ مشخـص می شود. ”\n “ نیز یـك خط جدید ایجاد می كند . و عبارات پس از آن در خط جدید نوشته می شود .
كد بالا را می توان به این شكل نیز نوشت .
|
<?php |
ب ) Hello Web
مثال معروف Hello World را برای وب كه پایه محاوره ای آن فرم هاست ، بازنویسی می كنیم. این مثالی بسیار ساده از به كار گرفتن اسكریپت ، توسط یك فرم در مرورگر است . این اسكریپت یك ورودی از كـاربر ” نام وی “ را دریافت می كند و در پاسخ این نام را در پنجره مرورگر نمایش می دهد .
|
<form action="hello-web.php3" method="post"> |
Hello-web.html
چون PHP ، مقادیر ارسال شده از فرم را می پذیرد و خود متغییر هایی به نام متغییرهای ورودی می سازد ، فقط یك خط برای تولید پاسخ كافیست . و به خاطر اینكه PHP در خود این قابلیت را دارد كه به عنوان یك پرونده وب عمل كند ، اسكریپــت به طور خودكار یك سر آیند (header) HTTP ایجاد می كند .تا برای مرورگر مشخص نماید كه چه متنی را نمایش دهد.
|
Hello <?php echo($frmName); ?>! |
hello-web.php3
در ابتدا ، PHP سر آیند فایل Html را به مرورگر می فرستد . سپس تگ P و بعد از آن Hello را نمایـش می دهد. ، هنگامی كه به تگ آغازین PHP رسید آن را اجرا و نتیجه را به مرورگر ارسال كرده و بعد از تگ پایانی PHP ، به حالت HTML می رود و سایر بخشها را بدون تغییر ارسال می كند.
یك متغیر می تواند از مقادیر ورودی یك فـرم ، یا پــارامتر URL و یا متـغییرهای محلی كه دارای مـقدار هستنــد ، تشكیل شود .
همچنین می توان یك فایل PHP تولید نمود كه وظایف دو فایل html و PHP فوق را انجام دهد . این فایل با تغییرات بسیار جزئی و از پیوند دو فایل پیشین پدید می آید.
IV .دارا بودن محتوای پویا
بیایید بوسیله اسكریپت “Tip of the Day “ بیشتر با PHP آشنا شویم .
در این مثال با توابع و ایده های جدیدی آشنا می شوید كه البـته لزومی ندارد همه آن را یكبــاره بیاموزید .
همچنین این اسكریپت ، مقدمه ای است برای كار با سیستم فایل .
|
<?php |
سطر دوم اسكریپت ، فایلی به نام “photo.tips” را فراخوانی می كند. نیاز به نوشتن چیزی در فایل نیست چون ما فقط یك سطر از این فایل را خوانده و نمایش می دهیم . استفاده از تابع file () سبب می شود تا هر سطر فایل مربوطه ، در یك عنصر آرایه $tiplist ذخیره شود . نیازی به مشخص كردن یـك handle برای استفاده از این تابع نیست .تابع file () یك نام را به عنوان آرگومان می پذیرد و خروجی آن یك آرایه است. كه هر عضو آرایه با یك سطر فایل برابر است .
فایل tips دارای چندین مطلب می باشد كه هر كـدام در یك خـط قرار دارند . توسط تابع sizeof می توان تعداد سطر های موجود در فایل كه مشخص كننده تعداد tip ها نیز هست را پیدا كرد. این تابع تعداد عناصـر یك آرایه را معین می كند . در سطر بعد ، یك عـدد تصادفی مـیان صفر و تعـداد عنـاصر آرایه تولید می شود. rand(n,m) یك عدد رندم میان n و m تولید می كند . چون اندیس آرایه در PHP از 0 شروع می شود ،
ما تابع رندم خود را میان صفر و تعداد عناصر منهای یك ، تنظیم می كنیم .عدد تولید شـده به عـنوان اندیس آرایه به كار می رود. متنی كه به صورت تصادفی انتخاب شده توسط تابع echo () نمایش داده می شود.
ایجاد سر آیند و زیر صفحه هماهنگ برای یك سایت
I . چگونه سر آیند(header) و زیر صفحه (footer)دركد PHP قرار می گیرند ؟
یكی از توانمندترین خصوصیات PHP ، توانایی آن در كاهش میزان اعمالی است كه برای نگهداری ســایت بایستی انجام دهید. با به كارگیری الــگویی سازگار با سایت ، شما می توانید زحمتی را كه برای ایجاد صفحات جدید نیاز است را كاهش دهید . همچنین می توانید به آسانی طراحی كل سایت خود را تغییر دهید . این مثال كاربردی ، چگونگی به كارگیری و دستیابی به یك الگوی سایت را به شما آموزش می دهد.
اولین مساله ، طراحی header و footer ها توسط تگهای HTML است . آنها شامل تمام اطلاعاتی هستند كه بایستی در تمامی صفحات شما نمایش داده شوند. سر آیند معمولا بخش HEAD از صفحه شما را در بردارد. و شاید آگهی های سایت و یك منو و سر آغاز صفحه .
Footer معمولا شامل اعلان Copyright و اطلاعات تماس برای سایت شماست .
header1:
|
<HEAD> |
footer1:
|
<PRE> |
II. سر آمد و زیر صفحه های پویا
مرحله بعد جانشــین كردن بخشهایی از سر آیند و زیرصفحه ها ، كه می خواهید پویا باشـند ، با تـگ ها و اسكریپت های PHP است .این بخشها می توانند شامل عنوان ، كلمات كلیدی ، توضیحات ، نشـانی پست- الكترونیك و ... باشد .
header2:
<HEAD>
<TITLE><?php print $strTitle; ?></TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<H1><?php print $strCaption; ?></H1>
footer2:
<PRE>
</PRE>
<CENTER>
<A HREF="http://www.coolsite.loc/legal.php3">Copyright
</A>
1999 By Me<BR>
Written by: <I><?php print $strAuthor;
?></I><BR>
Questions? Write to <B><?php print $strContact;
?></B><BR>
</CENTER>
</BODY>
اكنون شما بایستی بتوانید در تمام صفحات خود به آنها دسترسی داشته باشید . این مرحله آسانتر از آنـست كه تصور می كنید. فایلهایی كه می خواهند به header و footer دسترسی داشته باشند ، بایستی متــغیرها را مقــدار دهی كنند ، header را فراخوانی كرده ، محتوای اختصاصی هر صفحه را نوشته و سپس footer را فراخوانی نمایید. یك مثال :
<?PHP
$strTitle = 'My Cool Site';
$strCaption = 'The Coolest Site Ever';
$strAuthor = 'The Author';
$strContact = '
';
require ('/path/to/includes/header.php3');
?>
<P>This is a the text of your page. Make it as fancy as you want!</P>
<?PHP
require ('/path/to/includes/footer.php3');
?>
main1
III .جداسازی محتوا از علائم
بسیار خوب ، اكنون می خواهیم مثال پیچیده تری بیاوریم . مثلا شما می خواهید ، قـادر باشیــد كه مقــادیر متغییرهای پویا header و footer كل سایت خود را به آسانی و یكباره تغییر دهیــد . ساده ترین راه برای این كار ، انتقال اطلاعات به یك فایل پیكربندی عمومی و ذخیره كردن بخشهای خاص صـفحه در یك آرایه ، می باشد. به این خاطر باید بدانید كه از نظر برنامه نویسی آرایه یك لیست ساده اسـت كه تــوسط كلید های عددی و یا متنی می توان به اجزا آن دسترسی داشت . یك مثال برای فایل پیكریندی در زیر آمده است:
config1:
<?PHP $aryConfig = array(
"main" => array (
"title" => "My Cool First Page" ,
"caption" => "Welcome to the Coolest Site Ever" ,
"author" => "The Author" ,
"contact" => "
" ) ,
"second" => array (
"title" => "My Cool Second Page" ,
"caption" => "More Coolness!" ,
"author" => "The Other Author" ,
"contact" => "
" )
);
?>
فایل پیكر بندی فوق اطلاعات هدر را در بر دارد . این فایل مقادیر همه مــتغیر های پیكر بندی را در تمامی محدوده صفحات سایت ، قابل دسترسی می كند . اكنون ، پس از آنكه فایل پیكر بندی آماده شد ،header و footer را بایستی تغییر دهید تا مقادیر متغیرها را از آرایه بخوانــد . ما هنوز می خواهــیم بتــوانیم مقادیر سراسری را جانشین مقادیر محلی نماییـم . به این صورت كه اگر مطمــئن شویم مقدار محلی موجود نباشد ، از مقادیر سراسری استفاده می شود.
header3:
<?PHP
if (empty ($strTitle)) { $strTitle = $aryConfig[$strPagename]["title"]; }
if (empty ($strCaption)) { $strCaption =
$aryConfig[$strPagename]["caption"]; }
?>
<HEAD>
<TITLE><?php print $strTitle; ?></TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<H1><?php print $strCaption; ?></H1>
footer3:
<?PHP
if (empty ($strAuthor)) { $strAuthor = $aryConfig[$strPagename]["author"] } ;
if (empty ($strContact)) { $strContact = $aryConfig[$strPagename]["contact"] } ;
?>
<PRE>
</PRE<
<CENTER>
<A HREF="http://www.coolsite.loc/legal.php3">Copyright</A> 1999 By Me<BR>
Written by: <I><?php print $strAuthor; ?></I><BR>
Questions? Write to <B><?php print $strContact; ?></B><BR>
</CENTER>
</BODY>
و در پایان صفحه اصلی نیز برای دسترسی به فایل config بایستی تغییر كند .
main2:
<?PHP
$strPagename = 'main';
require ('/path/to/includes/config.php3');
require ('/path/to/includes/header.php3');
?>
<P>This is a the text of your page. Make it as fancy as you want!</P>
<?PHP
require ('/path/to/includes/footer.php3');
?>
و در یك مرحله دیگر ، برای شما آسان خواهد بود كه متن و محتوای اصلی صفحه را به یك فــایل مجزا منتقل نمایید . این عمل اجازه تغییرات را به آسانی ،و بدون آنكه نگران از دســت دادن كدهای PHP باشــید ، در اختیار شما می گذارد . این عمل نیاز به تغییرات جدید در صفحه اصلی و نیز ایجاد یك فایل Content دارد.
main3:
<?PHP
$strPagename = 'main';
require ('/path/to/includes/header.php3');
require ('/path/to/includes/contents.html');
require ('/path/to/includes/footer.php3');
?>
contents1:
This is a the text of your page. Make it as fancy as you want!
این عمل می تواند نقطه آغاز مناسبی برای شما و برای حركت به سوی ساخت سایتهای پویا باشد .
به كار گیری PHP برای تولید وارسال Email
I . بررسی تابع Mail
زبان برنامه نویس وب محبوب ما روشی دستی و ساده برای ارسال email توسط تابع mail() فراهـم نموده است . این تابع یك روش كامل برای ارسال mail و با استفاده از واسط استاندارد و ساده ، كه مشكــلات و خصوصیات خاص برنامه های سیستمی مسؤول ارسال mail را پنهان می كند : می باشد . (Sendmail و Qmail دو مثال از برنامه های محبوب مدیریت ارسال و دریافت mail هستند كه اگر تابع mail نـبود شما بایستی مستقیما با آنها ارتباط برقرار می كردید . ) این آموختار (tutorial) ، شما را با مفاهیم اولیه ارســال email توسط اسكریت های PHP و ساختن یك فرم ساده feedback آشنا می كند .
تابع mail() سه مقدار ضروری و یك مقدار اختیاری را می پذیرد. و نیز مقداری منطـقی را كـه نشان دهنده موفقیت یا عدم موفقیت ارسال است ، برمی گرداند .
نشانی پست الكترونیك گیرنده ( فیلد To: ) ، موضـوع پیام ( فیلد Subject ) و متــن پیــام كه به عنـوان پارامترهای اصلی به تابع داده می شوند . یك رشته اختیاری كه شامل هدر اضافه (Extra Header) ،است نیز می تواند تعیین شود .
bool mail(string msgTo, string msgSubject, string msgBody, string extraHeaders);
برای ارسال یك پیام شما به سادگی پارامترها را مقدار دهی می كنید . در این مثال از رشته های ثابت اسـتفاده می كنیم تا كاربرد اصلی تابع شرح داده شود . اولین پارامتر نشانی پست الكترونیك فردی را تعیین می كـند كه ما می خواهیم برای او mail را ارسال كنیم . دومین پارامتر عنوان و موضوع پیـام است . پارامـتر سـوم متن نامه است و در پارامتر چهارم به صورت اختیاری ما هدر From: را قرار می دهیم و در آن نشانی را كه می خواهیم پاسخ به آن ارسال شود ، می آوریم . و X-Mailer را اضافه می كنیـم تا به برنامه مدیریت email كمك كند تا تشخیص بدهد كه پیام از یك منبع خودكار ارسال شده اسـت . زمــانی كه شما یك هدر انتخابی را تولید می كنید بیاد داشته باشید كه هر هدر اضافه را با یك linefeed \n) ) جــدا نمایید . وگرنه مـتن پیام ، ممكن است در هم و غیر قابل استفاده شود . پیام های ارسالی از طریق این تابع با فرمت plain text ارسال
خواهند شد .
mail ( " ", "Use PHP Everyday",
"Don't forget to floss and use PHP everyday!",
"From: \nX-Mailer: My PHP Script\n");
بیشتر اوقات شما نمی خواهید مقادیر پارامترها را با رشته های ثابت پر كنید . بلكه می خواهید متغییرهایی را استفاده نمایید . ممكن است بخواهید این مقادیر را از یك بخش اسكریپت PHP ( یك فایل مقدار دهـی اولیه ) یا از یك فرم ثبت نام بدست آورید. این عمل همانند آنست كه شما بخواهید مقادیر ارائه شده توسط یك فرم را بكار برید یا متغییرها را به صورت مدون برای ارسال پیام ، تولید نمایید . در این صورت ، رشته های معین را با متغییرهای رشته ای جانشین می كنیم .
mail ($strMailTo, $strSubject, $strBody, $strXHeaders);
II . افزودن اطلاعات هدر
همانطور كه اشاره شد تایع mail () به شما اجازه می دهــد كه فــیلدهای هدر بیشتری را به هدر پیام خود اضافه نمایید . یك كاربرد برای هدرهای اضافی Extra Header) ( مشخص كردن این است كه پیام بوسیله
یك برنامه تولید شده است . هر اسكریپتی كه نامه را تولید كـند ، می تـواند به عنوان یك remailer نامیده شود. گاهی مفید است كه به نظر آید email ارسالی از فرم ، از سـوی شخصـی كه فـرم را submit كرده ، فرستاده شده است . مانند زمانی كه از یك فرم برای ثبت نام كاربر در یك لیست پســتی استــفاده می شود . در كد زیر فیلد From: با نشانی ثبت نام كننده ، بازنویسی شده و یك X-Header كه مــشخص می كند . mail از سوی اسكریپت remailer شما ارسال شده ، اضافه گردیده است .معین كردن اینكه mail از سوی اسكریپت شما می آید برای مدیر سایت مشــخص می كند، كه email از یك منبــع خــودكار ارسال شده است و اگرمشكلی باشد ، از سوی اسكریپت شما رخ داده است . ما تابع phpversion () را برای شناسایی پیامی كه از سوی یك اسكریپت PHP ازسال شده ، به كار برده ایم :
mail($list_request, "Subscribe", "Subscribe", "From: $email_address\nX-Mailer: PHP/" . phpversion());
برخی لیست سرور ها نیاز دارند كه نام و نام خانوادگی كاربر در فیلد From : در دسترس باشـند . بـه این منظور ، متغیرهایی برای نام ، در فیلد From اضافه می كنیم . ضروری است كه راهی برای درج كـوتـیشن در یك عبارت كه بوسیله كوتیشنها مشخص می شود بیابیم . ( عبارتی كه ابتدا و انتها آن با كوتیشن مشـخص می شود .) به این منظور بایستی از علامت backslash (‘\’) پیش از علائم كوتیشـن نام ونام خانوادگــی استفاده كرد . نشانی پست الكترونیك در میان دو عـلامت كوچــكتراز و بزرگتر از قــرار می گیرد تا از متن اطراف آن متمایز گردد .
$from = "From: \"$first_name $last_name\" <$email_address>\nX-Mailer: PHP/" . phpversion();
mail($list_request, "Subscribe", "Subscribe", $from);
III. چه هنگامی از تابع Mail () استفاده می شود ؟
داشتن یك تابع آسان برای ارسال نامه ، هنگامی كه یك اســكریپت بخواهد پیامهای متعددی را ارسال نماید ، بسیار مفید است . این تابع فقط یك خط از كد را بـخود اختصــاص می دهـد . همچنین كمك می كند تـا كد خوانایی خود را ،اگر تابع mail () بخواهد در یك عبارت شرطی بیاید نیز به خوبی حفظ نماید . همــچنین به خوبی توانایی محاوره با برنامه mail بدون هراس از command syntax و یا معیارهای ایمنی مــورد نیاز برای اجرای یك برنامه mail یونیكس را دارد . گرچه واسط Sendmail و Qmail استاندارد شده انــد ، اسـتفاده از تابع mail () اســكریپت شما را تا حدودی در برابر تغــییراتی كه ممكن اســت مـدیر در برنامه Sendmail ایجاد نماید ، حفاظت می كند . استفاده از تابع mail() به این معــناســت كه شما مجبور نیستید خودتان تابعی برای ارسال mail با استفاده از Sendmail ویا Qmail بنویسید .
مثال زیر درباره استفاده از چند تابع در یك اسكریپت ، برای آگاه كردن مدیر هنگامی كه فرمی تكمیل گردید و در همان لحظه ، ارسال یك email پاسخ برای كاربر می باشد .( توجه داشته باشید كه این یك طـرح اولیه است و ممكن است مثالی عملی نباشد .)
if ($notify)
{
// notify admin
$mailTo = "
";
$msgSubject = "Downloading MediaKit";
$msgBody = "$name, $company, $address, $email_address, $demographics";
$xHeaders = "From: $email_address\nX-Mailer: PHP/" . phpversion();
mail ($mailTo, $msgSubject, $msgBody, $xHeaders);
}
// thank customer
$mailTo = $email_address;
$msgSubject = "Thank You for Downloading our MediaKit";
$msgBody = "Please feel free to contact us if you have any questions or desire a quote.\nThank You.\n";
$xHeaders = "From:
\nX-Mailer: PHP/" . phpversion();
mail ($mailTo, $msgSubject, $msgBody, $xHeaders);
IV . ارتباط با برنامه Sendmail
البته PHP به شما اجازه می دهد كه برنامه mail سیستم را به طور مستقیم بكار برید . شاید بخواهید كه این كار را با استفاده از مشخصات ویژه ای كه فقط در یك برنامه خاص mail موجود است ، بكار برید . هدف دیگر از فراخوانی مستقیم sendmail ، ایجاد هدر From : یا دیگر هدر های اختیاری در روشی خواناتر است .
فراخوانی یك برنامه mail مانند نوشتن در فایل است . ( برنامه نویسان Perl به این موضوع آشناترند .) به جای باز كردن یك فایل ، تابع popen () یك برنامه را برای pipe پیام شما ( ” صدازدن “ : روش ارتباط استاندارد UNIX) مشخص می كند . این تابع یك ارتباط با برنامه mail ایجاد می نماید . تابع puts () برای نوشتن هدرهای پیام و متن آن در برنامه mail ، كه ارتباط آن بوسیله تابع popen () برقرار شده ،به كار می رود. چون ممكن است شما بخواهید برنامه mail متفاوتی را بكار برید ، فكر خوبی است كه مسیر موجود در popen () را در یك متغیر ذخیره نمایید . شما می توانید نشانی گیرنده را در متغیری ذخیره كرده تا تغییرات در آن به آسانی انجام شود . اسكریپت زیر مثالی از بكارگیری برنامه Sendmail است .
<?php
$fd = popen("/usr/sbin/sendmail -t","w");
fputs($fd, "To:
\n");
fputs($fd, "From: Me \n");
fputs($fd, "Subject: Test message from my web site\n");
fputs($fd, "X-Mailer: PHP3\n");
fputs($fd, "Testing.\n");
pclose($fd);
?>
تابع popen () یك pipe به برنامه mail باز می كند . برای بازكردن یكpipe شما باید به تابع ، نام برنامه و نیز نوع ارتباطی كه بایستی برقرار شود را بدهید . “w” برای “Write” به تابع popen می گوید كه یك pipe برای ارسال اطلاعات از سوی PHP به Sendmail برقرار كند . اگر “r” نوشته شود ، تابع بایستی پایپی در خلاف جهت و برای ارسال اطلاعات به PHP باز نماید . تابع fputs() هر خط پیام را در Sendmail می نویسد . این تابع نیاز دارد كه ما به آن یك اشاره فایل و رشته ای كه می خواهیم نوشته شود را بدهیم .اشاره گر فایل كه هنگام باز شدن فایل آنرا بدست آورده ایم ، می گوید كه پیام به كجا بایستی ارسال شود . ( در Unix وسایل به عنوان فایل در نظر گرفته می شوند . ) پیام خود ، شامل یك رشته است . هنگامی كه كار ما پایان یافت ، پایپ بوسیله تابع pclose () بسته می شود .
توجه : گزینه (-t) را هنگام كار كردن مستقیم با Sendmail برای كاهش میزان اشتباه به كار برید . بنابه توضیحات برنامه Sendmail : انتخاب (-t) به Sendmail می گوید كه handle پیام را تجزیه كند . و تمامی انواع گیرندگان را ( مانند To : ، Cc و BCc ) بكار برد . تایك لیست مشخص و مجزا از گیرندها بدست آید . خط فرمان ساده Sendmail این امتیاز را در حالی به شما می دهد كه امكان معرفی گیرنده غیر از آنچه در هدر ها لیست شده را از دست می دهید .
یك هدف دیگر از دسترسی مستقیم به برنامه mail ، ایجاد نشانی پست الكترونیك پوششی است .اگر برنامه mail شما در میزبان دیگری قرار دارد ، ممكن است شما هنگامی كه از تابع mail () برای ارسال email استفاده می كنید ، ببینید پیامها به خاطر اینكه از نشانی ، غیر از نشانی های پوشش یافته ، ارسال شده اند : برگشت می خورند . این مشكل توسط ارتباط مستقیم با برنامه Sendmail كاهش می یابد .
سوئیچ –f را برای مشخص كردن آدرس پوششی به كار برید.
-f
// Configuration
$announce_subject = "Message From Our Web Site";
$announce_from_email = "
";
$announce_from_name = "Our Site";
$announce_to_email = "
";
$body = "Announcement. Our site has a special offer today. Please visit. Thank you.";
$MP = "/usr/sbin/sendmail -t";
$spec_envelope = 1;
// Access Sendmail
// Conditionally match envelope address
if($spec_envelope)
{
$MP .= " -f $announce_from_email";
}
$fd = popen($MP,"w");
fputs($fd, "To: $announce_to_email\n");
fputs($fd, "From: $announce_from_name <$announce_from_email>\n");
fputs($fd, "Subject: $announce_subject\n");
fputs($fd, "X-Mailer: PHP3\n");
fputs($fd, $body);
pclose($fd);
V. ارسال ایمن email
هنگامی كه برنامه mail سیستم را فراخوانی می كنیم . بایستی مراقب باشیم كه چه كاراكترهایی به آن ارسال كرده ایم . چون ما یك پایپ یونیكس را بازكرده ایم برای كاربران بداندیش این امر را ممكن می سازد تا meta character های پوسته shell یونیكس را در فرم ورودی بنویسند و بعد آن را به Sendmail بفرستند . نتیجه ممكن است فاجعه بار باشد .
هنگامی كه اسكریپت كنترل كننده یك فرم را می نویسید كه قرار است داده های وارد شده توسط كاربران را به یك برنامه mail بفرستند ، شما بایستی به دقت مراقب ورودی های كاربر باشید . به همه كاربران آنچنان نگاه كنید كه شاید آنها دشمن باشند . ( رفتار غیر مسؤولانه ای دارند .) meta character های پوسته Shell را ، كه بایستی توسط Sendmail استفاده شود مانند “TO :” ، “From :” و یا “Subject” ، از ورودی حذف نمایید . به جای حذف كاراكترهای نادرست می توانید به گونه ای متغیر ورودی را تعریف نمایید كه صرفا عبارتهای مجاز را دریافت كند . به عنوان مثال ، ورودی خود را به این شكل تعریف نمایید :
$data =~ s/[^A-Za-z0-9_]//gs;
VI . ارسال Mail از یك فرم
البته هریك از هدرها ویا متن پیام می توانند توسط متغیرهایی معرفی و مقداردهی شوند .این یك مثال كاملتر از اسكریپت قبلی است كه به صورت یك اداره گر ساده فرم، توسعه داده شده است . مثال ، متغیرهایی را معرفی می كند و كد را به بخش كوچك پیكربندی و اسكریپت آشنای Sendmail ، تقسیم می كند . بخش اول كد PHP ، به عنوان بخش پیكربندی برای مقداردهی متغیرهای كلیدی ، عمل می نماید . مفید است كه مسیر برنامه mail خود را در یك متغیر ذخیره كنید . در این صورت نیازی به جستجو در كد و تغییر قسمتهای لازم، در صورتی كه مسیر برنامه تغییر كند ، نخواهید داشت . بخش دوم ، عمل ارسال mail را انجام می دهد . در روش صحیح نوشتن PHP ، كدهای HTML و PHP با هم آمیخته می شوند تا پس از آنكه فرم كامل شد توسط همان صفحه ، اطلاعات جمع آوری شده، از طریق mail به مدیر سایت ارسال شود . اگر فرم شامل نشانی پست الكترونیك پركننده ، ( فیلد From : ) باشد : ارسال یك email به كاربر و پاسخ دهی به آن را جهت تایید عضویت ، آسان می كند . بر اساس پروتكلهای مربوطه ، فیلد ، From : با قرار گرفتن نشانی email در میان دو نشانه “>” و “<” قالب بندی شده است :
“ From : $frmName < $frmEmail> \n”
هر فرم دارای نام متغیرهای ورودی است . هنگامی كه فرم تكمیل و تایید شد PHP به صورت خودكار متغیرهایی با نام هایی كه در خاصیت NAME اجزای فرم وجود دارد ، ایجاد می كند و آنها را با مقادیری كه كاربر وارد نموده است مقداردهی می نماید . این متغیرها در بخش PHP اسكریپت در دسترس خواهند بود. برای هر متغیر یك خط شامل مقدار آن ، در پیام تولید شده اضافه می شود .
<?php
/* Configuration -----------------------------------------*/
/* Mail results to this address */
/* Set this to the email address you wish to receive mail */
/* from the form submissions at. */
$TO = "
";
/* Specify system mail program */
/* Set this to the path to your mail program. Check with */
/* your server administrator for the proper location. */
$MP = "/usr/sbin/sendmail -t";
?>
<?php
/*-------------------------------------------------------*/
/* Decide if we should display a new form or send the */
/* form data by email. */
/* To make this decision, the script can check for the */
/* existence of 1) the action variable defined by a */
/* hidden field; 2) a required form field that you know */
/* will always be set on submission; or you may set the */
/* action variable to a particular value that can be */
/* checked to determine the action to take. I chose */
/* to simply check for the existence of the hidden */
/* action variable (which is always set as long as we */
/* give a value in the hidden field). */
/*-------------------------------------------------------*/
if ($frmAction)
{
/*-------------------------------------------------------*/
/* A thank you message (or other response) goes here. We */
/* switch to HTML mode to make it easy to include any */
/* tags you wish without worrying about quoted */
/* attributes. */
/*-------------------------------------------------------*/
?>
<div align="center">
<table width="350" border="2">
<tr>
<td bgcolor="#C0C0C0">
<p>Thank you for requesting a personalized quote for our products and services.
</p>
</td>
</tr>
</table>
</div>
<?php
/*-------------------------------------------------------*/
/* The real work gets done here by opening a pipe to */
/* sendmail, which sends the contents of the submitted */
/* form by email to the address specified in the */
/* configuation section (which can acutally be an */
/* an included initialization file if you want to get */
/* fancy). For each variable we expect the form to */
/* to submit, we output as part of the email. */
/*-------------------------------------------------------*/
$fd = popen($MP,"w");
fputs($fd, "To: $TO\n");
fputs($fd, "From: $frmName <$frmEmail>\n");
fputs($fd, "Subject: Message from your web site\n");
fputs($fd, "X-Mailer: PHP3\n");
fputs($fd, "Name: $frmName\n");
fputs($fd, "Phone: $frmPhone\n");
fputs($fd, "Fax: $frmFax\n");
fputs($fd, "Email: $frmEmail\n");
fputs($fd, "Address: $frmAddress\n");
fputs($fd, "Price range: $frmPriceRange\n");
fputs($fd, "Details: $frmFurther");
pclose($fd);
/*-------------------------------------------------------*/
/* Here the script must exit so we don't display the */
/* form again once the thank you message has been */
/* displayed and the mail sent. */
/*-------------------------------------------------------*/
exit;
} else {
// start else clause
?>
<div align="center">
<form action="mail.php3" method="post">
<table>
<tr><td colspan="2">
<p>Please enter your information for a personal quote.
</p>
</td>
</tr>
<tr>
<td>Name:</td>
<td><input type="text" name="frmName" size="24">
</td>
</tr>
<tr>
<td>Phone:</td>
<td><input type="text" name="frmPhone" size="24">
</td>
</tr>
<tr>
<td>Fax:
</td>
<td><input type="text" name="frmFax" size="24">
</td>
</tr>
<tr>
<td>Email:
</td>
<td> <input type="text" name="frmEmail" size="24"><br>
</td>
</tr>
<tr>
<td>Address:
</td>
<td><input type="text" name="frmAddress" size="24">
</td>
</tr>
<tr>
<td>Price Range:
</td>
<td><input type="text" name="frmPriceRange" size="24">
</td>
</tr>
<tr>
<td>Details:
</td>
<td><input type="text" name="frmFurther" size="24">
</td>
</tr>
<tr>
<td>
<!-- To determine whether the script should display the form or mail the data, you can check for existence of a required field or this special action variable. -->
<input type="hidden" name="frmAction" value="formmail">
<input type="submit" value="Submit">
</td>
<td>
</td>
</table>
</div>
<br>
</form>
<?php
} // end else clause
?>
این دستورالعمل مثالی از اینكه چگونه یك اسكریپت وب می تواند برای تولید فرم HTML وپذیرش مقادیر تاییده شده فرم ، بكار رود است . این امر اینگونه رخ می دهد : در اولین باری كه اسكریپت فراخوانده می شود ، بخشهای HTML فرم به مرورگر مشتری (client) ارسال می گردد . اسكریپت پس از آن بیكار می ماند تا كاربر مقادیر فرم را تایید كند . پارامتر action فرم ، برای فراخوانی همان اسكریپت تنظیم شده است . اسكریپت به مقادیر توجه می كند تا ببیند آیا از سوی فرم فراخوانی شده است؟همچنین می توان متغیری برای action به صورت مخفی درنظر گرفت تا براساس مقادیر ارسالی ، متغییر action مقداردهی شود .
این مثال ، یك اسكریپت آموزشی است و به تعداد ورودی مرتبط است . می توان اداراه گر فرمی ساخت كه برای هر فرم بدون توجه به تعداد ورودی ها عمل نماید .
به كارگیری MyODBC برای اتصال به یك پایگاه داده راه دور
I . اصول اولیه استفاده از MyODBC
یكی از گیرا ترین خصوصیات MySQL پشتیبانی كامل آن از ODBC است . منبع (source) راه انداز و واسط ODBC برای علاقمندان در اكثر مراكزتوسعه و بهینه سازی دستیابی به ODBC در اختیار است . همه توابع ODBC 2.5 و بسیاری دیگر در MySQL پشتیبانی شده است . شما می توانید از Microsoft Access برای تماس با كارگزار (سرور) MySQL خود استفاده نمایید . این آموختار نیز بر این اساس است . MyODBC یك راه انداز ODBC برای سرویس دهنده پایگاه داده MySQL است كه توسط شركت سوئدی TCX Data-Consult تولید گردیده است . توسط برنامه MyODBC ، MySQL از ODBC(Open DataBase Connectivity) پشتیبانی می كند .
- چرا برای اتصال از MyODBC استفاده می كنیم ؟
با MyODBC شما می توانید :
- ارتباط با سرویس دهنده پایگاه داده راه دور را ، از هر نقطه ای كه شما به یك برنامه رومیزی مانند Microsoft Access دسترسی داشته باشید، برقرار نمایید .
- ارسال (Export) یك پایگاه داده به یك سرویس دهنده راه دور
- دریافت(Import ) یك پایگاه داده از یك سرویس دهنده راه دور
- اتصال (link) یك پایگاه داده محلی به یك پایگاه داده راه دور
Exporting : برای ارسال یك پایگاه داده هنگامی كه شما اولین پایگاه داده راه دور یا online خود را ایجاد می كنید ، كارآمد است .اگر شما یك پایگاه داده دارید كه می خواهید آن را به صورت Online قرار دهید . آنرا از Access به MySQL بوسیله یك اتصال ODBC ارسال (export) نمایید . این عمل بسیار آسان انجام خواهد شد . MyODBC به نوآموزان اجازه می دهد تا پایگاه داده های خود را بدون نیاز به آموختن فرمانهای پوسته Unix یا application های سودمند ، در اینترنت قرار دهند .نكته مهم آنست كه توجه داشته باشید exporting یك پردازش ایستا در ارسال یك جدول از سرویس دهنده محلی به كارگزار (server) راه دور در هر بار انجام آن ، می باشد . معمولا فیدبكی از شاخص پیشرفت عملیات دریافت نمی شود . هنگامی كه شما یك جدول را export می كنید ، دستورات SQL به كارگزار SQL راه دور، فرستاده می شوند . برای ایجاد یك جدول، دستور CREATE TABLE و برای درج داده ارسالی ،INSERT به
كارگزار SQL راه دور ارسال می شوند . اگر جدول پیش از این ایجاد شده باشد ، عبارت CEARTE TABLE فرستاده نخواهد شد و اطلاعات جدید ارسالی از دستور UPDATE استفاده می كنند .
Importing : دریافت جدول از یك پایگاه داده راه دور هنگامی كه شما می خواهید یك گزارش از اطلاعات ذخیره شده در آن تهیه نمایید ، می تواند بسیار ارزشمند باشد . با import یك جدول به Access شما می توانید ، نمودارها یا گزارشهایی از داده هایی كه به صورت online گرد آوری شده اند ، به آسانی تهیه نمایید . نكته مهم آنست كه دریافت یك جدول از یك پایگاه داده راه دور ، در یك سرویس دهنده محلی پردازشی ایستاست و معمولا فیدبكی از شاخص پیشرفت دریافت نمی شود .
Linking: پیوند دهی ؛ هنگامی كه شما یك جدول محلی را به یك جدول راه دور متصل می كنید ، به كاربران محلی خود اجازه تغییرات در جدول راه دور را از طریق واسط گرافیكی كاربر Access می دهید . برای مثال ، اگر یك سطر بوسیله یك فرم Access ، به جدول محلی اضافه شود و یا تغییر نماید؛ تغییرات در جدول پیوند شده راه دور نیز اعمال می گردد وآنرا به هنگام می كند .این ارتباط به كاربران مبتدی اجازه می دهدكه پایگاه داده های online خود را به وسیله محیطی دوست داشتنی و با كاربری ساده ، نگه داری نمایند . یكی از فواید اتصال جداول آنست كه هر تغییری كه توسط كاربرد پایگاه داده محلی صورت پذیرد ؛ در پایگاه داده راه دور نیز اثرخواهـد كرد .این عمل پردازشها بر روی پایگاه داده راه دور را بیشتر قابل رؤیت می كند .
تمامی این اهداف را می توان با استفاده از MySQL و خط فرمان پوسته Unix نیز انجام داد . براخی اوقات كارشناسان ومتخصصین كار كردن با خط فرمان را بیشتر می پسندند . اما برای بسیاری از مردم client) ها و كاركنان اداری ) ODBC راهی آسان برای دریافت داده هایشان از كارگزار راه دور، و یا تولید نمودارهای قالب بدنی شده‘ دلپذیر و گزارشهای مناسبی از داده های online می باشد . MyODBC یك گزینه مهم در میان ابزار های مورد نیاز توسعه دهنگان است . كه به شما اجازه می دهد ، تا به مشتریان یك واسط ساده و منعطف برای پایگاه داده های onlineشان بوسیله چارچوب و برنامه كاربردی - كه با آن راحت هستند - معرفی نمایید . برای توسعه دهندگان كاربردهای وب ، اجازه یافتن كاربران برای به هنگام رسانی پایگاه داده های راه دور از محل كار ، باعث صرفه جویی در زمان می شود . ورود داده و مدیریت پایگاه داده می تواند از محل كار درست در زمانی انجام شود كه یك اسكریپت PHP صفحات پویایی را بر پایه اطلاعات جداول پایگاه داده ، تولید می نماید .
II . بارگذاری MyODBC (Download)
بسته قابل بارگذاری MyODBC در بخش Downloads سایت MySQL به نشانی http://www.mysql.com موجود است . به بخش نرم افزارهای مرتبط با MySQL بروید و Download for MyODBC را انتخاب نمایید .
توجه : برای بارگذاری سریعتر یكی از سایتهای آینه ای MySQL را آزمایش نمایید ، سایتی را برگزینید كه به شما نزدیكتر باشد .
MyODBC برای windows 9x و چارچوبهای NT به خوبی گونه های مختلف موجود در Unix در دسترس است . كد منبع MyODBC در بسته فوق موجود است . اگر شما صرفا برنامه كاربردی آن را می خواهید می توانید بدون مشكل ، از كدهای C موجود در بسته چشمپوشی نموده و فقط برنامه اجرایی را نصب نمایید .
توجه : MyODBC در نسخه های مجزایی برای win 9x و NT توزیع شده است ، چون یك اشكال در نصب Microsoft ODBC ، از شناسایی سیستم عامل جلوگیری می كند .
نگارش فعلی MyODBC ،شماره2.5 است . آخرین نگارش از بسته قابل بارگذاری در نشانی زیر موجود است : http://www.mysql.com/doanloads/myodbc . مطمئن شوید كه آخرین نگارش كه تمامی بروز رسانی ها و رفع نواقص را در بر دارد مورد استفاده قرار می دهید . فایل فشرده MyODBC در حدود 1.5 MB است.
نصب MyODBC
فایل setup.exe را اجرا نمایید . هنگامی كه شما پردازش نصب را آغاز نمودید ، اولین پنجره ای كه مشاهده خواهید كرد ؛ پنجره نصب MS ODBC است كه بایستی بر روی “ continue “ كلیك نمایید . در این بخش پنجره نصب راه اندازها پدیدار می شود . MySQL را انتخاب نموده و بر روی OK كلیك نمایید. اگر مشكلی در نصب پیش آید گزینه نصب وابسته به نگارش را كه با كلیك كردن بر دكمه Advanced خواهید یافت ، انتخاب كنید . این دكمه پنجره محاوره Advanced Installation Options را خواهد آورد .
اطلاعات بیشتر در مورد نگارش راه انداز در پنجره version موجود است . اگر راه انداز MyODBC به درستی نصب شده باشد ، پنجره بعدی كه مشاهده خواهید كرد مربوط به محاوره Data Source است . این پنجره محاوره ، بخشی از MS ODBC است و ربطی به MyODBC ندارد . شما می توانــید با فراخـوانی
Sample MySQL در پنجره Data Source ، یك مثال از منبع داده ای كه توسط MyODBC نصب شده است را ملاحظه نمایید . اگرچه می توانید MySQL entry را انتخاب كرده و دكمه setup را برای ادامه كلیك كنید . اما ما اتصال راه دور را از MS Access پیكربندی خواهیم كرد . هنگامی كه كار به اتمام رسید ، شما بایستی پیامی مبنی بر پایان موفقیت آمیز نصب راه انداز ODBC جدید . مشاهده نمایید . سپس بر OK كلیك كنید .
III . پیكربندی و برقراری تماس
- ایجاد ارتباط با یك پایگاه داده راه دور موجود .
پس از آنكه شما راه انداز را نصب كردید ، از Access برای ارتباط با پایگاه داده راه دور استفاده می كنیم . پایگاه داده باید برای دسترسی راه دور تنظیم شده باشد . در بسیاری از ارائه دهنگان خدمات میزبانی وب ، این عمل فقط با یك درخواست انجام می شود . لطفا از مدیر یا گروه پشتیبانی ارائه دهنده خدمات میزبانی وب خود ، درباره فعال سازی دستیابی راه دور به پایگاه داده MySQL پرسش نمایید .
یك Data Source را ایجاد كنید . راه انداز ODBC مناسب را انتخاب و یك Data Source Name (DSN) برای برنامه های كاربردی ویندوز ، ایجاد نمایید . برخی تنظیمات پیچیده و بسیاری اصطلاحات كه شما ممكن است با آنها نا آشنا باشید ، وجود دارد . اما براحتی مراحل را دنبال كنید تا به پایان ویزارد برسید .
برروی File | Get External Data |Import كلیك نمایید. بر روی New در پنجره Data Source كلیك نمایید . پنجره محاوره راه انداز MyODBC بایستی پدیدار شود .
ایجاد یك منبع داده جدید
در این بخش شما بایستی یك منبع داده جدید ایجاد نمایید . یك منبع داده ، مكانی است كه”داده“ از طریق اتصال ODBC ، منتقل می گردد . نام منبع داده (DSN) همان نام پایگاه داده است . هنگامی كه شما یك منبع پایگاه داده ایجاد می كنید ، هرنامی كه دوست دارید می توانید به آن بدهید .
استفاده از ویزارد برای ایجاد یك منبع داده جدید
اولین مرحله ، ایجاد یك منبع داده جدید ویندوز است . این مرحله به برنامه های كاربردی ویندوز اجازه می دهد تا به پایگاه داده ODBC شما مرتبط شوند. User Data Source را انتخاب نموده و برNew كلیك نمایید . پنجره بعدی ، فهرستی از راه انداز های ODBC موجود را نشان می دهد كه شما می توانید با آنها یك منبع داده ایجاد نمایید. ( می توانید به هر میزان كه نیاز داشته باشید منبع داده با هریـك از راه انداز های موجود
ایجاد نمایید .) راه انداز MySQL را انتخاب كنید .
صفحه اطلاعات پالایش شده ای نمایش داده می شود كه شامل نوع منبع داده و راه انداز ODBC انتخابی است . بر این اساس ، مرحله بعد به صورت اختیاری است و پیكربندی تنظیمات اختصاصی راه انداز می باشد بر روی Next كلیك نمایید. پانل تنظیم راه انداز MyODBC پدیدار می شود . این صفحه به شما اجازه می دهد تا نام DSN ، تنظیمات كارگزار راه دور و سایر تنظیمات سازگار را مشخص نمایید .شما هرنامی كه در فهرست windows DSN شما یكتا باشد را می توانید برای این منبع داده انتخاب كنید .
پورت پیش فرض برای اكثر مواقع درست است . مقدار Server ، User ، Password و فیلد پورت نباید در صفحه نصب مشخص شده باشند . اگر آنها را در این بخش ، مشخص كرده اید ؛ به عنوان مقادیر پیش فرض در ارتباط های بعدی استفاده خواهند شد . مقادیر ، می توانند در زمان استفاده و در صورت نیاز تغییر كنند.
مرجع سریع تنظیمات
|
نام پایگاه داده شما كه توسط windows استفاده خواهد شد. ( این نام می تواند هرجه شما می خواهید باشد ، هرجه به شما كمك كند تا پایگاه داده را به خاطر آورید و یا تشخیص دهید ، بهتر است.) |
Windows DSN |
|
آدرس IP و یا Domain میزبان كارگزار پایگاه داده ( می توانید از فراهم كننده خدمات میزبانی وب خود آنرا دریافت نمایید .) |
MySQL Host |
|
نام پایگاه داده راه دور است .( توسط فراهم كننده خدمات میزبانی وب و یا شما هنگامی كه پایگاه داده را ایجاد كرده اید ، بدست می آید . ) |
MySQL Database Name |
|
نام كاربری است كه می تواند به پایگاه داده راه دور متصل شود . ( از فراهم كننده خدمات میزبانی وب دریافت نمایید . ) |
User |
|
رمز عبوری است كه برای دسترسی به پایگاه داده راه دور نیاز است . ( از میزبان وب خود بخواهید .) شما بایستی سطوح دسترسی درستی برای انجام برخی اعمال خاص مانند ایجاد و یا از بین بردن جداول اتخاذ نمایید . برخی مدیران به شما سه جفت User ID و Password می دهند . یكی برای فقط خواندن ، (SELECT) ، یكی برای دسترسی در حد خواندن و نوشتن (SELECT , INSERT , UPDATE) و دیگری برای كنترل در سطح مدیر) (CREATE TABLE , DROP TABLE , ALTER TABLE به اضافه تمام عبارات و دستورات دیگر SQL |
Password |
نكته : این آموختار MS ACCESS را برای مثال انتخاب كرده است . به خاطر آنكه Access بتواند بهتر با MyODBC كار كند ، شما بایستی مراحل زیر را دنبال نمایید :
- شما بایستی یك كلید اصلی در جدول داشته باشید .
- بایستی یك timestamp ( گاه فهرست ) در تمام جداولی كه می خواهید ، قادر به بروز رسانی آنها شوید ، داشته باشید .
- فقط از فیلدهای double float استفاده نمایید . Access هنگامی كه single float را مقایسه می كند، دچار مشكل می شود .
- گزینه “return matching rows “ را هنگامی كه با MySQL ارتباط برقرار می كنید ، انتخاب نمایید.
- Access بر روی NT ، ستونهای BLOB را به عنوان OBJECTS OLE گزارش می دهد . اگر شما می خواهید ستونهای Memo داشته باشید ، بایستی ستون را به TEXT بوسیله دستور ALTER TABLE ، تغییر دهید .
- Access همیشه نمی تواند ستونهای DATE را به خوبی استفاده كند . اگر شما با این مساله مشكلی پیدا كردید ، این ستونها را به DATE TIME تغییر دهید.
- در برخی حالات ، ممكن است Access پرس وجوهای SQL نادرستی ایجاد كند كه MySQL از درك آن ناتوان باشد ، شما می توانید این مشكل را با انتخاب “Query | SQL Specific | Pass-Through “ از منوی Access حل نمایید .
اولین باری كه منبع داده (data source) ایجاد شد ، به پنجره محاوره Select Data Source بر می گردید . منبع داده ای را كه ایجاد كرده اید از لیست انتخاب نمایید . بر OK كلیك نمایید . بایستی یك نسخه از جدول در پایگاه داده راه دور با تمام داده های شما ایجاد شده باشد . هیچ چیزی مبنی بر تایید ارسال داده، نخواهید دید . شما نیاز داری تا جدول را به پایگاه داده راه دور متصل (link) نمایید .
IV .دریافت وارسال جداول
دریافت یك جدول از یك پایگاه داده راه دور
پایگاه داده Access را باز نمایید . در پنجره پایگاه داده ، قطعه جداول (Tables) را انتخاب نمایید . به منوی File بروید و سپس از Get External Data ، “Import” را انتخاب نمایید .
در محاوره ، گزینه “To an External File or Database” را انتخاب نموده ، پنجره محاوره “Save As” نمایش داده می شود . در بخش Save As Type ، گزینه ODBC Database را انتــخاب نمایید .
بر Import كلیك نمایید .پنجره “Import Object” پدیدار می شود . اگر جدولی كه می خواستید دریافت نمایید در لیست باشد ، آنرا انتخاب كرده و بر Ok كلیك كنید .
Access جدول را بوسیله پرس و جو با پایگاه داده راه دور از طریق اتصال ODBC دریافت می كند . این اتصال برای یك جدول بزرگ می تواند كند باشد . بنابراین یك فنجان قهوه صرف نمایید تا Access كار خود را انجام دهد !
ارسال یك جدول به پایگاه داده راه دور
پایگاه داده Access را باز كنید . در پنجره Database بخش جداول را انتخاب كنید . جدولی را برای ارسال انتخاب كرده به منوی فایل و سپس به Get External Data بروید ، پنجره Export مشاهده می شود . اگر نام جدول همانی است كه شما می خواهید ، بر Ok كلیك نمایید . پنجره انتخاب منبع داده پدیدار می شود . بخش (tab) ، Machine Data Source را انتخاب نمایید .ما یك منبع داده جدید صرفا برای این پایگاه داده ایجاد می كنیم . این امر تماس مجدد با پایگاه داده را آسان می كند . بر New كلیك نمایید . پنجره Create New Data Source باز می شود . User Data Source را انتخاب نمایید. بر Next كلیك كرده و راه انداز MySQL را از لیست برگزینید . بر Next كلیك كنید . پانل ، اطلاعات راه انداز شما را نشان می دهد . بر روی Finish كلیك نمایید .
پس از آنكه منبع داده ایجاد شد . شما به محاوره Select Data source بر می گردید . منبع داده ای را كه ایجاد كرده اید از لیست انتخاب نمایید . و بر Ok كلیك كنید . این امر بایستی یك نسخه مشابه از جدول بر روی پایگاه داده راه دور با تمام داده های شما ایجاد كند .شما بایستی جدول را به پایگاه داده راه دور منتقل نمایید. برای اتصال جدول ، از بخش جداول ، جدول مورد نظر را انتخاب كرده به File|Get External Data | link Tables ، در پنجره link ، فایلهایی از نوع ODBC Database () ، را انتخاب نمایید . پنجره محاوره Data Source ، ظاهر می شود . از بخش Machine Data Source ، نام منبع داده پایگاه داده خود را مجددا انتخاب نمایید . چندین پنجره خواهند آمد اولی شاید از شما بپرسد كدام جدول را می خواهید پیوند دهید ؟ جدول مورد نظر را انتخاب كنید . دیگر ی ممكن است از شما بپرسد كدام ستون بایستی دارای مقادیر یكتا باشد .( كلید اصلی ).اكنون جدول دوم با همان نام ظاهر می شود . اما یك آیكن ” كره “ نشان می دهد كه این جدول راه دور است . شما می توانید با این جدول مانند دیگر جداول كار كنید . ایجاد یك گزارش بر پایه آن یا ایجاد یك فرم كه شما می توانید برای بروز رسانی جدول راه دور استفاده كنید .
اخطار : ممكن است تغییر نام برخی ستونها در جدولی كه می خواهید ارسال كنید ضروری باشد . MySQL
برخی كلمات را برای خود ذخیره ( رزرو ) كرده است . اكثر عبارات SQL ، رزرو شده اند . به عنوان مثال UPDATE یك كلمه رزرو شده است . بنابراین شما نمی توانید از آن به عنوان نام یك ستون استفاده كنید . جز آن ، نام توابع نباید با نام جداول و یا ستونها یكسان باشد .
یك پایگاه داده تهی Access را باز كنید . به File | Get External Data | Link Table بروید . و فایلهایی با نوع ODBC را انتخاب نمایید. بخش Machine Data Source را انتخاب و نام پایگاه داده خود را از لیست برگزینید . بر Ok كلیك نمایید .
محاوره Link Table پدیدار می شود . شما بایستی یك فهرست از نام جداول ببینید . جدولی را كه می خواهید به آن متصل شوید انتخاب و بر Ok كلیك كنید .
محاوره Select Unique Identifier خواهد آمد . شما فهرستی را می بینید . از آن میان ستون یا ستونهایی را كه می خواهید به عنوان كلید اصلی باشند ، مشخص نمایید .
شما بایستی یك جدول راه دور در بخش جداول خود ببینید . نشانه ” كره “ مشخص می كند كه یك جدول به منبع داده راه دور متصل شده است . جدول را باز كنید بایستی داده های خود را در آن ببینید .
اخطار : MS Access 2000 مشكلی دارد كه بر ارسال جداول به پایگاه داده راه دور اثر می گذارد . نام جدول هنگام صدور پایگاه داده ارسال نمی شوند . اگر شما فقط به File | Export | Select ODBC رفته و MyODBC را انتخاب كنید یك خطا ODBC ظاهر خواهد شد. این مشكل توسط مایكرو سافت حل شده ودر ویرایش جدید Access وجود ندارد . البته اتصال به جداولی كه در پایگاه داده راه دور وجود دارند مشكل ایجا نمی كند . در صورتی كه Access شما مشكل داشت می توانید از XP/Access 95/ 97 برای ارسال جداول استفاده نمایید .
انتخاب ها و سازگاری با MyODBC
سازگاری با ODBC
چند نكته برای سازگاركردن داده های شما با ODBC وجود دارد . این نكات از راهنمای MySQL گرفته شده است . مقادیر (“Zero”) مقادیری ویژه اند . اما با استفاده از مقادیر نشان داده شده در جدول می توانید آنها را نگهداری كرده و یا به طور صریح به آنها ارجاع دهید . همچنین می توانید به جای آن از ‘0’ یا
0 استفاده كنید كه برای نوشتن نیز آسانتر است . مقادیر زمان وتاریخ “zero” كه در MyODBC به كار رفته باشند به طور اتوماتیك به NULL در MyODBC 2.50.12 و بالاتر تبدیل می شوند. چون ODBC نمی تواند چنین مقادیری را بكار برد.
MyODBC مقادیر BLOB را به عنوان LONGVARBINARY و مقادیر TEXT را به عنوان LONGVARCHAR تعریف می كند .
تاریخ بخصوص ‘0000-00-00’ در MyODBC می تواند ذخیره شود . هنگامی كه تاریخ ‘0000-00-00’ ، در MyODBC استفاده می شود . به طور خودكار به NULL در MYODBC 2.50 و بالاتر تبدیل می گردد چون ODBC نمی تواند این نوع تاریخ را بكار برد.
توابع رشته ای ، اكنون VARCHAR را بجای CHAR بر می گردانند و نوع ستونهایی كه به عنوان CHAR ذخیره شده اند به صورت VARCHAR تبدیل می شوند. این عمل باعث بهتر شدن عملكرد راه انداز MyODBC می گردد. ولی ممكن است برخی از كلاینت های قدیمی MySQL را دچار مشكل نمایند.آنهایی كه نمی توانند از نوع فیلد VARCHAR بجای نوع فیلد CHAR استفاده كنند .
آموختن انتخابهای MyODBC
MyODBC به كاربر اجازه می دهد تا چندین انتخاب را كه بر رفتار اتصال ODBC موثراند انتخاب نماید. برخی از گزینه ها را شرح می دهیم .
Trace MyODBC
این گزینه واقعه نگاری (LOGGING) از دستورات SQL كه به كارگزار MyODBC ارسال شده اند را فعال می سازد. انتخاب فوق زمانی كه شما با اتصالی دشوار به پایگاه داده ، روبرو هستید مفید است . گزارش در فایل “myodbc.log” و در درایو C:\ نوشته می شود . ( توجه كنید كه شما بایستی MySQL.dll را برای این انتخاب استفاده نمایید و از بكارگیری mysql2.dll خودداری كنید .) اولین باری كه شما یك فایل گزارش ایجاد كردید پرس وجو هایی كه MyODBC به كارگزار MySQL فرستاده اسـت را بررســـی كنـــید . بایســتی بتـــوانید پــرس و جــوها را به وسیــله جستـــجوی رشــته ">mysql_real_query" در فایل MyODBC.log بیابید .
ALLOW BIG results
SQL_BIG_ Result می تواند با GROUP BY و DISTINICT به كار رود تا به بهینه ساز گفته شود مجموعه پاسخ می تواند سطرهای بسیاری داشته باشد . در این حالت ، MySQL مسقیما جداول موقت
را در صورت نیاز بكار برد . MySQL در این حالت ، ترجیح می دهد تا یك مرتب سازی انجام دهد به جای آنكه یك جدول موقت بر روی عناصر GROUP BY انجام دهد .
Don’t Prompt on Connect
هنگامی كه یك اتصال ODBC ایجاد می شود از كاربر نخواهد خواست تا به صورت دستی ، نام كاربری و رمز عبور را وارد نماید ( واحتمالا سایر اطلاعات مورد نیاز )
سایر گزینه ها از این قرارند :
Ignore # in #.table.
Use manager cursors (experimental).
Don't use setlocale.
Pad CHAR to full length.
Return table names in SQLDescribeCol.
Use compressed protocol.
Ignore space after function names.
Don't optimize column width.
Force use of named pipes.
Change BIGINT columns to INT.
No catalog (experimental).
Read options from C:\my.cnf.
اجرای ایمن اسكریپت های PHP
استفاده از مخفی كننده اسكریپت
برای اتصال به یك پایگاه داده نیاز است كه رمز های عبور آن در برخی قسمتهای اسكریپت وجود داشته باشد . اسكریپت های دیگر شما ممكن است اطلاعات حساس خود را داشته باشند . این اطلاعات اگر شما اسكریپت های PHP خود را پنهان نكنید ، ممكن است افشا شوند . حفاظت كردن اسكریپتهایتان از چشمهای كنجكاو “wrapping” گفته می شود . هنگامی كه شما یك اسكریپت را می پوشانید توسط اسكریپت دیگری كه برنامه اصلی شما را پنهان كرده و آزمایشهای ایمنی را برای حصول اطمینان از دستیابی مجاز انجام می دهد ، فراخوانی می گردد .
دیگر كاربران رمز عبورها را چگونه می بینند ؟
دو راه وجود دارد :
1 )اگر شما به اندازه كافی دقت به خرج ندهید و رمز عبورهای خود را در ریشه اصلی وب تان و در درون فایلی كه توسط مفسرPHP تجزیه و تحلیل نمی شود، قرار دهید (مانند http://www.mysite.com/pass.txt ) هر كسی می تواند آنرا دریافت كند و محتویاتش را بدست آورد . این امر به شدت نادرست است .
2 ) اگر شما رمز عبورهای خود را در فایلی قرار دهید كه می تواند توسط وب سرور به طور مستقیم یا بوسیله دیگر كاربرانی كه در گروه شما و در همان سرور هستند ، خوانده شود .بكار گیری این روش بجز توسط افرادی كه می توانند یك وب سرور اختصاصی داشته باشند توصیه نمی شود .
اگر شما رمز عبور ها را در یك فایل كه توسط دیگر كاربران قابل خواندن است ، قرار دهید آنها می توانند بوسیله FTP ویا Telnet به شاخه شما رفته و فایلها را مسقیما بخوانند . برخی میزبانهای وب از این رفتار توسط “chrooting” جلوگیری می كنند .(“usr/home/username” را هنگامی كه شما وارد می شوید برابر با “/” می كند . Chroot دستور UNIX برای تغییر ریشه است .) اما بسیاری از میزبانها در مورد فایلهایی كه صرفا اجازه خواندن آن به وب سرور داده شده است ، اجازه دسترسی را به دیگر كاربران نمی دهند. در این حالت نیز دیگران می توانند اسكریپتی بنویسند كه با مشخه كاربری “nobody” كار كند . و این اسكریپت می تواند به تمام فایلهایی كه در سرور وجود دارد و صرفا توسط آن خوانده می شود ، دسترسی پیدا كند.
Wrapping چگونه از این امر جلوگیری می كند ؟
Wrapping نام كاربری كسی كه به فایل می تواند دسترسی داشته باشد را برابر نام كاربری شما قرار می دهد . یك مخفی كننده ایمن ، چندین بررسی و آزمون امنیتی بر روی درخواستها ، قیل از اجرای آنها انجام می دهد .
Php-cgiwrap چیست ؟
یك اسكریپت مخفی كننده برای PHP است . cgiwrap یك اسكریپت مخفی كننده برای برنامه های Perl است و php-cgiwrap نسخه مربوط به PHP آنست كه توسط PairNetworks تهیه شده و صرفا بر روی سرورهای آنان كار می كند . اگر از میزبان دیگری استفاده می كنید روشهای دیگری برای مخفی كردن وجود دارد كه می توانید از آنها استفاده كنید .
پوشش شفاف
آخرین بحث ما درباره PHP مربوط به پوشش شفاف برای ایمنی صفحات است . برخی میزبانان وب پوشش شفاف لاینفكی برای صفحات PHP ارایه كرده اند . اگر صفحات از پسوند .php3 استفاده نمایند و در این صورت شما اصلا متوجه نخواهید شد كه صفحات شما از پوشش استفاده می كنند اما نكته مهم آنست كه از فراهم كننده خدمات میزبانی وب خود در این باره پرسش نمایید .
راههای مختلفی برای اجرای این كار وجود دارد . شما می توانید از mod-rewrite استفاده كنید تا به طور خودكار تمام درخواستهای PHP از طریق اسكریپت مخفی كننده ارسال شود . یا از خدمات سرور Apache suExec استفاده نمایید . برای اطلاعات بیشتر از نشانی http://www.apache.org/docs/suexec.htm استفاده كنید .
اخطار : اگر میزبان وب شما راهی برای اجرای ایمن اسكریپت هایتان پیش بینی نكرده ، و راهی برای مخفی كردن رمز عبور ها از دید كاربران كنجكاو ندارید. بایستی به میزبانی مراجعه كنید كه بیشتر نسبت به امنیت كاربران اهمیت قایل است .
مهدی علیدوست . زمستان 1380
مراجع :
http://www.php.net/docs.php
http://www.phphelp.com
0 نظر
هیچ نظری وجود ندارد. اولین نفر برای نظر دهی به این مقاله باشید!