امروزه گستردگی جوامع ، نیازهاو کثرت وابستگی مردم را به یکدیگر ،شرایط جدیدی را فراهم آورده که گذران امور با روش های سنتی را غیر ممکن می سازد.
بشر روزگارانی را گذرانده که به حداقل جمعیت بر روی کره زمین، زندگی کرده و تنها نیازش خوراک و پوشاک بوده است. گذشت زمان و افزایش نیاز ها و لزوم برقراری ارتباط بیشتر، موجب پیدایش زبان ایما و اشاره و سپس نقاشی و خط گردید.
بسیار زمان گذشت تا بشر نسبت به ثبت و ضبط منظور خودش ، در قالب کلمات نوشتاری اقدام کرد و حساب ها را ثبت نمود.
اکنون ارتباط آموزشی، اداری، تجاری و... هر کدام دنیایی از مفاهیم و اعداد و روابط را در درون خود دارد که بدون ثبت و ضبط دقیق و سازمان یافته آنها و بکارگیری علم و فن آوری، استفاده از آنها غیر ممکن است. آنچه در این پایان نامه ارائه می شود کوششی است برای سریعتر انجام شدن عمل امانت گرفتن کتاب از کتابخانه و همچنین کاستن از رفت و آمد های بیهوده.
پس از تعریف صورت پروژه، انتخاب ابزار و محیط مناسب برای پیاده سازی طرح مورد نظر، در اولویت قرار گرفت که بعد از مطالعات صورت گرفته، تصمیم گرفتیم که از زبان برنامه نویسی تحت وبPHP و زبان پایگاه داده MySql استفاده کنیم.
در فصل های مختلف این پایان نامه، مراحل طراحی و پیاده سازی سیستم کتابخانه الکترونیک شرح داده شده است.
در فصل اول به معرفی نرم افزار های مورد استفاده در این پروژه پرداختیم. در فصل دوم، امکان سنجی سیستم و مراحل دقیق طراحی سیستم بیان شده است. در فصل سوم جداول پایگاه داده و روابط بین آنها و تشریح کد، شرح داده شده است.فصل چهارم پیوست(نمایی از سایت)می باشد.
فصل اول- آشنایی با نرم افزار های مورد استفاده
PHP چیست ؟
PHP سال 1994 توسط Rasmus Lerdorf ایجاد شد و مخفف واژگان Personal Home Pages به حساب
می آید.
با گسترش قابلیت ها و موارد استفاده این زبان PHP در معنای Hypertext Preprocessor به کار گرفته شد. عبارت پیش پردازشگر (Preprocessor) بدین معنی است که PHP اطلاعات را قبل از تبدیل به زبان Html پردازش می کند.
مطابق مطالب سایت وب رسمی PHP که در آدرس http://www.php.net قرار دارد، PHP زبان اسکریپتی سمت سرویس دهندهHtml Embeded , Cross-Platform ,(Server-side) می باشد.
سمت سرویس دهنده بودن PHP بدین معناست که تمام پردازشهای این زبان بر روی سرویس دهنده (Server) انجام می گیرد. یک سرویس دهنده در حقیقت یک کامپیوتر مخصوص می باشد که صفحات وب در آنجا نگهداری می شوند و از آنجا به مرورگر وب کاربران منتقل می شوند.
منظور از Cross-Platform بودن این زبان این است که بروی هر سیستم و با هر سیستم عاملی از قبیل : Unix, Windows NT, Macintosh, Os/2 اجرا میشوند. توجه کنید که منظور از سیستم عامل، سیستم عامل هایی می باشند که بر روی سرویس دهنده نصب می شوند. PHP نه تنها قابلیت اجرا بر روی هر سیستم عاملی را دارا می باشد بلکه برای منتقل کردن برنامه های آن از یک سیستم عامل به سیستم عامل دیگر احتیاج به تغییرات اندکی خواهید داشت و حتی در بعضی از موارد بدون احتیاج به هیچ تغییری می توانید یک برنامه به زبان php را از یک سیستم عامل به سیستم عامل دیگر منتقل کنید. منظور از Html embeded بودن PHP این است که دستورات این زبان در بین کدهای html قرار می گیرند. بنابراین برنامه نویسی به زبان PHP کمی پیچیده تر از برنامه نویسی به زبان Html به حساب می آید.
PHP بر خلاف زبانهای برنامه نویسی (Programming Languages) یک زبان اسکریپتی (Scripting Language) می باشد به عبارت دیگر دستورات PHP بعد از رخداد یک رویداد (Event) اجرا می شوند. این رویدادها می توانند شامل ارسال یک فرم رفتن به یک URL مشخص و یا مواد دیگر باشند متداولترین زبان اسکریپتی زبان Java Script می باشد که معمولا برای پاسخ به رویدادهای کاربر در مرورگر وب به کار می رود تفاوت عمده Java Script با PHP در این است که Java Script یک تکنولوژی سمت سرویس گیرنده (Client-side) می باشد.
زبان هایی مانند Java Script یا PHP تفسیر شونده (Interpreted) نامیده می شوند. به عبارت دیگر برای اجرا به یک مفسر مانند مرورگر وب احتیاج دارند. اما زبانهای برنامه نویسی مانند C یا Java بعد از ترجمه به زبان ماشین (Compile) به خودی خود قابل اجرا می باشند.
جدیدترین نسخه PHP نسخه 4 این زبان اسکریپتی می باشد و کلیه فایل ها و کدهایی که توی این وبلاگ ارائه میشه تحت این نسخه کار میکنند. اما یک مشکل هست که اکثر سرویس دهنده ها از نسخه 3 استفاده میکنند. تفاوت این دو نسخه PHP بسیار اندک هست و تغییرات مهم عموما در مسیر اصلاح عملکرد این زبان صورت گرفته شده است.
PHP و مقایسه آن با Perl CGI
امروزه با توجه به اینکه روز به روز بر تعداد میزبانهایی که PHP رو ساپورت میکنند افزوده میشود ، صحبت در مورد PHP و قابلیتهای آن در میان طراحان وب و برنامه نویسان زیاد است.
برای کسانی که فقط نامی از PHP شنیده اند و از تواناییها و مزیت های PHP آگاهی ندارند در این توضیحات PHP را به طور مختصر شرح میدهم و آن را با اسکریپتهای CGI مقایسه میکنم.
همان طورکه گفتیم PHP یک زبان طرف خادم (server side ) می باشد و ما میتوانیم برای ساخت صفحات دینامیک وب از آن استفاده کنیم. برای مثال مدیریت و ساماندهی اطلاعات دریافتی از یک form html با PHP بسیار آسان است.
زبانها
اگر با زبانهای C , C++ , Perl یا Java کار کرده باشیم یاد گرفتن زبان PHP میتواند مانند زنگ تفریح باشد! در واقع خیلی سریع میتوانید اسکریپت نویسی را با PHP شروع کنیم.
متغیرها در PHP مانند perl هستند (با پیشوند $ ) و انواع مختلف داده ها را میتوانند در خود ذخیره کنند. برای مثال $whatever میتواند انواع داده ها شامل رشته ای ، عددی و غیره را در خود نگه دارد.
اگر مقدار $whatever یک عدد باشد شما میتوانید مقدار آن را اینگونه افزایش دهید:
$whatever ++;
یا
$whatever =+1;
یا
$whatever=$whatever+1;
که دقیقا همان روشی است که در C ، C++ ، Perl یا Java به کار میبردید.
تسهیلات توکار (Built-in facilities )
بر خلاف Perl که یک زبان همه منظوره است و شما میتوانید تقریبا هر برنامه ای را با آن بنویسید ، PHP از ابتدا با هدف اسکریپت نویسی برای صفحات وب درست شده ، از اینرو اسکریپت نویسی برای صفحات وب در PHP بسیار آسانتر از Perl می باشدبرای مثال میخواهیم از یک فرم در یک صفحه وب ایمیلی را به آدرس خودمان ارسال کنیم. به کمک Perl احتمالا کدی شبیه زیر را مینویسیم :
open ( MAIL,|/usr/sbin/sendmail -t);
print MAIL To: myself\@mydomain.com\n ;
print MAIL From: visitor\@hisdomain.com\n ;
print MAIL Subject: Comments from Web Form\n\n ;
print MAIL $mainmessage ;
close ( MAIL ) ;
اما همین برنامه در PHP به شکل زیر نوشته می شود :
mail ( myself@mydomain.com, Comments from Web Form,
$mainmessage, From: visitor@hisdomain.com );
این سادگی و روانی برای بقیه کارها هم صادق است ، مانند فرستادن یا بازیابی یک پرونده با FTP یا HTTP.همانطور که گفته شد این سادگی از آنجا ناشی میشود که PHP فقط برای برنامه نویسی برای صفحات وب طراحی شده است.
تسهیلات دیگر آن در اداره کردن input های یک form می باشد ، برای مثال یک فرم مانند زیر را در نظر بگیرید:
type=text name=dateofbirth>
شما خیلی راحت و سریع می توانید به محتویات این فرم در متغیر $dateofbirth دسترسی داشته باشید. نیازی به تجزیه و تحلیل input های فرم نیست.
تمام فیلد ها در یک فرم به طور اتوماتیک به متغیرهایی تبدیل میشوند که شما خیلی راحت میتوانید به آنها دسترسی داشته باشید.
دسترسی به پایگاه داده ها هم به همین شکل آسان و راحت است. کار با پایگاه های داده مانند MySQL, MSQL, Dbase, Oracle, InterBase, از قابلیتهای ذاتی (Built-in) PHP است . PHP حتی برای رمزنگاری MIME هم تابعی در نظر گرفته است. قابلیتها و تسهیلات PHP بسیار زیاد است .
ساخت صفحات وب
یک صفحه PHP میتواند شبیه کد زیر باشد :
My First PHP ScriptMy First PHP Script
Welcome, Internet user from IP address
. Hope you like my first
PHP page.
توجه کنید که این دقیقا شبیه source صفحات وب می باشد مگر در موارد که دستورات PHP را شامل می شوند. این کد آدرس IP بیننده صفحه را مینویسد ، برای همین از دستور echo استفاده کرده ایم . متغیر محیطی وب سرور (environment variable) REMOTE_ADDR به صورت اتوماتیک با متغیری به همین نام در PHP شناخته میشود (مانند دیگر متغیرهای محیطی وب سرور). از اینرو نوشتن چنین
اسکریپتهایی بسیار آسان و لذت بخش خواهد بود!
اشکال زدایی PHP در مقایسه با Perl CGI
اگر شما اسکریپتهای نوشته شده را به صورت آنلاین آزمایش و اشکال زدایی میکنید PHP واقعا در این زمینه می درخشد!
هنگامی که اشکالی در یک اسکریپت Perl پیدا شود شما یک پیغام رمزگونه و نامفهوم (چیزی شبیه 500 Internal Server Error) دریافت میکنید.اما وقتی که اسکریپت های PHP خود را به صورت آنلاین آزمایش میکنید ، هنگام مواجه شدن با اشکال پیغام خطا را با اشاره دقیق به شماره خط دارای اشکال میدهد و این برای اشکال زدایی خیلی کار ما را راحت میکند ، هر چند پیغام خطا گاهی اوقات کلی و نامفهوم است مانند parse error.
ولی در Perl پیغام خطای Internal Server Error می تواند از هر چیزی ناشی شود ، از اشتباه در syntax گرفته تا جا انداختن یک حرف یا upload کردن فایل در غیر text mode .اما اشکال زدایی به صورت آفلاین کاملا برعکس می باشد.بیشتر برنامه نویسان اعتقاد دارند که مفسر Perl هنگام مواجه شدن با خطا پیغام بهتر و مفید تری میدهد تا مفسر PHP که مثلا برای بسیاری از خطاها پیغام کلی parse error را میدهد که این امر هم با توجه به انتشار نسخه های جدیدتر PHP میتواند برطرف شود.