مقدمه
تار جهان گستر (Word Wide Web) دنیای عجیبی است که تکنولوژی های مربوط به آن ، اغلب بدون پشتیبانی کافی ، عرضه می شوند و کاربران این تکنولوژی ها ، همه روزه با واژگان جدیدی برخورد می کنند که باعث سر درگمی آنها می شوند.
برای نمونه می توان به رشد برنامه های Open Source اشاره کرد ( برنامه هائی که می توان آنها را گسترش داد و یا تغییراتی در ساختار آنها ایجاد نمود) متداول ترین این برنامه ها ، سیستم عامل یونیکس و به طور خاص لینکوس می باشد . این برنامه ها با وجود پایداری ، دارای یک مشکل بزرگ می باشند و آن دشوار بودن آموختن این برنامه ها می باشد. کمبود راهنمائی هایی که به زبان ساده ، این برنامه ها را به مبتدیان آموزش دهد . باعث شده است که این دسته از نرم افزارها از جایگاه واقعی خود دور نگاه داشته شوند. Php یکی از زبانهای اسکریپتی Open Source ، ابزاری مفید می باشد که تاکنون علی رغم سادگی استفاده از آن هنوز به طور شایسته از آن استقبال نشده است.
Php چیست :
پی اچ پی که در ابتدای سال 1994 توسط Rasmus Lerdorf ایجاد شد ، مخفف واژگان Personal Home Page به حساب می آمد.
با گسترش قابلیتها و موارد استفاده از این زبان Php در معنای Hypertext Preprocessor به کار گرفته
می شود. این بدان معنا است که پی اچ پی ، اطللاعات را قبل از تبدیل به زمان html پردازش می کند. مطابق سایت وب رسمی پی اچ پی که در آدرس www.php.net قرار دارد ، پی اچ پی یک زبان اسکریپتی سمت سرویس دهنده می باشد.
سمت سرویس دهنده بودن به این معنا است که تمام پردازشهای این زبان بر روی سرویس دهنده (سرور) انجام می گیرد. یک سرویس دهنده در حقیقت یک کامپیوتر مخصوص می باشد که صفحات وب در آنجا نگهداری
می شوند .
این زبان بر روی هر سیستم عاملی قابل اجرا است. منظور از این سیستم عاملهایی می باشد که برروی سرویس دهنده نصب می شوند. پی اچ پی نه تنها قابلیت اجرا بر روی هر سیستم عاملی را می باشد، بلکه برای منتقل کردن برنامه های که از آن یک سیستم عامل به سیستم عامل دیگر ، احتیاج به تغییرات اندکی خواهید داشت و حتی در بعضی از موارد ، بدون احتیاج به هیچ تغییری می توانید ، یک برنامه را با زبان پی اچ پی از یک سیستم عامل به سیستم عامل دیگر منتقل کنید.
پی اچ پی برخلاف زبانهای برنامه نویسی (Programming Languages) یک زبان اسکریپتی (Scripting Languages) می باشد . به عبارت دیگر دستورات پی اچ پی بعد از رخداد یک رویداد (event) اجرا می شوند. این رویدادها می توانند شامل ارسال یک فرم ، رفتن به یک url مشخص و یا موارد دیگر باشد. متداولترین زبان اسکریپتی زبان جاوا اسکریپت می باشد که معولا برای پاسخ به رویدادهای کاربر در مرورگر وب ، به کار می رود. تفاوت عمده جاوااسکریپت و پی اچ پی دراین است که جاوا یک تکنولوژی سمت سرویس گیرنده است . زبانهائی مانند جاوا و پی اچ پی تفسیر شونده نامیده می شوند. به عبارت دیگر برای اجرا به یک مفسر مانند مرورگر وب نیاز است. اما زبانهای برنامه نویسی مانند c و یا java بعد از ترجمه به زبان ماشین به خودی خود قابل اجرا می باشند.
به چه دلیل از Php استفاده می کنیم؟
پی اچ پی در مقایسه با تکنولوژی های مشابه ، سریعتر و بهتر و آسانتر است . از جمله تکنولوژی های مشابه برای طراحی یک سایت وب می توان به این موارد اشاره کرد
اسکریپت هایInterface Common Gatway که معمولا به زبان Perl نوشته می شوند ، ASP(Active Server Page ) و JSP (Java Server Page) جاوا اسکریپت یک گزینه جایگزین برای پی اچ پی در نظر گرفته نمی شوند. زیرا بر خلاف پی اچ پی ، یک تکنولوژی سمت سرویس گیرنده است و همانند تکنولوژهایی مانند CGT و PHP، نمی تواند یک صفحه HTML را تولید کند.
مزیتی که چی اچ پی در مقابل html دارد این است که html یک سیستم محدود به حساب می آید و توانائی ایجاد ارتباط متقابل با کاربر را ندارد . کاربران هنگامی که با یک صفحه html مواجه می شوند ، تنها یک صفحه ساده را روبروی خود مشاهده می کنند که توانائی ایجاد واکنش به اعمال کاربر را ندارد. اما با استفاده از پی اچ پی ،
شما می توانید صفحاتی را ایجاد کنید که برای مثال عناصر موجود در صفحه براساس سیستم عامل کاربر و یا تاریخ مشاهده صفحه ، تنظیم شوند. همچنین پی اچ پی می تواند با فایل ها یا پایگاههای داده (Database) ارتباط برقرار کند و بسیاری عملیات دیگر که html قادر به انجام آنها نمی باشد.
طراحان صفحات وب از مدتها پیش به این نتیجه رسیدند که اگر در صفحات خود ، فقط از کدهای html استفاده کنند ، باید به طور مرتب آنرا تغییر دهند و اطلاعات آنرا به روز کنند . به همین علت تکنولوژهائی مانند CGI از همان آغاز ، طرفداران بسیاری پیدا کردند. این تکنولوژی ها به طراحان این امکان را می دهد که برنامه هایی ایجاد کنند که به صورت داینامیک ، صفحات وب را تولید کنند. همچنین در هنگام ارتباط با یک پایگاه داده بدون دخالت هر انسانی ، صفحات به روز آوری شوند.
به عنوان آخرین مطلب در مورد برتریهای پی اچ پی تنها به ذکر این مطلب بسنده که هم اکنون نزدیک به سه میلیون از سایتهای وب از تکنولوژی پی اچ پی استفاده می کنند.
چکیده از پروژه :
سیستم وجود فایلSalman.php را تست خواهد کرد و در صورت وجود آن را باز خواهد کرد و در غیر اینصورت برنامه متوقف میشود اینکار توسط در فایل class.php ،تابع CheckFileConfig انجام میشود.
برنامه به بانک اطلاعاتی وصل خواهد شد ودرصورت وجود خطا برنامه متوقف میشود وبه شما خطا خواهد داد، همین طور برای انتخاب بانک اطلاعاتی این کار توسط تابع connect در فایل class.php انجام می شود.
در اینجا فایل farsi.php باز خواهد شد و زبان را اجرا می کند و در صورتی که در برنامه متنی مانند متن خود پیدا کند آن را جایگزین خواهد کرد.
در صورت بر نخوردن به هیچ خطایی برنامه login.php را اجرا می کند و کاربر با کلیک بر رویه register می تواند ثبت نام کند و در صورت کلیک بر رویه login وارد بخش مورد نظر شود
در صورتی که کاربر بر رویه register کلیک کند می تواند ثبت نام شود ، در صورتی که نام کاربری که وارد که در بانک اطلاعاتی وجود داشته باشد برنامه به کاربر خطا می دهد و اطلاعات کاربر به بانک نخواهد رفت
در صورت ورود Password و یکسان نبودن دو فیلد با هم کاربر خطا میدهد و اطلاعات وارد بانک نمی شود
در صورت درست بودن اطلاعات ، تمامی اطلاعات به بانک اطلاعاتی خواهد رفت و صفحه login.php اجرا می شود و کاربر می تواند وارد سیستم شود اگر سطح دسترسی 1 باشد یک سره به بخش مدیریت خواهد رفت و در صورت سطح دسترسی 0 به قسمت رای گیری خواهد رفت
در صورت بودن اطلاعات غلط برنامه وارد نمی شود و به کاربر خطا می دهد
مدیر می تواند کاندید اضافه کند ، پاک کند ، تعداد رای به هر کاندید را ببیند ، و آن را ویرایش کند
در صورت وارد نکردن فیلد "نام کاندید " به مدیر اخطار داده می شود و اطلاعات ثبت نمی شود
در صورت کلیک بر روی خروج ، از برنامه خارج خواهد شد و دیگر تا با وارد کردن بار دیگر اطلاعات نمی تواند وارد برنامه شود
در صورتی که اطلاعات وارد شده با سطح دسترسی 0 باشد کاربر وارد بخش رای گیری می شود
با انتخاب کاندید مورد نظر و زدن کلیک Submit رای به بانک می رود ، همین طور Ip و یک Cookie ایجاد می شود تا از رای دوباره جلو گیری شود.
در قسمت نمایش آرا کاربر می تواند تعداد رای به هر کاندید را مشاهده کند در صد رأی هر کاندید به صورت عددی و گرافیکی
یک کلاس تعریف یا نمای یک نوع خاص داده است و کلاسها به عنوان روشی برای حالت دادن به تمام انواع تفاوت اشیاء و سیستم شما عمل میکنند . هنگامی که میخواهیم یک شیء جدید را تعریف کنیم ، ابتدا از کلمه کلیدی class برای تعریف آن ، پیش از استفاده از آن در اسکریپتهای PHP خود استفاده میکنیم . تفاوت واضح یک کلاس و یک شیء این است که کلاسها اشیایی را تعریف میکنند که در برنامههایمان به کار میبریم . پیش از آن که درباره روش ساخت یک کلاس صحبت کنیم ، میخواهیم شروع به تأمل کنید که یک کلاس نمایشی از یک ایده است . مهم است که هنگامی که کلاسهای خودتان را طراحی میکنید . آنها یک هدف را دنبال کنند و تمامی رفتاری را که از آن ایده انتظار میرفت را فراهم کنند .
یک کلاس در PHP حاوی سه کامپوننت اصلی است : members (اعضاء) که به آنها به عنوان داده یا صفت اشاره میشود) متدها ، و Constructor یک عضو members تکهای از داده است که شیء در بر دارد . اشیاء میتوانند هر تعداد عضو داشته باشند . برای مثال ، اگر قرار باشد اتومبیل را با استفاده از یک کلاس طراحی کنیم ، یک چرخ در حال دوران یا گیربکس باید به عنوان یک عضو از ماشین تعریف شوند . متدها سرویسهایی هستند که شیء برای سرویس گیرندههایش فراهم میکند که از اعضا داخلی آن استفاده میکنند و آنها را دستکاری میکنند . برای مثال ، اگر قرار باشد اتومبیل را با استفاده از یک کلاس طراحی کنیم ، یک چرخ در حال دوران یا گیربکس باید به عنوان یک عضو از ماشین تعریف شوند .
متدها سرویسهایی هستند که شیء برای سرویس گیرندههایش فراهم میکند که از اعضا داخلی آن استفاده میکنند و آنها را دستکاری میکنند . برای مثال ، یک کلاس car میتواند یک متد را برای روشن کردن وسیله نقلیه و استفاده از چرخ در حال دوران در داخل آن فراهم کند .
یک Constructor متد خاصی است که شیء را درون وضعیت آماده آن معرفی می:ند . تنها یک Constructor برای یک شیء در PHP میتواند موجود باشد . در یک کلاس car ، افزودن بدنه ، موتور ، لاستیکها ، گیربکس ، صندلی و غیره بر روی car با هم متفاوتند . هنگامی که سرویس گیرندهها میخواهند از متدهای روی یک شیء استفاده کنند ، Constructor اطمینان میدهد که هر متد عملیات را با موفقیت به انجام خواهد رساند و نتیجه مورد انتظار را برخواهد گرداند . برای مثال ، برای روشن کردن رادیو درون اتومبیل شما ، باید یک رادیو نصب شده باشد . در این نمونه ، Constructor مسئول اطمینان بخشیدن از این موضوع است که رادیو پیش از استفاده نصب شده است. به غیر از مقدار دهی شیء به یک وضعیت آماده معتبر ، تفاوت اساسی دیگر این است که یک Constructor هیچ مقدار برگشتی صریحی ندارد . تمامی Constructor ها یک متغیر جدیداً اختصاص یافته را برای استفاده در برنامه شما بر میگردانند .در نتیجه ، برگرداندن یک مقدار در Constructor کلاس ، غیرقانونی است . اطمینان یافتن از طراحی مناسب اشیاء و Constructor های آنها ، مسئلهای است که توسعه دهندگان زیادی اغلب با آن روبرو میشوند . هنگامی که کلاس برنامهنویسان را وادار میکند که اعضای شیء را پیش از استفاده از متدهای خود تنظیم کنند یا هنگامی که کلاس برنامهنویس را وادار میکند تا از ترتیب خاصی ، هنگام فراخوانی متدهای شیء پیروی کند ، کد گیج کننده و مبهمی را ایجاد میکند . از OPP به این منظور استفاده میکنیم که به طور کلی از بروز چنین مسئلهای جلوگیری کنیم . اگر کلاس مهندسی شده است تا از Constructor های خود برای معرفی بخشهای کلیدی کلاس استفاده نکند ، اشکال از طراحی ضعیف ناشی میگردد . دوباره در همان تله گرفتار نشوید .کلاسی که خوب طراحی شده باشد برنامهنویسی ، اشکالزدایی و نگهداری زیادی را حذف میکند .بیایید نگاهی به دستور زبان کلی برای Class در PHP بیندازیم ، که استفاده از این سه نوع کامپوننت را نشان میدهد : PHP Code:
همانگونه که میبینید ، یک کلاس چیزی نیست جز یک مجموعه از اعضای تعریف شده (متغیرها) و متدها (توابع) . اعضا میتوانند یا انواع داده اولیه نظیر integer ها و رشتهها یا انواع پیچیدهتری نظیر آرایهها یا اشیاء دیگر باشند . از آنجایی که PHP از شما انتظار ندارد که انواع را تعریف کنید ، فقط میتوانید متغیرهایتان را در بالای کلاس ، به صورتی که در بالا نشان داده شد ، نام ببرید .
با PHP میتوانید متغیرهایی را در تابع خود ایجاد کنید ؛ آنها به همان خوبی که مورد انتظارتان است کا رخواهند کرد . اگرچه ، تمرین خوبی نخواهد بود اگر این کار را انجام دهید . این به آن خاطر است که وقتی برنامهنویسان دیگر به کلاس شما نگاه میکنند ، فوراً تمامی اعضای آن را پیش از نگاه کردن به پیادهسازی توابع بشناسند .
متدها به سادگی تمام سرویسهایی هستند که این کلاس تضمین میکند تا برای سرویس گیرندههایش فراهم کند. سرویس گیرندهها میتوانند برنامههای دیگر ، پروژههای دیگر و غیره باشند.
Class.php :
در این فایل دو کار انجام می شود :
CheckFileConfig() این تابع چک می کند که آیا فایل config.php موجود است یا خیر در غیر این صورت برنامه را غیر فعال خواهد کرد.
Connect () این تابع برنامه را به بانک اطلاعاتی متصل می کند.
Index.php:
این قسمت وظیفه کنترل فایل های سیستم را عهده دار می باشد
session start : این تابع باعث می باشد که جلسات که برای ورود و خروج می باشد در صفحه باقی بماند و در عبور و مرور پاک نشود.