بخشی از مقاله
طراحی و پیاده سازی وب سایت فروشگاه رسانه های صوتی و تصویری به صورت پویا
فصل اول
مقدمه
1-1: عنوان تحقیق
طراحی و پیاده سازی وب سایت فروشگاه رسانه های صوتی و تصویری به صورت پویا
نیاز اساتید به داشتن سایت های پویا، ما را بر آن داشت تا تحقیقات خود را در زمینه آشنایی با زبان های برنامه نویسی آغاز کنیم. پس از انجام بررسی های لازم و با توجه به قابلیت های زبان برنامه نویسی PHP، به خصوص ارتباط با سرویس دهنده MySQL و استفاده از وب سرور Apache، موجب شد تا زبان PHP و بانک اطلاعاتی MySQL را برای پیاده سازی این سایت انتخاب کنیم.
2-1 : مکان تحقیق
دانشگاه امام رضا (ع) از سال 1378 با تئجه به امکانات گسترده آستان قدس رضوی و سازمان تربیت بدنی و با مجوز شورای گسترش، وزارت علوم، تحقیقات و فن آوری، مبادرت به پذیرش دانشجو در دو رشته کتابداری و تربیت بدنی، از طریق کنکور سراسری نمود.
در سال 1380 رشته مترجمی زبان انگلیسی، در 1381 دو رشته مهندسی کامپیوتر و نیز کارشناسی حسابداری و از تیرماه 1384 رشته مدیریت بازرگانی، به جمع رشته های دانشگاه افزوده شد.
لازم به توضیح است که در بین 48 موسسه آموزش عالی و غیر انتفاعی، امام رضا(ع) از نظر سرانه فضای آموزشی، فضای رفاهی، کتب و نشریات و مرکز رایانه، مقام بالایی را در کل کشور دارد.
فصل دوم
نصب آپاچي، پي- اچ- پي، مای-اس-کیو-ال
نصب آپاچی ، پی-اچ-پی و مای-اس-کیو-ال
2-1: نصب وب سرور آپاچی
2-1-1 : دليل استفاده از وب سرور آپاچی
حقيقت اين است كه وب سرور آپاچی به يكي از عوامل موفقيت وب تبديل شده است. با وجودي كه اين ادعا ممكن است براي عدهاي ناخوشايند باشد، اما دليل زيادي براي اثبات اين واقعيت وجود دارد. بررسيهاي اخير حاكي از آن است كه بيشترين وب سايتهاي موجود در حال حاضر از وب سرور آپاچی به عنوان سرويس دهنده وب استفاده ميكنند. اين دلايل را ميتوان علت اين موفقيت برشمرد:
• آپاچی رايگان است.
• كد منبع آپاچی به رايگان در دسترس است. ( به اين گونه نرمافزارها اصطلاحاً "كدباز" يا open source گفته ميشود.)
• آپاچی بر روي مجموعهاي بسيار متنوعي از سيستمهاي عامل قابل استفاده است.
• آپاچی دائماً در حال توسعه و افزايش قابليتهاي جديد است.
• آپاچی بسيار توانمند بوده و به واسطه طراحي ماجولار، به راحتي قابل توسعه است.
2-1-2 : نصب برنامه آپاچی
با وجودي كه وب سروي آپاچی كاملا بر مشخصات پروتكل HTTP منطبق است، فرآيند نصب آن به سادگي نصب هر برنامه كاربردي ديگر است. از آن جا كه آپاچی برنامه اي از نوع سرور است، پس از نصب آن لازم است ملاحظاتي را در ارتباط با امنيت سيستم ميزبان مد نظر قرار دهيم.
نصب آپاچی تحت سيستم عامل ويندوز
براي نصب آپاچی تحت سيستم عامل ويندوز، ابتدا لازم است فايل نصب برنام مربوطه را در اختيار داشته باشيد. نام كامل اين فايل به قرار زير است:
apache-2.0.*-win32-x86-no-ssl.msi
با وجودي كه نصب وب سرور آپاچی تحت سيستم عامل ويندوز 9x يا ME امكان پذير است، توصيه ميكنيم از انجام آن صرفنظر كنيد. در مقايسه با اين دو محيط، ويندوزNt, 2000 و Xp محيط پايدارتر و ايمن تر براي تمامي برنامههاي سرور، از جمله وب سرور آپاچی محسوب ميشوند. دستورالعملهايي كه در ادامه ملاحظه ميكنيد به نصب اين وب سرور تحت سيستم عاملي از نوع windows 2000 professional مربوط است.
اين فايل را در يك فهرست موقت قرار داده و سپس اين دستورالعملها را به ترتيب جهت نصب آپاچی اجرا كنيد:
1- با عنوان مدير سيستم ( اصطلاحا Administrator) وارد سيستم شويد.
2- پس از يافتن فايل بر روي آن دابل كليك كنيد تا فرآيند نصب وب سرور آپاچی عملا آغاز شود.
3- همان گونه كه در شكل 2-1 مشاهده ميكنيد، برنامه نصب وب سرور آپاچی مانند هر برنامه نصب ديگري تحت سيستم عامل ويندوز با بهره گير از يك ويزارد قالب بندي شده است.
شکل 2-1
4- دكمه Next را جهت ادامه عمليات كليك كنيد. پس از مطالعه سند License Agreement كه شرايط استفاده از نرم افزار را مشخص ميكند آن رامورد تاييد قرار داده و در ادامه بار ديگر دكمه Next را كليك كنيد.
5- با اين اقدام كادر محاوره اي ديگري ظاهر ميشود و اطلاعات بسيار مفيدي را در باره استفاده از وب سرور آپاچی تحت سيستم عامل ويندوز نمايش ميدهد. اين اطلاعات به ويژه براي مبتديان با ارزش است.
6- در كادر محاوره اي بعدي، كه شكل 2-2 نمايي از آن را نشان ميدهد لازم است اطلاعات مربوط به سرور را مشخص كنيد. منبع اين اطلاعات همان سيستم عامل ميزباني است كه وب سرور را
بر روي آن نصب ميكنيد. معمولا مقادير پيش فرض در فيلدهاي متني موجود دراين كادر محاوره اي مناسب هستند. با اين حال پيش از كليك مجدد دكمه Next حتما اين مقادير را مورد بازبيني قرار داده و در صورت نياز آنها را با مقادير مناسب تري جايگزين كنيد.
شکل 2-2
در اين كادر محاوره اي فيلد متني Network Domain نام حوزه ميزبان وب سرور آپاچی رامشخص ميكند. از آن جا كه وب سرور را در قالب يك شبكه داخلي مورد استفاده قرار خواهيم داد، به جای مشخصههای .com، .org، یا سایر حوزههای سطح بالا از مشخصه local استفاده كنيد. در فيلد server name بايد نام كامپيوتر ميزبان را به طور كامل يعني با مشخص كردن نام حوزه مربوطه وارد كنيد. دو گزينه موجود در پايين اين كادر محاوره اي نحوه اجراي وب سرور را مشخص ميكنند. توصيه ميكنيم گزينه پيش فرض for all users, on port 80, as a sevice--Recommended را به عنوان گزينه منتخب قبول كنيد. در نهايت دكمه Next را پس از تعيين مقادير فيلدها و انتخاب گزينه مورد نظر كليك كنيد. هر زمان كه مايل باشيد ميتوانيد تنظيمات فوق را با ويرايش فايلهاي مربوط به پيكربندي آپاچی تغيير دهيد.
7- كادر محاوره اي بعد امكاناتي را در ارتباط با تعيين موقعيت نصب برنامه آپاچی بر رويهارد ديسك و مولفههاي نرم افزاري مورد نظر در اختيار قرار ميدهد. برنامه آپاچی به طور پيش فرض در موقعيت C:\ program files\ apache group نصب ميشود. (بسته به شرايط، ممكن است درايو ميزبان با آن چه كه در اين جا مشاهده ميكنيد متفاوت باشد). همچنين بنا به پيش فرض علاوه بر فايلهاي اجرايي برنامه آپاچی مستندات آن نيز بر رويهارد ديسك نصب ميشود. با اين وجود از نصب هدرها و كتابخانهها به طور پيش فرض خودداری به عمل می آید. دكمه Next را بار ديگر به منظور ادامه عمليات كليك كنيد.
8- با اين اقدام بار ديگر اين شانس را خواهيد داشت كه موقعيت نصب برنامه آپاچی را بر رويهارد ديسك دستخوش تغيير كنيد موقعيت پيش فرض را پذيرفته و دكمه Next را جهت ادامه عمليات كليك كنيد.
9- كادر محاوره اي حاصل، شامل تمامي گزينههايي است كه قبلا آنها را براي نصب برنامه آپاچی انتخاب كرده ايد. به عنوان آخرين شانس ميتوانيد مقادير اين گزينهها را اصلاح كنيد. براي اين كار كافي است دكمه Back را كليك كرده و مقادیر گزينههاي مورد نظر را تغيير دهيد. در غير اين صورت دكمه install را به منظور آغاز فرآيند نصب برنامه آپاچی كليك كنيد.
10- پس از تكميل فرآيند نصب كادر محاوره اي ديگري نمايان ميشود. براي تكميل كار دكمه Finish را از اين كادر محاوره اي كليك كنيد.
پس از نصب وب سرور آپاچی بر روي كامپيوتر ميزبان، برنامه سرور به طور خودكار راه اندازي ميشود. براي اطلاع از اين که برنامه سرور در حال اجراست يا خير، كافي است آيكن آپاچی service monitor از بخش system tray واقع در نوار وظيفه رامورد توجه قرار دهيد. شکل 2-3 نمایی از این آیکن را نشان می دهد.
شکل 2-3
چنان چه اين آيكن حاوي يك علامت پيكان سبز رنگ باشد برنامه سرور در حال اجراست. اما در صورتي كه آيكن مزبور حاوي يك دايره توپر قرمز رنگ باشد، برنامه سرور در حال اجرا نيست. براي مشاهده پنجره آپاچی service monitor كافي است روي آيكن مذكور دوبار كليك كنيد.
2-1-3 : اطمينان از صحت نصب برنامه آپاچی
پس از نصب و راه اندازي برنامه آپاچی به منظور اطمينان از صحت عمليات به سادگي ميتوانيد مرورگر اينترنت خود را باز كرده و نام ماشين ميزبان وب سرور آپاچی را در فيلد آدرس آن بنويسيد. بر روي ماشين ميزبان وب سرور آپاچی كافي است آدرس زير را در فيلد آدرس مرور گر اينترنت وارد كنيد:
http://localhost
با اين اقدام بايد نتيجه اي شبيه به شكل 2-4 را مشاهده كنيد. در صورتي كه با استفاده از كامپيوتر ديگري به ماشين ميزبان وب سرور آپاچی متصل شده ايد. كافي است عبارت localhost را در آدرس فوق با نام كامل آن اصطلاحا fully qualified name يا آدرس IP مربوطه جايگزين كنيد.
شکل 2-4
2-2 : نصب پی-اچ-پی
2-2-1 : اهميت زبان اسكريپت نويسي پی-اچ-پی
پروتكل HTTP مكانيزمي براي تحويل محتوا به شيوه غير پوياست. اين مكانيزم بسيار ساده است به طوري كه برنامه كلاينت صفحه اي را درخواست كرده و برنامه سرور آن را در اختيار قرار ميدهد. با پيشرفت اسكريپت نويسي در سمت سرور كه البته فراتر از مشخصات پروتكل HTTP است، توسعه دهندگان برنامههاي كاربردي وب كنترل بيشتري را بر روي محتوا در اختيار داشته و قادرند در خواستهاي دريافتي از برنامههاي كلاينت مختلف را در ارتباط با يك صفحه واحد به طور مجزا و متنوع پاسخ دهند.
Hypertext Preprocessor يا به اختصار پی-اچ-پی عنوان يك زبان اسكريپت نويسي همه منظور بوده و داراي ويژگيهاي زير است:
• پی-اچ-پی كد باز است
• اسكريپتهاي نوشته شده به زبان پی-اچ-پی پيش از ارسال صفحه مورد نظر به برنامه كلاينت روي ماشين سرور به اجرا در ميآيند.
• ساختار و دستور زبان پی-اچ-پی مشابه زبان برنامه نويسي پرل است.
• پی-اچ-پی داراي قابليتهاي بسيار توانمندي در زمينه پشتيباني از پروتكل HTTP است.
• اسكريپتهاي نوشته شده به زبان پی-اچ-پی را ميتوان در فايل واحدي به همراه كدهاي اچ-تی-ام-ال مستقر كرد.
• پی-اچ-پی داراي ماجولهايي براي ارتباط با ساير تكنولوژيها از جمله تكنولوژي MySQL است.
اهميت پی-اچ-پی در اين حقيقت نهفته است كه اسكريپتهاي نوشته شده به اين زبان پيش از تحویل دادهها به برنامه كلاينتي كه آنها را مورد درخواست قرار داده است به اجرا در ميآيند. چنان كه پيش از اين نيز اشاره شد، هدف از ايجاد پی-اچ-پی تحويل محتواي پويا از طريق پروتكل HTTP بوده است. اين هدف به واسطه مكانيزمهاي سيستم پی-اچ-پی تامين ميشود.
كد منبع پی-اچ-پی نيز به مانند وب سرور Apache به صورت رايگان قابل دستيابي است. در واقع شرايط سختي براي بهره برداري از كد منبع آن وضع نشده است. زبان پی-اچ-پی از پشتيباني جامعه كاربران نرم افزارهاي كد باز و ساير تكنولوژيها بهره ميبرد. وب سايت مربوط به اين زبان اسكريپت نويسي به آدرس http://www.PHP.net به لحاظ توزيع نرم افزار و تدوين مستندات مربوطه، پشتيباني خوبي را به عمل ميآورد.
2-2-2: نصب پی-اچ-پی
نصب پی-اچ-پی تحت سيستم عامل ويندوز
با وجودي كه فرآيند نصب پی-اچ-پی تحت سيستم عامل ويندوز به صورت دستي انجام ميشود. اما انجام آن بسيار ساده است. براي اين منظور كافي است آرشيو فايلهاي اجرايي پی-اچ-پی را كه در قالب ZIP منتشر ميشود از وب سايت مربوطه بارگذاري كرده و آن را در موقعيت دلخواهي از فايل سيستم باز كنيد و در انتها فايلهاي به خصوصي از اين آرشيو را به موقعيتهاي از پيش تعيين شده منتقل كنيد.
پی-اچ-پی نيز به مانند وب سرور Apache تحت نسخههاي مختلفي از سيستم عامل ويندوز قابل نصب و بهره برداري است. با اين وجود به لحاظ پايداري و مسايل امنيتي توصيه ميكنيم براي اين كار از نسخه سرور اين سيستم عامل از جمله Windows 2000 Pro , Windows NT یا Windows XP Pro استفاده كنيد.
از صفحه اصلي وب سايت رسمي پی-اچ-پی پيوند Download را كليك كرده و سپس در صفحه حاصل، ارشيو تحت ويندوز پی-اچ-پی را به منظور بارگذاري بر روي كامپيوتر خود انتخاب كنيد.
با استفاده از يك برنامه كمكي فشرده سازي، هم چون Winzip فايل آرشيوبارگذاري شده را در موقعيتي از فايل سيستم كه مايل به نصب پی-اچ-پی هستيد باز كنيد. براي مثال ممكن است مايل باشيد فايل آرشيو را در فهرست ريشه سيستم فايل باز كنيد. مطمئن شويد كه طي اين فرآيند تمامي فهرستها مطابق انتظار ايجاد شده باشند.
پس از باز كردن فايل آرشيو به شيوه فوق فهرستي با عنوان php-version-win32 ايجاد ميشود. متغير version در نام فهرست مذكور اشاره به شماره ويرايش پی-اچ-پی دارد.
جهت تكميل فرآيند نصب پی-اچ-پی لازم است اقدامات زير را انجام دهيد:
1- ابتدا يك كپي پشتيبان از فايلphp.ini-dist ( كه اكنون در فهرست php-version-win32 واقع است) تهيه كرده و سپس نام آن را به php-ini تغيير دهيد. فايل حاصل را با توجه به نوع سيستم عامل ويندوز مورد استفاده در فهرست winnt یا windows كپي كنيد.
2- فايل پی-اچ-پی4.dll راكه آن هم در فهرست php-version-wind32 واقع است، بسته به نوع سيستم عامل ويندوز مورد استفاده در فهرست windows\system يا winnt\system كپي كنيد.
3- فايل پی-اچ-پی.ini را مورد ويرايش قرار دهيد و مسير تعيين شده توسط پارامتر extension-dir را به فهرست ميزبان پی-اچ-پی يعني php-version-win32 تغير دهيد. براي مثال در صورتي كه فهرست php-4.2.2-win32 فهرست ميزبان پی-اچ-پی باشد، اين تغيير را بايد به صورت زير
انجام دهيد:
extension_dir = c:\php-4.2.2-win32.
بهره گيري از پی-اچ-پی به همراه وب سرور Apache
براي اين كه وب سرور Apache را وادار به سرويس دهي به پی-اچ-پی كنيد، لازم است اقداماتي را انجام دهيد. نكته مهم دراين رابطه آن است كه Apache بايد قادر به تشخيص اسناد پی-اچ-پی بوده و آنها را به مفسري كه قادر به تفسير اين گونه اسناد است، هدايت كند. در قسمتهاي
بعدي نحوه ايجاد اين هماهنگي را تحت سيستم عامل ويندوز مورد بررسي قرار ميدهيم.
2-2-3 : اطمينان از صحت عملكرد پی-اچ-پی
جهت اطمينان از صحت عملكرد پی-اچ-پی كافي است برنامه اسكريپت بسيار كوچكي را كه به زبان پی-اچ-پی نوشته شده است از وب سرور Apache درخواست كنيم. براي اين منظور بايد فايل متني را در زير فهرستي از فهرست ميزبان Apache كه محل نگهداري فايلهاي اچ-تی-ام-ال است، ايجاد كنيد. موقعيت اين زير فهرست، كه اصطلاحا به Document Root شهرت دارد، با توجه به سيستم عامل ميزبان به اين قرار است:
• در صورتي كه وب سرور Apache را تحت سيستم عامل ويندوز نصب كرده ايد، فهرست مزبور در موقعيت C:\Program Files \Apache Group\apache2\htdocs واقع خواهد بود.
برنامه اسكريپ كوتاه بعد را در قالب يك فايل متن ساده وارد كرده و آن را به صورت test . php نامگذاری کنید: <?PHP
PHPinfo();
?>
اکنون اماده ارزیابی عملکرد پیکربندی Apache و PHP هستیم. برای این کار، برنامه مرورگر اینترنت موجود بر روی ماشین میزبانApache را باز كرده و آدرس http://localhost/test.PHP را در فیلد آدرس آن وارد کنید. با این اقدام با آنچه در شکل 2-5 می بینید رو به رو می شوید.
شکل 2-5
2-3 نصب MYSQL
2-3-1 : مقدمهاي بر MYSQL
سرگذشت MYSQL بسيار جالب توجه است. پديد آورندگان اين تكنولوژي ابتدا كار خود را با بهرهگيري از بانك اطلاعاتي ديگري با عنوان mSQL آغاز كرده و سعي داشتند تا با روتينهاي پر سرعت و سطح پاييني که خود اقدام به توسعه آنها كرده بودند به اين بانك اطلاعاتي متصل شده و دادههاي موجود در آن را مورد دستيابي و استفاده قرار دهند. با اين وجود پس از ارزيابيهاي متعدد به اين نتيجه رسيدند كه mSQL براي هدفي كه آنها دنبال ميكردند از سرعت مناسبي برخوردار نيست. از اين رو شروع به توسعه رابطهاي جديدي براي دستيابي به بانك اطلاعاتي mSQL كرده و در حد امكان تلاش كردند تا رابط برنامهنويسي كاربرديApplication Programming Interface (اصطلاحاً API )، حاصل شباهت بسياري به رابط موجود در mSQL داشته باشد.
نام فهرست اصلي و همچنين اسامي بسياري از توابع كتابخانهاي كه اين برنامهنويسان در ابتدا توسعه دادند اغلب با پيشوند “MY” همراه بود (ضمناً دختر يكي از ايشان نيز MY نام داشت. اما اين كه دقيقاً چه كسي پيشوند MY را براي نام اين بانك اطلاعاتي انتخاب كرد نامشخص است.)
امروزه MYSQL به يك رقيب بسيار جدي براي بانكهاي اطلاعاتي تجاري تراز اول از جمله سلطان بيگفتگوي دنياي بانكهاي اطلاعاتي، يعني Oracle تبديل شده است. در حقيقت ردهبندي اخير بانكهاي اطلاعاتي موجود حاكي از آن است كه نسخه شماره 4x از بانك اطلاعاتي MYSQL بسيار كارآمدتر شده و ويژگيهاي جديدي از مجله InnoDB (با عنوان قبلي Innobase) كه براي پشتيباني از مكانيرم ACID (نام اختصاري براي اشاره به مجموع ويژگيهاي Atomicity، Consistency، Isolation و Durability ) پياده سازي شده و از لحاظ كارآيي و قابليتها آن را به رقيب سرسختي براي بانكهاي اطلاعاتي تجاري تبديل كرده است.
بانك اطلاعاتيMYSQL كد باز بوده و به رايگان ميتوان آن را مورد دستيابي قرار داد. به واسطه طراحي ماجولار و رابط برنامهنويسي كاربردي توانمند آن، ميتوان بانكهاي اطلاعاتي قابل اعتمادي را با كمترين هزينه ايجاد كرده و به بهرهبرداري رساند.
2-3-2 : نصب MYSQL
نصب MySQL تحت سيستم عامل ويندوز
نصب نسخه اجراييMYSQL تحت سيستم عامل ويندوز بسيار ساده است اين عمل از طريق يك برنامه نصب كننده (با عنوان InstallShield) انجام ميپذيرد. براي دستيابي به اين برنامه ميتوانيد به وب سايت MYSQL مراجعه كنيد.
فايل فشرده شده در قالب ZIP، شامل برنامه نصب كننده را، پس از بارگذاري از وب سايت مربوطه، در يك فهرست موقت باز كنيد و فايل اجرايي setup.exe را به اجرا در آوريد. اين اقدام موجب ر
اه اندازي برنامه نصب كننده MYSQL خواهد شد.
در ادامه جزيیات فرآيند نصب را در قالب چند مرحله بيان ميكنيم.
1- اولين كادر محاوره اي حاصل از اجراي فايل setup.exe، اطلاعاتي را درباره شماره ويرايش نسخهای از بانك اطلاعاتي MYSOL كه در صدد نصب آن هستيد نمايش ميدهد. دكمه Next را براي مشاهده كادر محاوره اي بعدي كليك كنيد.
2- اقدام اخير از مرحله قبل موجب نمايش كادر محاوره اي بعدی ميشود. اين كادر محاوره اي شامل اطلاعاتي درباره نصب MYSOL، از جمله اطلاعات مفيدي درباره ايجاد فايلي از نوع CNF يا INI براي استفاده ماشين ميزبان است. (هر دو نوع فايل فوق فايلهايي براي پيكربندي نرم افزار محسوب ميشوند. CNF كوتاه شدهConfiguration و INI كوتاه شده Initialization است.) اين اطلاعات هنگامي مفيد است كه بخواهد MYQL را در فهرستي به غير از فهرست C:\mysql نصب كرده يا مايل باشيد تا برنامه سرور MySQL را به عنوان يكي از سرويسهاي سيستم عامل ميزبان (ويندوز 2000, NT يا XP) اجرا كنيد. اطلاعات موجود در اين كادر محاوره اي را ميتوانيد به منظور مراجعات بعدي در قالب يك فايل متني ذخيره كنيد بار ديگر, دكمه Next را جهت ادامه روند نصب MYSQL و نمايش كادر محاوره اي بعدي كليك كنيد.
3- کادر محاوره ای بعدی با عنوان Choose Destination Location، امکان تعیین فهرست میزبان MYSQL را فراهم می کند.
4- کادر محاوره ای بعدی با عنوان Setup Type امکان تعیین شیوه نصب MYSQL را در اختیار می گذارد. برای این منظور سه شیوه Typical، Compact و Costom پیش بینی شده است.توصیه می شود در این مرحله از شیوه Typical استفاده کنیم.دکمه Next را جهت ادامه عملیات کلیک کنید.
5- با اقدام مذکور برنامه نصب کننده MYSQL کلیه فایلهای مورد نیاز را در فهرستی که پیش از این در مرحله 3 آن را به عنوان فهرست میزبان مشخص کردید، کپی کرده و پس از تکمیل فرآیند نصب MYSQL، کادر محاوره ای با عنوان Setup Complete را نشان می دهد.
یکی از برنامههایی که به همراه MYSQL نصب می شود، WinMYSQLadmin نام دارد. این برنامه دارای یک رابط گرافیکی است که امکانات مورد نیاز جهت بررسی MYSQL را در اختیار می گذارد. نمایی از این کادر محاوره ای را در شکل 2-6 می بینید.
شکل 2-6
. با استفاده از برنامه مدیریت فایل Windows Explorer، برنامه WinMYSQLadmin را در زیر فهرست bin از فهرست میزبان MYSQL واقع است به اجرا در آورید. با کلیک بر روی عناوین مختلف موجود در قسمت بالای این کادر محاوره ای، از جمله Environment، Start Check و غیره، می توان اطلاعات مفیدی را مشاهده کرد.
فصل سوم
نگاه کلی بر زبانهای برنامه نویسی اچ-تی-ام-ال ، جاوا اسکریپت و پی-اچ-پی
نگاه کلی بر زبانهای برنامه نویسی اچ-تی-ام-ال ، جاوا اسکریپت و پی-اچ-پی
3-1: نگاه کلی بر دستورات اچ-تی-ام-ال
آشنایی با اچ-تی-ام-ال برای ساخت صفحات وب، حتی با پی-اج-پی از ضروریات است. وقتی صفحات وب خود را با استفاده از ویژوال استودیو نت و با هر زبان برنامه سازی از جمله ویژوال بیسیک نت می نویسید، کد اچ-تی-ام-ال متناظر آن توسط سیستم تولید می شود. با تغییر در کد اچ-تی-ام-ال می توانید صفحه وب خود را تغییر دهید. به همین دلیل در این بخش مروری
بر اچ-تی-ام-ال خواهیم داشت.
3-1-1: شکل کلی دستورات
دستورات اچ-تی-ام-ال چگونگی نمایش صفحه وب در مرورگر را مشخص می کنند. تقریبا هر دستور اچ-تی-ام-ال دارای یک علامت شروع و یک علامت پایان است که در داخل < > قرار می گیرند: اگر دستور اچ-تی-ام-ال را با tag نشان دهیم، هر دستور به صورت زیر بیان می شود.
<tag> شروع
…
</tag>پایان
البته بعضی از دستورات اچ-تی-ام-ال به </tag> نیاز ندارند.
هر برنامه اچ-تی-ام-ال با دستور <html> شروع و به </html> ختم می شود. علاوه بر این، هر برنامه اچ-تی-ام-ال دارای دو بخش عنوان و بدنه است. بخش عنوان شامل اطلاعات مکمل در مورد سند اچ-تی-ام-ال است و مثلا شامل عنوانی است که در مرورگر ضاهر می شود. این بخش با <head> شروع و به </head> ختم می شود. عنوان صفحه با <title> شروع و به </title> ختم می شود. بخش بدنه حاوی دستورالعملهای تولید صفحه است که با <body> شروع و به </body> ختم می شود. با توجه به این توضیحات، شکل کلی برنامه اچ-تی-ام-ال را می توان مانند شکل زیر بیان کرد.
<html>
<head>
<title>عنوان صفحه </title>
…سایر توضیحات …
</head>
<body>
…دستورات ایجاد کننده صفحه …
</body>
</html>
تعیین تیترها و پاراگراف بندی
برای تعیین تیترها از دستورات <h1> تا <h6> استفاده می شود. تیترهای بزرگ با <h1> و تیترهای کوچک با <h2>، <h3>، ... و <h6> مشخص می شوند:
<h1> welcome to html </h1>
برای پاراگراف بندی از دستور <p> استفاده می شود:
</p> پاراگراف <p>
تعیین نوع متن، توضیحات و خط افقی
از <b> برای پر رنگ کردن متن، <i> برای ایتالیک کردن متن و برای توضیحات از علائم <!-- و <-- استفاده می شود. اگر بخواهید به سطر جدیدی بروید از <br> استفاده کنید. این دستور فاقد بخش انتهایی، یعنی </br> است. برای رسم خط افقی از دستور <hr> استفاده می شود. این دستور نیز فاقد بخش انتهایی، یعنی </hr> است.
ایجاد پیوند و انتقال تصویر صفحه وب
برای ایجاد پیوند از دستور <a> استفاده می شود:
<a href = “ url ”> sample </a>
برای انتقال تصویر به صفحه وب از دستور img استفاده می شود:
<img src = " File name ">
دو صفت مهم آن width و height می باشند که به ترتیب، پهنا و ارتفاع تصویر را مشخص می کنند. صفت border ضخامت حاشیه دور تصویر را مشخص می نماید :
<img src= arm.gif width = “100“ height = “100” border = “1”>
3-1-2 : تعریف جدول
با استفاده از جداول می توان اطلاعات را سازمان دهی کرد. جدولها در اچ-تی-ام-ال از قدرتهای خاصی برخوردارند. در اچ-تی-ام-ال جدول با چهار دستور مشخص می شود. جدولی که با <table> و </table> مشخص می گردد حاوی یک یا چند سطر است که با <tr> و </tr> تعیین می شوند. هر سطر حاوی خانههایی است که دارای عنوان است و با <th> و </th> مشخص می گردد و یا حاوی دادههایی است که با <td> و </td> مشخص می گردد.
همان طور که گفته شد هر جدول حاوی سطرهایی است که در بین <tr> و </tr> قرار دارند. تعداد سطرهای جدول با تعداد دستور <tr> مشخص می گردد. تعداد ستونهای جدول با حداکثر تعداد خانههای جدول تعیین می گردد که با <td> و </td> مشخص می شود و یا با استفاده از عناوین تعیین می گردد که با <th> و </th> در جدول مشخص می شود. البته می توان با صفت cols که د راچ-تی-ام-ال 4 وجود دارد، تعداد ستونهای جدول را مشخص کرد. این صفت مربوط به دستور <table> است. مثلا دستور <table border = “1” cols = “2” > تعداد ستونها را 2 تعیین می کند.
عناوین جدول با دستور <th> تعیین می شوند. خانههای واقعی جدول با دستور <td> مشخص می شوند. دستورات <td> و <th> می توانند شامل هر تعدادی از دادهها و از هر نوعی باشند. مثلا می توان یک پاراگراف را همراه با یک تصویر در یک خانه جدول قرار داد. جدول می تواند حاوی یک کپشن باشد که با <caption> و </caption> مشخص می گردد. کپشن در بالا یا پایین جدول قرار می گیرد و معمولا محتویات جدول را مشخص می کند.
صفات rowspan و colspan
با استفاده از صفات rowspan و colspan در عناصر جدول، می توان خانههایی از جدول را ایجاد کرد که شامل چند سطر یا ستون باشد. صفت rowspan مشخص می کند که یک خانه جدول می تواند به اندازه چند سطر ارتفاع داشته باشد. این صفت برای تعریف جداولی که خانههای آن ارتفاعهای متفاوتی دارند به کار می رود. تعداد سطرها با یک مقدار عددی مشخص می شود. صفت colspan مشخص می کند که عرض هر خانه چند ستون می تواند باشد.
این صفت برای تولید جداولی به کا رمی رود که خانههای آن پهنای متفاوتی دارند. تعداد ستونها با یک عدد مشخص می شود.
جدول و صفحه آرایی
استفاده از جدول برای صفحه آرایی مستلزم بکارگیری صفت width است. صفت width مربوط به دستور <table> عرض جدول را با پیکسل یا با درصد مثل 80% مشخص می کند. همچنین، هر پیکسل مربوط به خانههای جدول را می توان با استفاده از صفت width مربوط به
دستورات <td> یا <th> مقدار داد.
هنگام ایجاد سلولهای خالی جدول، خوب است که از <br> برای رد کردن سطر یا فضای خالی غیر قابل شکستن ( ) در خانه جدول استفاده کرد تا نظم عمومی آن خراب نشود.
جدولها می توانند با استفاده از پس زمینه صفحه آرایی دقیقتری ایجاد کنند. در دستور <body> صفتی به نام background وجود دارد که می تواند یک فایل تصویر را به عنوان زمینه صفحه در نظر بگیرد. با استفاده از این خاصیت می توان زمینه جدول را تعیین و سپس جدول را تشکیل داد.
3-1-3 : فرمها و پرسش نامهها
با استفاده از امکاناتی که در اچ-تی-ام-ال وجود دارد، می توان از کاربران صفحات وب نظر خواهی کرد. نظر خواهی از کاربران می تواند در توسعه صفحات وب مفید واقع شود. به عبارت دیگر، می توان با نظرخواهی از کاربران، صفحات بهتری را ارئه نمود.
ایجاد پرسش نامه در صفحه وب با اچ-تی-ام-ال
پرسش نامه یا فرم، ابزاری برای تعامل با کاربران است.
ایجاد فرمها بسیار آسان است. برای ایجاد فرم از دستورات <form> و </form> استفاده می گردد. اما وقتی که کاربران فرمها را تحویل دادند، محتویات فرم به جایی ارسال می گردد( این عمل توسط یک یو-آر-ال مشخص می شود ). معمولا برنامه ای در سرور وب وجود دارد که اطلاعات موجود در فرم را تحلیل می کند و کارهایی را با آن اطلاعات انجام می دهد. برنامههایی که دادههای فرم را ارزیابی می کنند، برنامههای سی-جی-آی نام دارند. نام دیگر آنها فیلتر آی زَپی است. سی-جی-آی می تواند بسیار پیچیده باشد، زیرا معمولا شامل برنامه نویسی به زبانهایی مثل سی ، پرل یا زبانهای اسکریپت نویسی است. این کار اصولا ممکن است خارج از مسئولیت طراح صفحه وب باشد. در اغلب موارد می توان از برنامههای سی-جی-آی موجود استفاده کرد.
دستور <form>
فرمها توسط دستورات <form> و </form> ساخته می شوند. فرمها شامل متن عادی، جدولها، عناصر دیگری مثل کادرهای کنترلی، منوهای باز شونده و فیلدهای متنی است. کنترلهای فرم توسط کاربر تنظیم می شوند تا محتویات فرم را نشان دهند. وقتی کاربر فرم را پر کرد، باید آن را برای پردازش تسلیم سرور وب نماید. فرمهای کامل شده، معمولا به کامپیوتر دیگری ارسال می شوند تا دادهها را پردازش کنند. محتویات فرم ممکن است دوباره به کاربر ارسال شوند تا بازرسی گردد. برای اینکه فرم کارایی داشته باشد، باید دو کار را انجام دهید و دو ویژگی را به آن اضافه کنید. اولا با استفاده از صفت action مربوط به <form> ، آدرس برنامه ای را مشخص کنید که محتویات فرم را پردازش می کند، ثانیا با استفاده از صفت method روش ارسال فرم را مشخص کنید. صفت name نیز برای نامگذاری فرم بسیار مهم است. به طوری که بعدا می توان فرم را با استفاده از زبانهای اسکریپتی مثل جاوا اسکریپت، دستکاری کرد. سرانجام، در بعضی از موارد، باید کدگذاری فرمها را با صفت enctype مشخص کنید.
صفت action
چگونگی پردازش فرم با صفت action مشخص می گردد. صفت action برابر یو-آر
-ال برنامه ای قرار می گیرد که دادههای فرم را پردازش می کند. این یو-آر-ال معمولا به یک اسکریپت سی-جی-آی اشاره می کند تا نتایج فرم را رمزگشایی کند.
صفت method
این صفت مشخص می کند که فرمها چگونه به آدرسی که توسط صفت action تعیین شده است ارسال می شوند. این صفت دو مقدار را می تواند بپذیرد : GET و POST. اینها متدهای اچ-تی-تی-پی هستند که مرورگر برای " صحبت کردن " با سرور از آنها استفاده می کند. توجه کنید که اگر صفت method مشخص نگردد، پیش فرض آن GET است.
در واقع، اسناد اچ-تی-ام-ال با درخواست یک یو-آر-ال از سرور وب از طریق متد get بازیابی می شوند. Get بخشی از پروتکل HTTP است. وقتی یک یو-آر-ال مثل http://www.bigcompany.com/staff/ali.htm را در مرورگر وب تایپ می کنید، به درخواست GET معتبری از اچ-تی-تی-پی تبدیل می شود، مانند درخواست زیر :
Get/staff/ali.htm/1.0
سپس این درخواست به سرور www.bigcompany.com ارسال می شود. این درخواست می گوید که فایل از دایرکتوری staff را به من تحویل بده.
متد POST در مواردی به کار گرفته می شود که حجم اطلاعات زیادی باید از طریق فرم ارسال شود. وقتی سرور وب درخواستی را با استفاده از POST از فرم دریافت کرد، منتظر بقیه اطلاعات می ماند.
صفت name برای نامگذاری فرم استفاده می شود. خوب است که قبل از ارسال دادهها به سرور وب، آن را کنترل کنید. این کار را ارزیابی فرم می گویند و با جاوا اسکریپت انجام می گیرد. یعنی فرم را باید تحویل یک زبان اسکریپتی مثل جاوا اسکریپت دهید. به همین دلیل، فرم باید دارای نام باشد. نام فرم می تواند ترکیبی از حروف a تا z و ارقام باشد.
نحوه کاربرد form
با توجه به توضیحاتی که تا کنون در مورد فرم و صفات آن گفته شد، می توانیم شکل ساده ای از کاربرد فرم را به صورت زیر بیان کنیم:
<html>
<head>
<title> sample form </title>
</head>
<body>
<form action = ” /cgi-bin/post-query ” method= “post” >
</form>
</body>
</html>
کنترلهای فرم
کنترلهای فرم، عناصری هستند که توسط کاربر پر یا دستکاری می شوند تا وضعیت فرم را مشخص کنند. کنترلهای فرم شامل فیلدهای متنی، فیلدهای متنی چند سطری، منوهای باز شونده، لیستهای لغزنده، دکمههای رادیویی، کادرهای کنترلی و دکمهها است. از کنترلهای مخفی فرم نیز می توان استفاده کرد. متداول ترین دستور ، دستور <input> است. اما دستور <select> همراه با دستور <option> و <textarea> نیز عناصر مهمی اند.
کنترلهای متنی
کنترلهای متنی، فیلدهای فرم هستند که طول آنها یک خط است و متنهایی مثل اسامی افراد را دریافت می کنند. این فیلدها با دستور <input> مشخص می شوند. اما با استفاده از دستور<textarea> می توان متنهای چند سطری را تعیین کرد. ساده ترین نوع کنترل فرم، ورودی متن است. برای مشاهده کنترل ورودی متن از دستور input با صفت type که مقدارش text است استفاده می شود:
<input type = “text” name = “costomername” >
تمام عناصر فرم باید نامگذاری شوند. در این دستور، name = “custumername” برای ایجاد فیلد متنی جهت دریافت نام به کار می رود. این دستور، یک فیلد متنی یک خطی با نام customername را درخواست می کند.
نام فیلدها باید منحصر به فرد باشند. اسامی فیلدها هنگام تحویل فرم به سرور وب و همچنین برای پردازش آن توسط زبانهای اسکریپت ضروری اند. در حالت عادی طول این فیلد 20 کاراکتر است و با استفاده از size می توان اندازه آن را تغییر داد.به عنوان مثال دستور زیر، طول فیلد customername را 40 کاراکتر تعیین می کند.
<input type = “text” name = “custumername” size=”40” >
برای اینکه طول فیلد به اندازه مشخصی محدود شود، باید صفت maxlenght را تغییر دهید. در این صورت مرورگر بیشتر از آن تعداد کاراکتر را قبول نمی کند.
Value صفت دیگری در دستور input است. با استفاده از این صفت می توان متن پیش فرضی را وارد این فیلد کرد. این متن هنگام ظاهر شدن فرم، در آن فیلد قرار می گیرد. در دستورات زیر، مقدار “enter your name here” به عنوان پیامی به کاربر ظاهر می شود و در فیلد قرار می گیرد:
< input type = “text” name = “customername” size = “30”
maxlength = “60” value = “enter your name here “>
فیلد رمز در فرم
فیلد کنترل کلمه رمز، مثل فیلد کنترل متن یک سطری است، با این تفاوت که محتویات آن نمایش داده نمی شود. در بسیاری از موارد، مرورگر ممکن است به جای هر کاراکتر یک کاراکتر ستاره قرار دهد تا کلمه رمز را کسی نبیند. برای ایجاد کلمه رمز در فرم، از صفت type دستور <input> استفاده می شود.برای این منظور نوع آن باید password تعیین شود. اندازه فیلد کلمه رمز را نیز می توان با استفاده از صفت size تعیین کرد. با استفاده از صفت maxlenghth نیز می توان حداکثر طول فیلد کلمه رمز را تعیین نمود. در مورد این فیلد، عقلانی است که طول فیلد محدود شود . برای این فیلد نباید با استفاده از صفت value مقدار پیش فرض تعیین کرد، زیرا کاربر می تواند آن را در سند اچ-تی-ام-ال بیابد.
فیلد متنی چند خطی
درمواردی که لازم باشد متن چند خطی به فرم اضافه شود، از دستور <textarea> استفاده می گردد. همانند متن یک خطی در دستور<input> ، می توان اندازه فیلد چند خطی و مقدار پیش فرض را برای متن چند خطی تعیین کرد. برای تعیین تعداد سطرهای متن از صفت rows و برای تعیین تعداد ستونهای آن از صفت cols استفاده می شود.
<textarea rows=”5” cols=”80” name=”commentbox”></textarea>
چون ممکن است چند خط از متن دربین دستور <textarea> باشد، نمی توان با استفاده از صفت value مقدار پیش فرض را تعیین کرد. بلکه متن پیش فرض را باید در بین <textarea> </textarea> قرار داد. محتویات این دستور موقعیت کاراکترها را حفظ می کند. یعنی فضای خالی ، سطر جدید و تب را منظور می کند.
منوهای باز شونده
یکی از امتیازات بزرگ منوهای باز شونده این است که در آن واحد فقط یک گزینه آن مشخ
ص است و سایر گزینههای آن مخفی اند. بدین ترتیب در فضای صفحه وب صرفه جویی می شود.
برای ایجاد منوی باز شونده از دستورات <select> و </select> استفاده می شود.این دستورات فقط باید شامل یک یا چند دستور> option> باشند. دستورات <option> انتخابات واقعی را در منو مشخص می کند و نیازی به </option> نیست.
<select name=”language type”>
<option> PASCAL
<option> JAVA
<option> C++
</select>
لیست لغزنده
دستور <select> می تواند شامل صفت size باشد که تعداد عناصری را که می توانند در آن واحد در صفحه وب ظاهر شوند مشخص کند. مقدار فرضی این صفت برابر یک است که منوی باز شونده معمولی را می سازد. اگر عدد مثبتی غیر از یک برای این صفت تعیین شود، تعداد سطرها را مشخص می کند .
در بسیاری از موارد، لیستهای لغزنده مثل منوهای باز شونده عمل می کنند. اما اگر دستور select شامل صفت multiple باشد، می توان بیش از یک گزینه را انتخاب کرد. تعداد گزینههایی که می توان انتخاب کرد به مرورگر بستگی دارد. اما باید کلیدهایی مثل Alt یا Shift را به پایین فشار داد و سپس با ماوس عمل انتخاب را انجام داد.
کادرهای کنترلی
با استفاده از لیستهای لغزنده می توان چند گزینه را از بین گزینههای مختلف انتخاب کرد. .متاسفانه، تمام گزینهها در آن واحد به کاربر نمایش داده نمی شوند تا آنها را انتخاب کند. اگر تعدادی از گزینههایی که با یکدیگر تضاد ندارند باید انتخاب شوند ، بهتر است از کادرهای کنترلی استفاده شود.کادر انتخابی می تواند فعال یا غیر فعال باشد. کاربر می تواند از طریق کادرهای کنترلی گزینههای مختلفی را انتخاب کند . اما اگر تعداد آنها زیاد باشد، پردازش آنها دشوار خواهد شد.
برای ایجاد کادر انتخابی از دستور <input> استفاده می شود، به طوری که مقدار صفت type برابر با checkbox انتخاب شود. با استفاده از صفت name می توان نامی را برای کادر انتخابی تعیین کرد. با استفاده از صفت checked می توان تعیین کرد که پیش فرض یک کادر انتخابی فعال باشد.
دکمههای رادیویی
عملکرد ظاهری دکمههای رادیویی مثل کادرهای کنترلی است ، اما فقط یک گزینه را می توان انتخاب کرد .این دکمهها در مواردی کاربرد دارند که از بین چند گزینه فقط یک گزینه قابل انتخاب باشد.
برای ایجاد دکمههای رادیویی از دستور <input> استفاده می شود، به طوری که مقدار صفت type آن باید radio باشد. انتخاب نام برای دکمههای رادیویی اهمیت ویژه ای دارد، زیرا کنترلهایی را که عملکرد رادیویی یکسانی دارند با هم دسته بندی می کند. عملکرد رادیویی می گوید که وقتی یک گزینه انتخاب شد، گزینه انتخاب شده قبلی از حالت انتخاب خارج می شود .اگر نام دکمههای رادیویی متفاوت باشد، عملکرد آن مثل کادر انتخابی خواهد بود.
دکمههای Reset و Submit
وقتی کاربر فرم را پر کرد باید بتواند آن را به سرور ارسال کند. فرم ممکن است به برنامه
ای ارسال شود تا پردازش گردد و یا ممکن است از طریق پست الکترونیکی فرستاده شود. صفت type دستور <input> دارای دو مقدار reset و submit است. این مقادیر می توانند دکمههای متداولی را ایجاد کنند که برای فرمها مفیدند. مقدار reset دکمه ای را ایجاد می کند که به کاربر اجازه می دهد محتویات فرم را پاک کند و یا به مقدار اولیه برگرداند. مقدار submit موجب می شود تا دکمه ای ایجاد گردد که مرورگر محتویات فرم را به آدرسی که در صفت action از دستور <input> مشخص شده است ارسال کند. دکمههای reset و submit دارای دو صفت valu
e و name هستند. صفت value مقدار دکمه وصفت name نام دکمه را تعیین می کند.
3-2: نگاه کلی بر زبان برنامه نویسی جاوا اسکریپت
جاوا اسکریپت، معروف به زبان اسکریپتی در سرویس گیرنده است، ولی برای برنامه نویسی در سرویس دهنده نیز به کار می آید. این زبان، یک زبان تفسیری و مبتنی بر شی گرایی است. معمولاً هر زبان جدید، ایدههایی را از زبان موجود می گیرد و توسعه می یابد. به عنوان مثال، زبان جاوا از سی-پلاس-پلاس و این زبان نیز از سی ایجاد شده است. زبان جاوا اسکریپت توسط شرکت Sun از زبان LiveScript ایجاد شده است. یکی از قابلیتهای این زبان این است که به راحتی می تواند با اچ-تی-ام-ال ترکیب شود و از امکانات آن استفاده نماید. زبان معروف پی-اچ-پی که برای ساخت صفحات وب به کار می آید، به راحتی می تواند با جاوا اسکریپت ترکیب شود و وب سایتهای محاوره ای و پویایی را ایجاد کند.
3-2-1: ویژگیهای جاوا اسکریپت در سرویس گیرنده
زبان جاوا اسکریپت، در سرویس گیرنده می تواند کارهای مختلفی را انجام دهد. در زیر به طور خلاصه به برخی از آنها اشاره شده است.
• نوشتن برنامههایی برای انجام محاسبات : به عنوان مثال می توان برنامههایی نوشت که فرمهای سفارش را قبل از انجام تحویل به سرویس دهنده ارزیابی کند، و محاسباتی مثل تعیین مالیات را انجام دهد. به طور کلی قدرت جاوا اسکریپت در مرورگر نهفته است.
• کنترل محتویات و نمای اسناد : در جاوا اسکریپت شیء ای به نام document وجود دارد که از طریق صفات و متدهای آن می توان اسناد وب را کنترل کرد.
• کنترل مرورگر : در جاوا اسکریپت شیء ای به نام window وجود دارد که می تواند کادرهای محاوره ای را ظاهر کند تا ضمن نمایش پیام، ورودیهایی را دریافت کند. با استفاده از این شیء می توان پنجره جدیدی در مرورگر ایجاد کرد که دارای اندازه و کنترلهای مختلف کاربر است. به این ترتیب می توان چندین پنجره محاوره ای را در مرورگر باز کرد و چند نما از وب سایت را به کاربر نشان داد.
• تعامل با فرمهای اچ-تی-ام-ال : یکی دیگر از جنبههای جاوا اسکریپت به عنوان زبان اسکریپتی در سرویس گیرنده، تعامل آن با فرمهای اچ-تی-ام-ال است. این قابلیت با استفاده از شی ء Form و کنترلهای مربوط به آن به وجود آمده است. کنترلهایی که می توانند در فرم قرار گیرند عبارت اند از: Button ، Checkbox ، Hidden ، Password ، Radio ، Reset ، Select ، Submit ، Text و Textarea . با استفاده از این اشیا می توان مقادیر عناصر ورودی را خواند و یا آنها را درفرمهایی در اسناد نوشت.
• تعامل با کاربر : جاوا اسکریپت قادر است به رویدادها پاسخ دهد. یعنی جاوا اسکریپت قادر است در اثر وقوع رویدادی، کدی را به اجرا در آورد. معمولاً این رویدادها توسط کاربر به وجود می آیند، مثل حرکت ماوس بر روی یک پیوند، وارد کردن مقداری در فرم، یا کلیک کردن دکمهSubmit در فرم. قابلیت اداره کردن رویدادها از اهمیت ویژه ای برخوردار است .
• خواندن و نوشتن حالت سرویس گیرنده با کوکی : کوکی، قطعه ای از داده است که
توسط سرویس گیرنده به طور موقت یا دائمی ذخیره می شود. کوکیها ممکن است در وب، توسط سرویس دهنده به سرویس گیرنده انتقال یابد. بعداً وقتی که سرویس گیرنده همان صفحه را درخواست کرد، کوکیهای مرتبط را به سرویس گیرنده بر می گرداند. سرویس گیرنده با استفاده از این مقادیر می تواند محتویاتی را که به سرویس دهنده ارسال می کند، تغییر دهد. در واقع، کوکیها به صفحه وب یا وب سایت اجازه می دهند چیزهایی ر ا در مورد سرویس گیرنده به یاد بیاورند. به عنوان مثال، به یاد بیاورند که سرویس گیرنده قبلاً آن سایت را دیده است،
در آن سایت ثبت نام کرده و دارای کلمه عبور است، یا خواستههایی را در مورد رنگ و طرح صفحات وب اعلان نموده است. چون پروتکل اچ-تی-تی-پی نمی تواند دادههای حالت تماس را نگهدارد، جاوا اسکریپت می تواند در این مورد مفید واقع شود.
چند ویژگی دیگر
- جاوا اسکریپت می تواند با اپلتهای جاوا و سایر اشیایی که در مرورگر ظاهر می شوند، تعامل برقرار کند.
- تصاویری که با دستور<img> در اچ-تی-ام-ال ظاهر می شوند، توسط جاوا اسکریپت قابل دستکاری است تا متحرک سازی در آنها ایجاد کند.
- اشیای تاریخ در جاوا اسکریپت ، محاسبات در مورد زمان و تاریخ را آسان می سازد.
- اشیای آماده ای دارد که کارکردن با مرورگر را آسان می سازد.
3-2-2 : جاوا اسکریپت چه کارهایی را انجام نمی دهد
گرچه جاوا اسکریپت کارهای زیادی می تواند انجام دهد، ولی بعضی از کارها نیز از عهده آن بر نمی آید:
• جاوا اسکریپت فاقد امکانات گرافیکی است، بلکه می تواند تصویر حاصل ازاچ-تی-ام-ال را تغییر دهد و با جلوههای زیبایی به نمایش درآورد.
• به دلایل امنیتی، جاوا اسکریپت اجازه خواندن و نوشتن در فایل را نمی دهد.
• جاوا اسکریپت از شبکه بندی پشتیبانی نمی کند، ولی اجازه می دهد یو-آر-ال هایی را دانلود کنید و می توانید محتویات فرمهایاچ-تی-ام-ال را از طریق شبکه به اسکریپتها ی سرویس گیرنده و آدرسهای پست الکترونیکی بفرستید.
3-2-3 : ساختار لغوی جاوا اسکریپت
• مجموعه کاراکترها
برنامههای جاوا اسکریپت با مجموعه کاراکترهای یونیکد نوشته می شوند. در زبانهایی مثل سی وسی-پلاس-پلاس از کدهای اسکی برای برنامه نویسی استفاده می گردد که گاهی مشکلاتی را برای برنامه نویس ایجاد می کنند. به دلیل جهانی شدن ارتباطات و به کارگیری کامپیوترها دریک شبکه جهانی به نام اینترنت، وجود کاراکترهای جدید ی به نام یونیکد احساس شده است. توجه کنید که چون کاراکترهای اسکی، زیرمجموعه کاراکترهای یونیکد هستند، برای برنامههای موجود مشکلی به وجود نمی آید. کاراکترهای اسکی دریک بایت، ولی یونیکد در دو بایت ذخیره میشود.
• حساسیت نسبت به حروف
جاوا اسکریپت نسبت به حروف حساس است، یعنی بین حروف بزرگ و کوچک تفاوت قائل می شود. به عبارت دیگر کلمات کلیدی، متغیرها و سایر شناسهها باید به شکل خاصی نام گذاری و تایپ شوند. به عنوان مثال کلمه کلیدی while به صورت WHILE قابل استفاده نیست. لازم به ذکر است که، اچ-تی-ام-ال نسبت به حروف حساس نیست. به دلیل ارتباط نزدیک اچ-تی-ام-ال با جاوا اسکریپت، این عدم حساسیت ممکن است مشکلاتی را به وجود آورد. بسیاری از اشیا ء و
خواص جاوا اسکریپت نامی مشابه با دستورات اچ-تی-ام-ال دارند. این اشیا ء و خواص در اچ-تی-ام-ال می توانند باحروف کوچک یا بزرگ نوشته شوند در حالی که در جاوا اسکریپت با حروف کوچک نوشته میشوند.
3-3 : نگاه کلی بر دستورات زبان PHP
3-3-1: مقدمات زبان PHP
انواع دادهها
هدف هر نوع برنامهنويسي، ورود دادهها به كامپيوتر، پردازش دادهها و استخراج نتايج است. لذا، دادهها نقش مهمي را در برنامهنويسي فراهم ميكنند. يكي از جنبههاي مهم هر زبان برنامهسازي كه بايد مورد بررسي قرار گيرد، انواع دادههايي است كه با آن سرو كار دارد. هر چند كه پی-اچ-پی يك زبان اسكريپتي براي ساخت صفحات وب است ولي با انواعي از دادهها كار ميكند كه به بررسي آنها ميپردازيم. انواع دادهها در پی-اچ-پی عبارتند از:
• عددي صحيح براي ذخيره اعداد صحيح به كار ميرود.
• عددي اعشاري براي ذخيره اعداد اعشاري به كار ميرود.
• رشتهاي براي ذخيره رشتهاي از كاراكترها به كار ميرود.
• آرايه براي ذخيره مجموعهاي از مقادير همنوع به كار ميرود.
• شي براي ايجاد نمونههايي از اشيا به كار ميرود.
هر متغير داراي نام است. نام هر متغير در پی-اچ-پی از قوانين زير پيروي ميكند:
• نام متغير ميتواند هر طولي داشته باشد و شامل حروف، اعداد، خط ربط و علامت $ است. تمام متغيرها با $ شروع ميشوند، مثل $total , $x , $average , $sum
• نام متغير نميتواند با رقم شروع شود.
• در نامگذاري متغيرها، بين حروف كوچك و بزرگ تفاوت است. به عبارت ديگر، نسبت به حروف حساس است . به عنوان مثال، متغيرهاي $Average , $average با هم فرق ميكنند.
مقدار دادن به متغيرها
در پی-اچ-پی لازم نيست ابتدا متغير اعلان شود و سپس از آن استفاده كرد. هنگامي كه مقداري در متغير قرار ميگيرد، آن متغير اعلان ميشود. براي مقدار دادن به متغير از علامت = يا انتساب استفاده ميشود.
توجه داشته باشيد كه وقتي متغيري مقدار گرفت و نوع آن تعيين شد، با انتساب مقداري از نوع ديگر، نوع آن متغير نيز تغيير ميكند. دستورات زير را ببينيد.
$x= 10 ;
$x= “Ahmad”;
دستور اول مقدار 10 را در متغير $x قرار ميدهد و در نتيجه نوع آن عددي صحيح تعيين ميشود. دستور بعدي، مقدار Ahmad را در $x قرار ميدهد و در نتيجه نوع آن رشتهاي تعيين ميگردد.
تبديل نوع
متغير با مقداري از يك نوع را ميتوان به نوع ديگري تبديل كرد. مثلاً
$total = 10 ;
$sum = (double) $total ;
دستور اول مقدار 10 را در $total قرار ميدهد و در نتيجه نوع آن عددي صحيح منظور ميشود. دستور دوم مقدار متغير $total را كه 10 است به نوع اعشاري (10.0) تبديل ميكند و در متغير اعشاري $sum قرار ميدهد. توجه كنيد كه نوع $total عوض نميشود.
عملگرها
عملگر، نمادي است كه عمل خاصي را انجام ميدهد. عملگرها در پی-اچ-پی به چند دسته تقسيم ميشوند كه آنها را مورد بررسي قرار ميدهيم.
• عملگرهاي محاسباتي
عملگرهاي محاسباتي براي اجراي محاسبات بر روي دادهها به كار ميروند. اين عملگرها را درجدول 3-1 مشاهده ميكنيد.
جدول 3-1 : عملگرهاي محاسباتي
عملگر نام مثال
+ جمع $a+$b
- تفریق $a-$b
* ضرب $a*$b
/ تقسیم $a/$b
% باقیمانده تقسیم $a%$b
++ افزایش $a++ یا++$a
-- کاهش $a-- یا --$a
• عملگرهاي مقایسه ای
در پی-اچ-پی تعدادي عملگر وجود دارند كه براي مقايسه دو مقدار به كار ميروند و به نام عملگرهاي مقايسهاي (يا رابطهاي) خوانده ميشوند. این عملگرها را در جدول 3-2 مشاهده می کنید.
جدول 3-2 : عملگرهاي مقايسه ای
عملگر نام مثال
== تساوی $a==$b
=== همانی $a===$b
=! نامساوی $a!=$b
<> نامساوی $a<>$b
> کوچکتر از $a<$b
< بزرگتر از $a>$b
=> کوچکتر مساوی $a<=$b
=< بزرگتر مساوی $a>=$b
• عملگرهاي منطقي
عملگرهاي منطقي بر روي عبارات منطقي عمل ميكند. به عنوان مثال، اگر بخواهيم تشخيص دهيم مقدار متغير $a بين 1 تا 100 قرار دارد، بايد از عملگرهاي منطقي استفاده كنيم. جدول 3-3 عملگرهاي منطقي را نشان ميدهد.
جدول 3-3 : عملگرهاي منطقي
عملگر نام مثال
! نقیض(NOT) !$a
&& و(AND) $a && $b
|| یا(OR) $a||$b
and و(AND) $a and $b
or یا(OR) $a or $b
• عملگرهاي تركيبي
تعدادي از عملگرها در پی-اچ-پی وجود دارند كه تركيبي از دو عملگر ديگر هستند و به نام عملگرهاي تركيبي خوانده ميشوند. جدول 3-4 اين عملگرها را نشان ميده
عملگر نام مثال
+= انتساب جمع $a += $b
-= انتساب تفریق $a -= $b
*= انتساب ضرب $a *= $b
/= انتساب تقسیم $a /= $b
%= انتساب باقیمانده تقسیم $a %= $b
• عملگرهاي رشتهاي
يكي از متداولترين عملي كه در رشتهها انجام ميگيرد، عمل الحاق كردن رشتهها است. به عنوان مثال دو رشته زير را ببينيد:
$a= 'Computer ';
$b= 'Science';
اگر با استفاده از $a و $b رشته “Computer Science” را به دست آوريم، ميگوييم رشته $b به رشته $a الحاق شده است. براي الحاق رشتهها از عملگر نقطه(.) استفاده ميشود.
$c = $a .$b
به اين ترتيب، رشته حاصل “Computer Science”خواهد بود.
در پی-اچ-پی دو نوع رشته وجود دارد:
• رشتههايي كه در نقل قول دوتايي قرار ميگيرد، مثل “Computer” .
• رشتههايي كه در نقل قول يكاني قرار ميگيرد. مثل ‘Computer’
اگر رشتهاي در نقل قول دوتایي قرار گيرد، پی-اچ-پی سعي ميكند آن را مثل يك عبارت ارزيابي كند، ولي اگر رشته در نقل قول يكاني قرار گيرد، همانند يك ليترال عمل ميكند و ارزيابي نميشود.
3-3-2 : به كارگيري آرايه
در اين بخش، ساختار مهمي به نام آرايه را بررسي ميكنيم كه دنبالهاي از مقادير را در خودش ذخيره ميكند. هر آرايه داراي چند عنصر است كه هر عنصر ميتواند حاوي مقداري مثل عدد يا متن، يا آرايه ديگري باشد. آرايهها در پی-اچ-پی به طور كلي به دو دسته تقسيم ميشوند:
1- آرايههايي با انديس عددي
2- آرايههاي انجمني
آرايههايي با انديس عددي آنهايي هستند كه براي دستيابي به عناصر آنها از يك انديس عددي استفاده ميشود، در حاليكه در آرايههاي انجمني، انديس دستيابي به عنصر آرايه ميتوا
ند غير عددي باشد. هر يك از اين دو نوع آرايهها را در ادامه بررسي ميكنيم.
آرايههايي با انديس عددي
در اغلب زبانها مثل C++,C و java براي دستيابي به عناصر آرايه از يك انديس عددي استفاده ميشود. در پی-اچ-پی نيز ميتوان از اين نوع آرايهها استفاده كرد. اولين انديس آرايه در پی-اچ-پی صفر است. به عنوان مثال، اگر يك آرايه با طول56 باشد، انديس عناصر آن به صورت زير است:
$x $x[0] $x[1] $x[2] $x[3] $x[4]
15 20 4 10 5
براي ايجاد چنين آرايهاي با استفاده از واژه array به صورت زير عمل ميشود:
$x= array (5,10,4,20,15);
اگر بخواهيم ضمن ايجاد آرايه، بازهاي از اعداد را در عناصر آن قرار دهيم، از واژه range استفاده ميكنيم:
$num= range (10,15)
اين دستور در پی-اچ-پی، آرايهاي به نام $num را ايجاد ميكند كه 6 عنصر دارد و محتويات عناصر آن اعداد 10 تا 15 ميباشند. دستورات زير را ببينيد:
echo "$×[0], $×[1], $×[2], $×[3],$×[4]”;
echo "<br> ";
echo "$num[0], $num[1], $num[2], $num[3], $num[4], $num[5], $num[6],";
دستور اول محتويات آرايه $x را به خروجي ميبرد. دستور دوم سطر جاري را رد ميكند و دستور سوم محتويات آرايه $num را به خروجي ميبرد.
حلقه و تكرار آرايه
همان طور كه ديديد، براي دستيابي به عناصر آرايه، از انديس استفاده ميشود. چون در آرايههايي با انديس عددي، انديسها دنبالهاي از اعداد با شروع از صفر ميباشند، با يك حلقه تكرار ميتوان به تمام عناصر آرايه دست يافت. به عنوان مثال ، آرايه $x را در نظر بگيريد.
$x= [5,10,15,20,25];
دستور foreach
علاوه بر دستورات for و while که براي نمايش اطلاعات موجود در آرايهها به كار ميروند دستور foreach نيز امكان جالبي براي دستيابي به عناصر آرايه است. اين دستور وقتي مورد استفاده قرار ميگيرد كه تعداد عناصر آرايه مشخص نباشد. كاربرد آن به صورت زير است:
foreach(&arrayname as $index){
…
}
در اين روش كاربرد، &arrayname نام آرايهاي است كه محتويات آن بايد دستيابي شود. as واژهاي است كه بايد به همين صورت به كار برده شود و$index متغيري است كه عنصر فعلي آرايه در آن قرار ميگيرد. به عنوان مثال، براي چاپ عناصر آرايه $x كه قبلاًٌ ديديد، به صورت زير از foreach استفاده ميشود.
foreach ($x as $current)
echo $current.’ ‘;
در اين دستور foreach، هر يك از عناصر آرايه $x به نوبت در متغير $current قرار ميگيرند و در دستور echo به خروجي ميروند.
آرايههاي انجمني
در آرايههايي با انديس عددی، هر عنصر آرايه با يك عدد ترتيبي مشخص ميشود، يعني
اولين عنصر با انديس صفر، دومين عنصر با انديس 1، سومین عنصر با انديس 2 و غيره مشخص ميشود. در پی-اچ-پی نوعي آرايه با نام آرايه انجمني وجود دارد كه در آن ميتوان به هر مقداري، يك انديس يا كليد را نسبت داد. به عنوان مثال دستور زير را ببينيد.
$grade = array (‘Ahmad' => 15, ‘Ali’ => 17 , ‘Reza’=> 14 );
اين آرايه كه نامش $grade است داراي سه عنصر است. اندیس عنصر اول ‘Ahmad’، انديس (كليد)عنصر دوم ‘Ali’ و انديس (كليد) عنصر سوم ‘Reza’ است. مقدار عنصر اول 15، مقدار عنصر دوم 17، و مقدار عنصر سوم 14 است.
همانند آرایههایی با اندیس عددی، به عناصر آرايههاي انجمني نيز ميتوان به طور انفرادي مقدار داد، به عنوان مثال، عناصر آرايه $grade را به صورت زير ميتوان مقدار داد.
$grade = array (‘Ahmad’ => 15 );
$grade[‘Ali’ => 17] ;
$grade[‘Reza’ => 14] ;
دستيابي به عناصر آرايه انجمني
چون انديس آرايههاي انجمني، عددي نيست نميتوان با استفاده از يك شمارنده در حلقه تكرار، به عناصر آرايه انجمني دست يافت. براي اين منظور ميتوان از حلقه تكرار foreach استفاده کرد.
به كارگيري foreach : شيوه به كارگيري اين دستور در آرايههاي انجمني، اندكي متفاوت از به كارگيري آن با آرايههاي معمولي است. به عنوان مثال، براي چاپ محتويات آرايه $grade با استفاده از دستور foreach به صورت زير عمل ميشود:
foreach ($grade as $key =>$value)
echo $key. ‘=>’ .$value . ‘<br>’;
در اين دستور foreach ، متغير $key انديس (كليد) را مشخص ميكند كه در آرايه $grade به ترتيب برابر با Reza, Ali, Ahmad است، و $value مقدار كليد را مشخص ميكند. كه به ترتيب 15 ، 17 و 14 است. دقت داشته باشيد كه انتخاب نام $key و $value اختياري است.
3-3-3: شكل كلي تعريف تابع
هر تابع داراي يك نام است و براي اين كه مشخص شود اين نام مربوط به تابع است بايد از واژه function استفاده شود. اگر تابع داراي پارامتر باشد، ليست پارامترها در جلوي نام تابع در داخل پرانتز قرار ميگيرد. هر تابع ميتواند مقداري را به فراخوان برگرداند يا هيچ مقداري را تحويل فراخوان ندهد. به اين ترتيب، شكل كلي تابع را در پی-اچ-پی ميتوان به صورت زير نوشت.
function (اسامي پارامترها) نام تابع
}
دستورات تابع ;
Return;
{
همانطور كه در اين شكل كلي مشاهده ميكنيد، تعريف تابع با واژه function شروع ميشود. نام تابع از قانون نامگذاري براي متغيرها پيروي ميكند، ولي در ابتداي آن حرف $ قرار نميگيرد. اسامي پارامترها نيز از قانون نامگذاري براي متغيرها پيروي مينمايد و با كاما از هم جدا ميشوند. دستورات تابع مشخص ميكند تابع چه عملي بايد انجام دهد. آخرين دستور هر تابع، return است كه به تابع خاتمه ميدهد.
بديهي است مقداري كه در اين دستور ميآيد، نتيجه محاسبات تابع است كه بايد به فراخوان برگردانده شود. به عنوان مثال، تابع tax را كه در ادامه آمده است، در نظر بگيريد. اين تابع، حقوق كارمندي را به عنوان پارامتر پذيرفته، پس از كسر 20% حقوق به عنوان ماليات، خالص پرداختي را برميگرداند:
function tax($salary)
{
$salary= $salary- (($salary/ 100)*20);
return $salary;
}
همان طور که ملاحظه ميكنيد، نام تابعtax است كه با واژه function مشخص شده است و آرگوماني به نام salary$دارد. محاسباتي روي $salary انجام ميدهد و مقدار جديد متغير salary$ را برميگرداند.
فراخواني تابع
همانطور كه گفته شد، فراخواني تابع، دستوري است كه تابع را اجرا ميكند. به عنوان مثال، براي فراخواني تابع tax كه در بخش قبل ديديد، به صورت زير عمل ميشود:
$salary=1600;
$taxSalary = tax ($salary) ;
echo $taxSalary;
نكاتي در مورد تابع
• اسامي توابع توسط كاربر انتخاب ميشود كه از شيوه نامگذاري براي متغيرها پيروي ميكند ولي با $ شروع نميشود.
• توابع ميتوانند داراي پارامتر باشند كه در جلوي نام تابع در داخل پرانتز قرار ميگيرد. اگر تعدا پارامترها بيش از يكي باشد، با كاما از هم جدا ميشوند.
• دستوراتي كه عملكرد تابع را مشخص ميكنند،(بدنه تابع) در داخل آكولاد قرار ميگيرند.
• تابع با دستور return خاتمه مييابد، اگر قرار باشد تابع مقداري را برنگرداند، لازم نيست از دستور return براي خاتمه آن استفاده كرد. تابع با رسيدن با آخرين دستور خاتمه مييابد.
• تابع تا زمانی كه فراخواني نشود، اجرا نميشود تابع در هر جايي از برنامه پی-اچ-پی ميتواند قرار داشته باشد، به طوري كه دستور فراخواني تابع ميتواند قبل يا بعد از تعريف تابع باشد.
• تابع را ميتوان چندين بار فراخواني كرد.
به اين نكته توجه داشته باشيد كه اگر تابعي داراي چند پارامتر است كه فقط بعضي از پارامترهاي آن مقدار اوليه دارند، بايد پارامترهايي با مقادير اوليه را در انتهاي ليست پارامترها قرار دهيد. دستورات زير را ببينيد.
function sum($a, $b=10, $c=20)
{
…
}
تابع sum() داراي سه پارامتر است كه $a فاقد مقدار اوليه است پارامترهاي $b و $c داراي مقدار اوليهاند.
طول عمر و حوزه متغيرها
طول عمر متغير با اختصاص حافظه به آن شروع ميشود و با اخذ حافظه از آن، پايان مييابد. حوزه متغير، مكانهايي است كه در آنها متغير قابل مشاهده و قابل استفاده است. در پی-اچ-پی چهار نوع حوزه وجود دارد كه عبارتند از:
1- حوزه مربوط به متغيرهاي محلي : متغيرهاي محلي آنهايي هستند كه در داخل تابع تعريف ميشوند و حوزه آنها در داخل تابع است. طول عمر اين متغيرها با شروع اجراي تابع آغاز ميشو
د و با خاتمه اجراي تابع، خاتمه مييابد.
2- حوزه متغيرهاي عمومي : متغيرهاي عمومي آنهايي هستند كه در خارج از تابع تعريف ميشوند و در سراسر برنامه، به جز در داخل توابع قابل استفادهاند. طول عمر اين متغيرها به اندازه طول عمر صفحه وب است، يعني با توليد صفحه، اين متغيرها به وجود ميآيند و با از بين رفتن اين صفحه، متغيرهاي عمومي نيز از بين ميروند.
3- حوزه متغيرهاي عمومي كه در داخل تابع با واژه global مشخص ميشوند : فرض كنيد يك متغير عمومي به نام $x و يك تابع به نام sample() داريد. در حالت عادي نميتوانيد از متغير عمومي $x در داخل تابع sample() استفاده كنيد. اما اگر متغير $x را در داخل تابع sample() با واژه global معرفي كنيد، در آن تابع قابل استفاده است: به اين تريب، در داخل تابع sample()ميتوانيد از متغير $x استفاده كنيد.
4- حوزه متغيرهاي فراعمومي : اين متغيرها از قبل تعريف شدهاند (توسط كاربر تعريف نميشود) و در هر نقطهاي از برنامه، حتی در داخل توابع نيز قابل استفادهاند. دو متغير مهم، آرايههاي$_GET و $_POST هستند كه براي نگهداري متغيرهاي فرم به كار ميروند. ليست كامل متغيرهاي فراعمومي به صورت زير است:
• $_GLOBALS : آرايه اي از تمام متغيرهاي عمومي است. علاوه بر واژه global براي دستيابي به متغيرهاي عمومي در داخل تابع، از اين آرايه نيز ميتوان استفاده كرد.
• $_SERVER : آرايهاي از متغيرهاي محيطي سرويسدهنده.
• $_GET : آرايهاي از متغيرهايي است كه به روش GET به برنامه پی-اچ-پی ارسال شدهاند.
• $_POST : آرايهاي از متغيرهايي كه به روش POST به برنامه پی-اچ-پی ارسال شدهاند.
• $_COOKIE : آرايهاي از متغيرهاي كوكي است.
• $_FILES : آرايهاي از متغيرهاي مربوط به upload كردن فايل است. در مورد upload كردن فايلها نيز در ادامه بحث خواهد شد.
متغيرهاي ايستا
همانطور كه گفته شد، حوزه متغيرهاي محلي تابع در داخل تابع است و با ورود به تابع طول عمر متغيرهاي آن تابع شروع شده با خروج از تابع ، طول عمر آنها خاتمه مييابد. اين متغيرها نوعي متغيرهاي پويا هستند. در داخل تابع ميتوان متغيرهاي ايستا را نيز تعريف كرد. اين متغيرها با واژه static مشخص ميشوند. حوزه اين متغيرها در داخل تابع است، ولي طول عمرشان با متغيرهاي ديگر متفاوت است. با خاتمه تابع، اين متغيرها از بين نميروند، بلكه آخرين مقدارشان را حفظ ميكنند، به طوري كه وقتي تابع دوباره اجرا ميشود، ميتوان از آن مقدار استفاده كرد. نكات قابل توجه در مورد اين متغيرها اين است كه اولاً فقط يكبار مقدار اوليه ميگيرند، و ثانياً با اين كه د
ر هنگام خروج از تابع از بين نميروند، در خارج از تابع قابل دستيابي نيستند.
ضميمه كردن فايلها به برنامه
ضميمه كردن فايلها به برنامه، يكي از امكانات مهم پی-اچ-پی است كه منجر به سازماند
هي برنامه شده به شدت در كوتاه كردن طول برنامههاي پيادهسازي صفحات وب موثر است. تفكر حاکم بر ضميمه كردن فايلها به برنامه اين است كه ممكن است شما يك فايل متني يا هر نوع فايل ديگري داشته باشيد كه بخواهيد در دهها مكان از وب سايت خود از آن استفاده كنيد. براي اين منظور، ميتوانيد با امكاناتي كه در پی-اچ-پی آمده است، آن فايل را در نقطه دلخواه از صفحه وب، ضميمه كنيد. براي اين منظور ميتوان از دستور require() يا include() استفاده كرد.
مشخصات فايل شامل نام، پسوند و مكان وجود فايل است. به عنوان مثال، اگر فايل test.txt در پوشه wwwroot وجود داشته باشد، هر يك از دو دستور زير ميتوانند اين فايل را در همان نقطهاي كه اين دستورات وجود دارند، به برنامه ضميمه كنند:
require(‘test.txt’);
include(‘test.txt’);
وقتي كنترل اجراي برنامه به اين دستورات رسيد، فايل test.txt پردازش ميشود و نتيجه اجراي آن مشاهده ميگردد. اگر اين فايل فقط حاوي متن ساده باشد، اين متن در نقطه اجراي اين دستورات، ظاهر ميشود. دو دستور require و include در نسخههاي جديد پی-اچ-پی كاملاً شبيهاند و تنها تفاوت آنها اين است كه اگر در دستور require فایل مورد نظر پیدا نشود تا به صقحه وب ضمیمه شود، پیام fatal error (خطای جدی) رخ می دهد، در حالی که در دستور include يك warning (اخطار) صادر خواهد شد.
دو دستور ديگر متناظر با دستورات require() و include() وجود دارند كه عبارتاند از require_once() و include_once() . همان طور كه از نامشان مشخص است فقط يك بار فايلي را به برنامه ضميمه ميكنند. يعني اگر، فايلي به برنامه ضميمه شده باشد و دوباره سعي كنيد آن را ضميمه نماييد، از اين كار جلوگيري به عمل ميآيد
3-3-4: كار كردن با دايركتوريها
در پی-اچ-پی همانند فايلها ميتوان با دايركتورها كار كرد، به طوري كه تعدادي توابع براي اين كار فراهم آمده است كه در ادامه بررسي ميشوند.