آموزش PHP


آموزش PHP



اينم از لينك:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اميدوارم كه خوشتون بياد



در مورد وبلاگ blogfa.com

1:



می خوام توی یک صفحه html یک فریم ایجاد کنم که آدرس لود شدنش با توجه به url باشه

2:

فيلتره
يه ادرس ديگه ميدي


یه سوال در مورد برنامه نویسی مبتنی بر وب (حرفه ای ها بیان)

3:

با سلام ..

اين اموزش ها رو فعلا داشته باشيد ...

[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]

[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]

البته فكر ميكنم در تاپيك هاي ديگه معرفي شده باشن ..

در هر صورت لينك ي كه سعيد جان برنامه دادن مشكل دار شده و ديگه كار نميكنه !


ایجاد کد Asp.net با استفاده از xml. لطفا راهنمایی کنید

4:



تغير رندوم جاي تصاوير

5:

با سلام ..

فكر نكنم پسورد گذاشته باشم !!

شما كلمات زير رو امتحان بكن :

P30world يا P30world.com


طراحي صفحات وب بصورت حرفه اي

6:

فیییییییلتترررررررررههههه هههههههه .


کمک در موردیه اسکریپت php
بید جیگر .


7:


با سلام ..

دوست من از ادرس هاي زير اموزش ها رو دانلود كنيد :

[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]

و

[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]


سپس دانلود لطفا اينجا بگيد كه فايل ها پسورد دارند يا نه ..

ممنونم

8:


9:

پسورد دارن لطفا پسورد هاشونو بده !!!

10:

با سلام ...

پسورد فايل فشرده : p30world

11:

مرسی .

جواد جان .


12:

دوستان خيلي ممنون...


13:

راستی یکی از فایل ها خرابه .


14:

با سلام ..

كدوم آدرس منظور شماست !

15:

منم اينجا يك سري مقالات جمع آوري شده خودم رو ميذارم ! با ذكر منبع البته !
اميد وارم جزو تاپيك هاي مفيد بشه ! فقط اگر دوستان كسي Php رو مسلط هست اينجا جوابگايشان سوالات باشه چون من صرفا مقاله هايي كه خودم جمع آوري كردم رو اينجا برنامه ميدم.


با تشكر

16:

PHP چيست ؟

PHP سال 1994 توسط Rasmus Lerdorf ايجاد شد و مخفف واژگان Personal Home Pages به حساب مي آيد.

با گسترش قابليت ها و موارد هستفاده اين زبان PHP در معناي Hypertext Preprocessor به كار گرفته شد.

عبارت پيش پردازشگر (Preprocessor) بدين معني هست كه PHP اطلاعات را قبل از تبديل به زبان Html پردازش مي كند.
مطابق مطالب سايت وب رسمي PHP كه در آدرس [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] برنامه دارد، 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 بسيار اندك هست و تغييرات مهم عموما در مسير اصلاح عملكرد اين زبان صورت گرفته شده هست.

By Mohammad Mojrian

17:


18:

خوب از حالا به بعد يكم بحث را تخصصي تر كنيم ! در ادامــــــه مي خواهيم در مورد اين صحبت كنيم كه : PHP چگونه كار مي كند؟ و ما چطوري مي توانيم برنامه هاي PHP رو اجرا كنيم و به چيزهاي احتياج داريم؟
همان طور كه ميدانيد PHP يك زبان سمت سرايشانس گيرنده هست! و اين بدان معني هست كه كدهاي نوشته شده به اين زبان در كامپيوتر ميزبان (Host) صفحــــــات وب برنامه مي گيرد.

براي مثال وقتي كه شما به سايت وب [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] مي رايشاند ISP (Internet Servise Provider) شما در خواست (Request) شمـــــــــــا را به سرايشانس دهنده اي كه اطلاعت اين سايت را نگهداري مي كند ارسال مي كند.

در اين هنگام سرايشانس دهنده سپس مطالعهكدهاي PHP اونهــــا را پردازش مي كند .

براي مثال در اين مورد PHP به سرايشانس دهنده فرمان مي دهد كه اطلاعــــات يك صفحه وب را به صورت برچسبهاي HTML به مرورگر شما منتقل كند بنابراين PHP يك صفحه HTML را توليد مي كند.

اين حالت با هنگامي كه صفحه ار ابتدا با كدهـــاي HTML طراحي شده باشد تفاوت دارد در حالت دوم تنها يك درخواست به سرايشانس دهنده ارســــال مي شود و سرايشانس دهنده نيز اطلات HTML موجود را به مرورگر كــــــــــــاربر منتقل مي كند بنابراين براي مرورگر كاربر تفـاوتي بين home.html و home.php وجود ندارد اما تفاوت عمده اي بين اين دو حالت وجود دارد و اون اين هست كه در حــــــــــالت اول صفحه بصورت ديناميك توسط سرايشانس دهنده توليد شده هست ولي در حـــالت دوم به صورت بدين صورت نيست و ممكن هست براي مثال تفاوتي بين اينكه كــــاربر قبلا اين صفحه را بازديد كرده يا براي بار اول هست كه بازديد مي كند وجود داشته باشد.

پس هر اونچه PHP انجام مي دهد در همان سمت سرايشانس دهنده انجام مي دهد و سپس اطلاعات مناسب را به سرايشانس گيرنده منتقل مي كند.

مهمترين نيــــاز براي كار با PHP دسترسي به سرايشانس دهنده اي مي باشد كه PHP را پشتيباني كند.
قبلا فرمودم كه PHP يك زبان سمت سرايشانس دهنده مي باشد.
براي مطمئن شدن در اين مورد كه آيا سرايشانس دهنده شمــــــــــــا از PHP هستفــاده مي كند يا نه مي توانيد گوشي تلفن رو برداريد شماره اونها رو بگيريد و از ايشــــــان سئوال كنيد )
در ادامه در مورد اينكه چطوري مي توانيد سيستم خودتان را به يك سرايشانس دهنده تبديل كنيد و چطوري مي توانيد سرايشانس دهنده اي را كه خودتـان راه انداخته ايد به PHP مجهز كنيد توضيح خواهم داد.


براي اينكــــــــــه شما سيستم خودتان را به يك سرايشانس دهنده تبديل كنيد اول بايد مطمئن شديد كه آيا سيستم عاملي كه از اون هستفــاده مي كنيد قدرت اين را دارد كه به يك سرايشانس دهنده تبديل شود يا نه؟ منظورم اين هست كه آيا اين نسخــه از سيستم عامل شما قابليت تبديل شدن به يك Web Server رو داراست يا نه ؟ تا جايي كه من اطلاعات دارم سيستم عامل هاي كه PHP مي تواند رايشان اونهـــــا نصب گردد عبارتند از : Unix,Windows, Macintosh , Os/2 Linux
البته بحث ما بيشتر پيرامون دو سيستم عاملخواهد بود: Linux و Windows .
در درسهاي بعدي منتظر اين باشيد كه چگونه مي توانيد سيستم خودتـان را به يك Web Serve تبديل كنيد و چطـــــــــوري مي توانيد اون رو پيكر بندي كنيد كه از PHP پشتيباني كند! پس با ما باشيد....




19:


20:

خوب از حالا به بعد يكم بحث را تخصصي تر كنيم ! در ادامــــــه مي خواهيم در مورد اين صحبت كنيم كه : PHP چگونه كار مي كند؟ و ما چطوري مي توانيم برنامه هاي PHP رو اجرا كنيم و به چيزهاي احتياج داريم؟
همان طور كه ميدانيد PHP يك زبان سمت سرايشانس گيرنده هست! و اين بدان معني هست كه كدهاي نوشته شده به اين زبان در كامپيوتر ميزبان (Host) صفحــــــات وب برنامه مي گيرد.

براي مثال وقتي كه شما به سايت وب [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] مي رايشاند ISP (Internet Servise Provider) شما در خواست (Request) شمـــــــــــا را به سرايشانس دهنده اي كه اطلاعت اين سايت را نگهداري مي كند ارسال مي كند.

در اين هنگام سرايشانس دهنده سپس مطالعهكدهاي PHP اونهــــا را پردازش مي كند .

براي مثال در اين مورد PHP به سرايشانس دهنده فرمان مي دهد كه اطلاعــــات يك صفحه وب را به صورت برچسبهاي HTML به مرورگر شما منتقل كند بنابراين PHP يك صفحه HTML را توليد مي كند.

اين حالت با هنگامي كه صفحه ار ابتدا با كدهـــاي HTML طراحي شده باشد تفاوت دارد در حالت دوم تنها يك درخواست به سرايشانس دهنده ارســــال مي شود و سرايشانس دهنده نيز اطلات HTML موجود را به مرورگر كــــــــــــاربر منتقل مي كند بنابراين براي مرورگر كاربر تفـاوتي بين home.html و home.php وجود ندارد اما تفاوت عمده اي بين اين دو حالت وجود دارد و اون اين هست كه در حــــــــــالت اول صفحه بصورت ديناميك توسط سرايشانس دهنده توليد شده هست ولي در حـــالت دوم به صورت بدين صورت نيست و ممكن هست براي مثال تفاوتي بين اينكه كــــاربر قبلا اين صفحه را بازديد كرده يا براي بار اول هست كه بازديد مي كند وجود داشته باشد.

پس هر اونچه PHP انجام مي دهد در همان سمت سرايشانس دهنده انجام مي دهد و سپس اطلاعات مناسب را به سرايشانس گيرنده منتقل مي كند.

مهمترين نيــــاز براي كار با PHP دسترسي به سرايشانس دهنده اي مي باشد كه PHP را پشتيباني كند.
قبلا فرمودم كه PHP يك زبان سمت سرايشانس دهنده مي باشد.
براي مطمئن شدن در اين مورد كه آيا سرايشانس دهنده شمــــــــــــا از PHP هستفــاده مي كند يا نه مي توانيد گوشي تلفن رو برداريد شماره اونها رو بگيريد و از ايشــــــان سئوال كنيد )
در ادامه در مورد اينكه چطوري مي توانيد سيستم خودتان را به يك سرايشانس دهنده تبديل كنيد و چطوري مي توانيد سرايشانس دهنده اي را كه خودتـان راه انداخته ايد به PHP مجهز كنيد توضيح خواهم داد.


براي اينكــــــــــه شما سيستم خودتان را به يك سرايشانس دهنده تبديل كنيد اول بايد مطمئن شديد كه آيا سيستم عاملي كه از اون هستفــاده مي كنيد قدرت اين را دارد كه به يك سرايشانس دهنده تبديل شود يا نه؟ منظورم اين هست كه آيا اين نسخــه از سيستم عامل شما قابليت تبديل شدن به يك Web Server رو داراست يا نه ؟ تا جايي كه من اطلاعات دارم سيستم عامل هاي كه PHP مي تواند رايشان اونهـــــا نصب گردد عبارتند از : Unix,Windows, Macintosh , Os/2 Linux
البته بحث ما بيشتر پيرامون دو سيستم عاملخواهد بود: Linux و Windows .
در درسهاي بعدي منتظر اين باشيد كه چگونه مي توانيد سيستم خودتـان را به يك Web Serve تبديل كنيد و چطـــــــــوري مي توانيد اون رو پيكر بندي كنيد كه از PHP پشتيباني كند! پس با ما باشيد....




21:

مقدمات نصب PHP (مشترک در تمامی حالات)
آخرین نسخهء PHP را از سایت رسمی PHP به آدرس [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] می گیریم.

(توجه کنید که نسخهء installer را نگیرید.)
فایل فشرده را باز کرده و در شاخهء دلخواه (در اینجا c:\php) می ریزیم.
به شاخهء c:\php رفته و شاخه ای با نام tmp و شاخه ای با نام uptmp بسازید.

(این نام ها اختیاری هستند)
فایل php.ini-recommended که در شاخهء c:\php وجود دارد را با notepade باز کرده، register_globals را پیدا کرده و مقدار جلوی اون را on کنید.

سپس متغیر upload_tmp_dir را پیدا کرده و مقدار c:\php\uptmp را در جلوی اون برنامه دهید و متغیر session.save_path را نیز پیدا کرده و مقدار c:\php\tmp را جلوی اون بنویسید.

نصب PHP 4 روی IIS به صورت CGI
فایل php.ini-recommended را باز کرده، extension_dir را جستجو کنید و مقدار جلوی اون را به c:\php\extensions تغییر دهید و سپس متغیر cgi.force_redirect را پیدا کرده، ";" جلوی اون را حذف کنید و مقدار اون را برابر با صفر برنامه دهید.
فایل php.ini-recommended را به php.ini تغییر نام داده و در شاخهء ویندوز خود بریزید.
در IIS خود به برگهء Home Directory رفته و سپس روی دکمهء configuration کلیک کنید.

در قسمت App Mapping مقادیر زیر را وارد کنید:




Executable : C:\php\php.exe
Extension : .php



سرور را دوباره راه اندازی کنید.

نصب PHP 5 روی IIS به صورت CGI
فایل php.ini-recommended را باز کرده، extension_dir را جستجو کنید و مقدار جلوی اون را به c:\php\ext تغییر دهید، سپس علامت ";" را از جلوی خط extension=php_mysql.dll بردارید و سپس متغیر cgi.force_redirect را پیدا کرده، ";" جلوی اون را حذف کنید و مقدار اون را برابر با صفر برنامه دهید.
فایل libmysql.dll که در شاخهء c:\php وجود دارد را در شاخهء ویندوز خود کپی کنید.
فایل php.ini-recommended را به php.ini تغییر نام داده و در شاخهء ویندوز خود بریزید.

در IIS خود به برگهء Home Directory رفته و سپس روی دکمهء configuration کلیک کنید.

در قسمت App Mapping مقادیر زیر را وارد کنید:



Executable : C:\php\php-cgi.exe
Extension : .php



سرور را دوباره راه اندازی کنید.

نصب PHP 4 روی IIS به صورت ISAPI
فايل‌هاى c:\php\php4ts.dll و c:\php\sapi\php4isapi.dll و c:\php\dlls\*.dll را در شاخه system ویندوز خود ذخيره كنيد.
فایل php.ini-recommended را باز کرده، extension_dir را جستجو کنید و مقدار جلوی اون را به c:\php\extensions تغییر دهید و سپس متغیر cgi.force_redirect را پیدا کرده، ";" جلوی اون را حذف کنید و مقدار اون را برابر با صفر برنامه دهید.
فایل php.ini-recommended را به php.ini تغییر نام داده و در شاخهء ویندوز خود بریزید.

در IIS خود به برگهء Home Directory رفته و سپس روی دکمهء configuration کلیک کنید.

در قسمت App Mapping مقادیر زیر را وارد کنید:



Executable : C:\{WIN_DIR}\system\php4isapi.dll
Extension : .php



سپس به برگهء ISAPI رفته و مقادیر زیر را وارد کنید:



Filter Name : php
Executable : C:\{WIN_DIR}\system\php4isapi.dll



سرور را دوباره راه اندازی کنید.

نصب PHP 5 روی IIS به صورت ISAPI
فایل php.ini-recommended را باز کرده، extension_dir را جستجو کنید و مقدار جلوی اون را به c:\php\ext تغییر دهید، سپس علامت ";" را از جلوی خط extension=php_mysql.dll بردارید و سپس متغیر cgi.force_redirect را پیدا کرده، ";" جلوی اون را حذف کنید و مقدار اون را برابر با صفر برنامه دهید.
فایل php.ini-recommended را به php.ini تغییر نام داده و در شاخهء ویندوز خود بریزید.
فایل های php5isapi.dll و php5ts.dll که در شاخهء c:\php وجود دارد را در شاخهء system ویندوز خود کپی کنید.
فایل libmysql.dll که در شاخهء c:\php وجود دارد را در شاخهء ویندوز خود کپی کنید.

در IIS خود به برگهء Home Directory رفته و سپس روی دکمهء configuration کلیک کنید.

در قسمت App Mapping مقادیر زیر را وارد کنید:



Executable : C:\{WIN_DIR}\system\php5isapi.dll
Extension : .php



سپس به برگهء ISAPI رفته و مقادیر زیر را وارد کنید:



Filter Name : php
Executable : C:\{WIN_DIR}\system\php5isapi.dll



سرور را دوباره راه اندازی کنید.

نصب PHP 4 روی Apache به صورت CGI
فایل php.ini-recommended را باز کرده، extension_dir را جستجو کنید و مقدار جلوی اون را به c:\php\extensions تغییر بدهید و سپس نام فایل را به php.ini تغییر داده و به شاخهء نصب Apache منتقل کنید.
در شاخه ‌ای که Apache را نصب کرده‌اید، زیرشاخه‌ای به نام \conf وجود دارد که در اون می‌ توانید فایل httpd.conf که مربوط به پیکربندی این برنامه هست را بیابید.

با یک notepad می‌ توانید این پرونده را باز کرده و تغییرات زیر را اعمال کنید.
در بخشی که ScriptAlias ها معرفی شده‌اند، سطر زیر را وارد می‌کنیم:



ScriptAlias /php/ \"c:/php/\"



به قسمت AddType application رفته و سطر زیر را می نویسیم:



AddType application/x-httpd-php .php



در بخش Action application هم این خط اضافه می ‌شود:



Action application/x-httpd-php \"/php/php.exe\"



در جلوی مقدار DirectoryIndex مقادیر دلخواه برای index شدن رو برنامه می دهیم، خط شما چیزی مشابه زیر خواهد شد:



DirectoryIndex index.html index.htm index.html.var index.php



سرور را دوباره راه اندازی کنید.

نصب PHP 5 روی Apache به صورت CGI
فایل php.ini-recommended را باز کرده، extension_dir را جستجو کنید و مقدار جلوی اون را به c:\php\ext تغییر بدهید، سپس علامت ";" را از جلوی خط extension=php_mysql.dll بردارید و نام فایل را به php.ini تغییر داده و به شاخهء نصب Apache منتقل کنید.
فایل libmysql.dll که در شاخهء c:\php وجود دارد را در شاخهء ویندوز خود کپی کنید.

در شاخه ‌ای که Apache را نصب کرده‌اید، زیرشاخه‌ای به نام \conf وجود دارد که در اون می‌ توانید فایل httpd.conf که مربوط به پیکربندی این برنامه هست را بیابید.

با یک notepad می‌ توانید این پرونده را باز کرده و تغییرات زیر را اعمال کنید.
در بخشی که ScriptAlias ها معرفی شده‌اند، سطر زیر را وارد می‌کنیم:



ScriptAlias /php/ \"c:/php/\"



به قسمت AddType application رفته و سطر زیر را می نویسیم:



AddType application/x-httpd-php .php



در بخش Action application هم این خط اضافه می ‌شود:



Action application/x-httpd-php \"/php/php-cgi.exe\"



در جلوی مقدار DirectoryIndex مقادیر دلخواه برای index شدن رو برنامه می دهیم، خط شما چیزی مشابه زیر خواهد شد:



DirectoryIndex index.html index.htm index.html.var index.php



سرور را دوباره راه اندازی کنید.

نصب PHP 4 روی Apache2 به صورت Module
فایل php.ini-recommended را باز کرده، extension_dir را جستجو کنید و مقدار جلوی اون را به c:\php\extensions تغییر بدهید و سپس نام فایل را به php.ini تغییر داده و به شاخهء نصب Apache منتقل کنید.
فايل‌هاى c:\php\php4ts.dll و c:\php\sapi\php4isapi.dll را در شاخه modules در شاخهء نصب Apache ذخيره كنيد.
در شاخه ‌ای که Apache را نصب کرده‌اید، زیرشاخه‌ای به نام \conf وجود دارد که در اون می‌ توانید فایل httpd.conf که مربوط به پیکربندی این برنامه هست را بیابید.

با یک notepad می‌ توانید این پرونده را باز کرده و تغییرات زیر را اعمال کنید.

در بخشی که LoadModule ها معرفی شده‌اند، سطر زیر را وارد می‌کنیم:



LoadModule php4_module modules/php4apache2.dll



به قسمت AddType application رفته و سطر زیر را می نویسیم:



AddType application/x-httpd-php .php



در جلوی مقدار DirectoryIndex مقادیر دلخواه برای index شدن رو برنامه می دهیم، خط شما چیزی مشابه زیر خواهد شد:



DirectoryIndex index.html index.htm index.html.var index.php



سرور را دوباره راه اندازی کنید.

نصب PHP 5 روی Apache2 به صورت Module
فایل php.ini-recommended را باز کرده، extension_dir را جستجو کنید و مقدار جلوی اون را به c:\php\ext تغییر بدهید و سپس نام فایل را به php.ini تغییر داده و به شاخهء نصب Apache منتقل کنید.
فايل‌هاى c:\php\php5ts.dll و c:\php\php5isapi.dll را در شاخه modules در شاخهء نصب Apache ذخيره كنيد.
در شاخه ‌ای که Apache را نصب کرده‌اید، زیرشاخه‌ای به نام \conf وجود دارد که در اون می‌ توانید فایل httpd.conf که مربوط به پیکربندی این برنامه هست را بیابید.

با یک notepad می‌ توانید این پرونده را باز کرده و تغییرات زیر را اعمال کنید.

در بخشی که LoadModule ها معرفی شده‌اند، سطر زیر را وارد می‌کنیم:



LoadModule php5_module modules/php5apache2.dll



به قسمت AddType application رفته و سطر زیر را می نویسیم:



AddType application/x-httpd-php .php



در جلوی مقدار DirectoryIndex مقادیر دلخواه برای index شدن رو برنامه می دهیم، خط شما چیزی مشابه زیر خواهد شد:



DirectoryIndex index.html index.htm index.html.var index.php



سرور را دوباره راه اندازی کنید.

نايشانسنده: امید متقی راد

22:


23:

روش نصب PHP بروى windows 95/98/Me NT/2000/XP



PHP بر روى win32 بدو صورت نصب مىشود

1 - بصورت CGI executable
2 - بصورت server module SAPI




--------------------------------------------------------------------------------

1 - نصب PHP بصورت CGI executable :

نصب PHP بصورت CGI executable بسيار ساده مىباشد براى اين كار شما بايد بر روى PC خود يكى از web server هاى زير را داشته باشيد

Personal Web Server 3 and 4 or newer
Internet Information Server 3 and 4 or newer
Apache 1.3.x
OmniHTTPd 2.0b1 and up
Oreilly Website Pro
Xitami
Netscape Enterprise Server, iPlanet
در سايت [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] شما مىتوانيد php Installer را بر روى PC خود ذخيره كنيد
اين برنامه php را بر روى PC شما بصورت CGI executable و با پشتيبانى MySQL نصب خواهد كرد و web Server شما را بصورت automatic تنظيم خواهد كرد


--------------------------------------------------------------------------------

2 - نصب PHP بر روى win32 بصورت server module SAPI :

نصب PHP بصورت server module SAPI بر روى Apache توسط دوست عزيوقت آقاى على نادرى در قسمت مقالات بطور كامل توضيح داده شده هست
و اما نصب PHP بر روى IIS :
جهت اين كار ابتدا بايد PHP را از اين آدرس Windows Binaries بر روى PC خود ذخيره كنيد
محتايشانات اين فايل كه بصورت zip هست را در شاخه‌اى كه مىخواهيد php را نصب كنيد برنامه دهيد c:\php خوب هست
پس از اين كار فايل‌هاى php4ts.dll و sapi/php4isapi.dll و dlls/*.dll را در شاخه system ذخيره كنيد

c:\windows\system for Windows 9x/ME
c:\winnt\system32 for Windows NT/2000
c:\windows\system32 for Windows XP
فايل php.ini-recommended را به php.ini تغيير نام داده و در شاخه WINDOWS ذخيره كنيد
در فايل php.ini تغييرات زير را ايجاد كنيد:
شما بايد extension_dir را به شاخه extension هاى مورد نظر خود تغيير دهيد چنانچه مطابق با توضيحات پيش رفته باشيد اين مسير c:\php\extensions مىباشد
فايل browscap.ini را در

c:\windows\system\inetsrv\browscap.ini on Windows 9x/Me,
c:\winnt\system32\inetsrv\browscap.ini on NT/2000,
c:\windows\system32\inetsrv\browscap.ini on XP.


جنانجه پس از نصب PHP فايلهاى شما در شناختن variable ها مشكل داشتيد در فايل php.ini پارامتر register_globals را از off به on تغيير دهيد
سپس در IIS در قسمت

Home Directory > configuration > App Mappings :

Executable : C:\WINNT\system\php4isapi.dll
Extension : .php
را اضافه كنيد در قسمت ISAPI نيز

Filter Name : php
Executable : C:\WINNT\system\php4isapi.dll


پس از يك بار stop / start كردن IIS شما مىتوانيد PHP را بر روى PC خود اجرا كنيد
موفق باشيد

نايشانسنده: مصطفى افتخارى زاده

24:


25:

در این نوشته سعی خواهم کرد روش نصب PHP به همراه Apache HTTP Server را تا حد ممکن به صورت گام به‌گام توضیح دهم.





- نرم‌افزار Apache HTTP Server را از آدرس:



[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]



پایین آورده و اون‌را نصب کنید .

( در حالتی‌که همه‌ی گزینه‌ها، پیش‌فرض ( Default ) هستند بدون مشکل پیش خواهید رفت.

)









- نرم‌افزار PHP و Installer اون را هم از آدرس‌های زیر Download کرده اون‌را Install ‌کنید:



[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]



[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]









- در شاخه‌ای که Apache HTTP Server را نصب کرده‌اید، زیرشاخه‌ای به نام \conf وجود دارد که در اون می‌توانید فایل httpd.confکه مربوط به پیکربندی این برنامه هست را بیابید.

با یک ویرایش‌گر ساده‌ی متن می‌توانید این پرونده را باز کرده و تغییردهید.

برای اجرا شدن فایل‌ها با پسوند php تغییرات زیر باید در این پرونده اعمال شوند:



1- در بخشی که ScriptAliasها معرفی شده‌اند، سطر زیر را وارد می‌کنیم:

ScriptAlias /php4/ "c:/php/"
نکته این‌که: به جای c:/php/ باید مسیری را که PHP در اون نصب شده‌، وارد شود.





2- در قسمت AddType application ، سطر زیر را می‌آوریم:

AddType applicatin/x-httpd-php4 .php




3- در بخش Action application هم این خط اضافه می‌شود:

Action application/x-httpd-php4 "/php4/php.exe"




4- جلوی عبارت DocumentRoot بین علامت‌های نقل قول مسیر شاخه‌ای که می‌خواهید پرونده‌هایphp را دراون ذخیره و اجرا کنید، می‌نویسیم.( این زیر فهرست به عنوان LocalHost ما معرفی می‌شود.

)





- پس از اعمال این تغییرات Apache HTTP Server را، با کلیک بر روی نشانه‌ی اون در Taskbar توسط منویی که باز می‌شود،Restart ‌کنید.



حال کافی‌ست برنامه‌ای را که با PHP نوشته‌اید، در شاخه‌ای که در بند ۴ به اون اشاره کردم کپی کرده و برای نمایش اون در Browser در بخش آدرس تایپ کنید : [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] [ProgramName].php

نايشانسنده: [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]

26:


27:

امروز در مورد شكل كلي ساختار برنامه هاي PHP و روش هستفاده از PHP در ميان HTML صحبت ميكنيم و همينطور يك برنامه ساده براي شروع كار رو ياد مي گيريم!!!

براي شروع به آموختن هر زبان برنامه نايشانسي شما احتياج به اين خواهيد داشت كه با قواعد دستوري ( syntax ) اون زبان آشنا شايشاند و اين همان چيزي هست كه در اين درس به اون مي پردازيم.

دستورات پايه
براي ايجاد اولين صفحه PHP شما دقيقا همان كاري را خواهيد كرد كه براي ايجاد اولين صفحه HTML احتمالا انجام داده ايد.
دو تفاوت پايه ي بين يك متن HTML هستاندارد و يك متن PHP وجود دارد.


1- اسكريپتهاي PHP بايد در يك فايل با پسوند .برنامه بگيرند php ( مانند index.php)
2- همينطور براي جدا كردن كدهاي PHP از كدهاي HTML بايد كدهاي PHP در بين برچسبهاي <?php و <؟ برنامه گيرند.

تا كنون دو نكته از شكل دستوري PHP رو ياد گرفتيد حالا باهم روند ايجاد يك صفحه نمونه يا بهتر بگم اولين برنامه PHP خود را دنبال مي كنيم.

ابتدا يك ايشانراشگر متن مانند Notepad و يا هر برنامه اي كه مي پسنديد را باز كنيد.
توضيح : شما مي توانيد از هر ايشانرايشگر متني براي نوشتن دستورات PHP هستفاده كنيد و همينطور مي توانيد از نرم افزار هايي كه مخصوص برنامه نايشانسان وب مي باشد هستفاده كنيد مانند Home Site و Macromedia Dreamweaver و Microsoft FrontPage و ...



از منايشان فايل گزينه NEW را براي ايجاد يك سند جديد انتخاب كنيد.
حال عبارتهاي زير را TYPE كنيد.

<html>
<head>
<title>First PHP Script</title>
</head>
<body>
<?php
?>
</body>
</html>

ساختار بالا ساده ترين ساختار براي يك سند HTML كه از برچسب هاي PHP هستفاده مي كند مي باشد.
تمام اسكريپتهاي PHP بايد در بين برچسبهاي مخصوص اون برنامه داده شوند تا به عنوان كدهاي PHP در نظر گرفته شوند.

در حاليكه تمام كدهاي خارج اين دو برچسب معمولا به صورت كدهاي HTML هستاندارد به مرورگر كاربر منتقل مي شوند.
حال با هستفاده از منايشان فايل گرينه Save As را انتخاب كنيد و نام فايل را frist.php برنامه دهيد و در مسير root اصلي كامپيوتر خود برنامه دهيد.هم اكنون شما موفق به ايجاد اولين اسكريپت PHP خود شديد و وقت اون رسيده هست كه حقيقتا عملي را با هستفاده از اسكريپت خود اجرا کنيد.
در اين تمرين ما از تابع phpinfo() هستفاده مي كنيم تا اطلاعاتي مخصوص نصب PHP در سرايشانس دهنده را به مرورگر ارسال مي كند.براي اضافه كردن تابع phpinfo() به اسكريپت خود فايل frist.php را در ايشانرايشگر متن خود باز كنيد.سپس در بين دو برچسب (<?php , ?>) يك خط جديد ايجاد كنيد و عبارت phpinfo(); را تايپ كنيد حال اسكريپت خود را ذخيره كنيد و اون را با هستفاده از مرورگر اجرا كنيد.

توضيح : كليه دستورات PHP به علامت سيمي كالون ( ختم مي شود عدم گذاشتن اين علامت باعث خطا در اجراي روند برنامه مي شود و يكي از خطا هاي معمول در برنامه هاي PHP مي باشد.

با اجراي اسكريپت خود در مرورگر اين صفحه را خواهيد ديد كه در اون اطلاعات مربوط به نصب و پشتيباني PHP برنامه دارد.

چند نكته :
1- برنامه ندادن علامت ; يكي از اشتباهات رايج در PHP مي باشد.

2- از اونجايي كه انتهاي هر دستور با يك علامت ; مشخص مي شود شما مي توانيد چندين دستور را پشت سرهم در يك خط تايپ كنيد و در انتهاي هر دستور يك علامت ; برنامه دهيد هر چند كه اين كار رو پيشنهاد نمي كنم.

3- هر دستور در PHP يك كد قابل اجرا محسوب ميشه! به عبارت ديگه يك مدل PHP سپس هر دستور ( مانند print() و يا phpinfo() ) يك فرمان را اجرا مي كند در مقابل ساختارهايي مانند خطوط توضيح ( Comment Line) برچسبهاي PHP ( php Tag) و يا ساختارهاي كنترلي ( شرطها حلقه ها و غيره ) يك دستور محسوب نمي شوند بنابراين به يك ; نيز ختم نمي شوند .



در درس بعدي چند مثال ساده ديگه به همراه چاپ يك پيغام در مرورگر و همينطور فرستادن كد هاي HTML به مرورگر از طريق PHP و همينطور اضافه کردن توضيحات به اسكريپت صحبت خواهيم كرد.

پس با ما باشيد...

By Mohammad Mojrian

28:

ادامه در شب هاي بعد ! خسته شدم !

29:

مثل اينكه زياد طرفدار نداره اين بحث ! در هر صورت من ادامه ميدم !





نوشته های زیر ترجمه آزادی از مرجع کامل php موجود در php.net/docs.php و همچنین برگزیده ای منابع زیر هست



کتب:



1.

php & mysql web development(sams)******

بهترین کتابی که من در این زمینه دیده ام

2.

php Developers cookbook(sams)****

همان طور که از نامش پیداست برای برنامه نویسان نوشته شده هست و در کل

کتاب بسیار جالبی هست

3.

MySQL and PHP Database Applications(M&T Books)***

بیشتر به بحث در رابطه با موسسه مالي اطلاعاتی mysql به همراه php می پردازد.

در نوع خود کتاب بسیار خوبی هست

4.

MySQL&mSQL(O'reilly)***

این کتاب بیشتر به بحث در رابطه با ابنک های اطلاعاتی می پردازد تا php

این کتاب به طور موازی mysql و msql را و کاربرد های اونها را آموزش میدهد



5.

Oreilly-PHP Pocket Reference(**)

به نظر من کتاب بسیار خوبی برای شروع هست اما برای ادامه نه!



6.

مرجع کامل php4 ترجمع گروه مهندسی ساحر****

من اکثر کتاب های ترجمه شده توسط این گروه را دارم در کل ترجمه این گروه روان و قابل فهم هست اما در مورد کتاب اینکه کتاب بسیار کاملی هست ولی من ترجیح میدهم بسیاری از مطالب را در کتاب دیگری بخوانم(به خصوص مبحث شی گرایی را)





سایت ها:

php.net******(Complete Reference)

(Project Center)******Sourceforge.net

(Main php Spenser)****** [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]

(It is little yet but it is wonderful)****iranphp.net

(Quick php Guide)*** [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]

(Scripts Reference)***** [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]



...



* = کیفیت از نظر شخصی من



در این سلسله مقالات طریقه کار با موسسه مالي اطلاعاتی mysql را phpبحث می کنم فرض من براین هست که شما اصول موسسه مالي های اطلاعاتی ودستور زبان SQL وهمچنین برنامه نویسی با php را بلدید.یکی از خصوصیات ممتاز php را میتوان توانایی کار با اکثر موسسه مالي های اطلاعاتی مثل sql server ویا mysql وبسیاری از دیتابیس های دیگر ذکر کرد.php برای موسسه مالي اطلاعاتی mysql توابع خاصی را درنظر گرفته هست که در اینجا به معرفی متداول ترین و کاربردی ترین اونها با ذکر مثال وکد نمونه می پردازم برای شرع تعدادی از توابع را معرفی وپس ازاتمام معرفی توابع در ادامه تکنیک های خاص هستفاده از اونها را ذکر خواهم کرد.در طول معرفی توابع از تعدادی مثال هستفاده خواهد شد اما برای اینکه واقعا چیزی یاد بگیرید تنها باید از فکر خودتان هستفاده کنید و بنا به کاربرد هایی که برای توابع ذکر میشود برنامه هایی را نوشته واجرا کنید.



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

البته در ادامه پرکاربرد ترین و عمومی ترین اون ها را توضیح خواهم داد.این مطالب را می توانید در مستندات php به زبان اصلی بخوانید هدف از این مطالب آشنایی شما با برخی توابع کاربردی هست که در قسمت های آتی تکنیک های هستفاده از اون ها را به شما یاد خواهم داد و در انتها با هم یک پروژه را انجام میدهیم.برخی از مطالب و توابعی را هم که در اینجا ذکر نکرده ام را (مثل حلقه foreach) در ادامه و در طی کار به شما خواهم فرمود.





توابع مورد کاربرد در php نسخه چهار و سی وسه()





[break]

Php 4.3.3 functions for working with mysql

*=توابعی که در این بخش راجع به اون ها صحبت خواهم کرد

**=قسمت هایی که در صورت ترجمه به اصل مطلب صدمه می خورد






*mysql_affected_rows – تعداد رکورد های تحت تاثیر برنامه گرفته در آخرین پرس و جوی انجام داده را می گیرد

mysql_change_user – کاربر فعال را در ارتباط جاری با موسسه مالي اطلاعاتی را عوض میکند عوض می کند

mysql_client_encoding – تنظیمات کاراکتری پیش فرض را از ارتباط جاری را باز میگرداند

*mysql_close – ارتباع جاری با پایگاه داده را قطع میکند

*mysql_connect – یک ارتباط جدید با پایگاه داده بربرنامه می کند

mysql_create_db – یک موسسه مالي اطلاعاتی میسازد

mysql_data_seek – نشانگر (پیوینتر) داخلی مجموعه جواب را حرکت می دهد

mysql_db_name – اطلاعات جواب پرس و جو را می گیرد

mysql_db_query – پرس و جو را ارسال می کند

mysql_drop_db – موسسه مالي اطلاعاتی را حذف میکند

mysql_errno – شماره خطای ایجاد شده در آخرین عملیات را باز می گرداند

mysql_error – متن خطای ایجاد شده در آخرین عملیات را باز میگرداند

mysql_escape_string –یک رشته را برای کار با موسسه مالي اطلاعاتی تطبیق می کند

*mysql_fetch_array – یک مجموعه جواب بازگشتی را در آرایه ای انجمنی یا اندیسی یا هر دو می ریزد

*mysql_fetch_assoc - یک مجموعه جواب بازگشتی را در آرایه ای انجمنی می ریزد

mysql_fetch_field – اطلاعات یک ستون را از یک مجموعه جواب میگیرد و یک شی را باز میگرداند

mysql_fetch_lengths – طول هر کدام از جواب های خروجی را باز می گرداند

*mysql_fetch_object – یک مجموعه جواب را در یک شی می ریزد

*mysql_fetch_row – یک مجموعه جواب را به صورت یک آرایه شمارشی در می آورد

mysql_field_flags – نمایه فیلد معرفی شده در مجموعه جواب را باز می گرداند

mysql_field_len – طول فیلد مشخص شده را باز میگرداند

mysql_field_name – نام فیلد مشخص شده در مجموعه جواب را باز می گرداند

mysql_field_seek – نشانه گر جواب را در فیلد مبدا مشخص شده برنامه می دهد

mysql_field_table – نام جدولی را که فیلد در اون برنامه دارد را باز می گرداند

mysql_field_type – نوع فیلد موجود در مجموعه جواب را باز می گرداند

mysql_free_result – حافظه را از مجموعه جواب خالی می کند

mysql_get_client_info – اطلاعات خدمات گیرنده پایگاه داده را بدست می آورد

mysql_get_host_info - اطلاعات میزبان پایگاه داده را بدست می آورد

mysql_get_proto_info – پروتکل(قوانین) مورد هستفاده در پایگاه داده را میگیرد نسخه

mysql_get_server_info - اطلاعات خدمات دهنده پایگاه داده را بدست می آورد

mysql_info – اطلاعاتی در مورد جدیدترین پرسش و جواب را باز می گرداند

*mysql_insert_id – شناسه آخرین فیلد اضافه شده را باز می گرداند

*mysql_list_dbs – موسسه مالي های اطلاعاتی موجود را نشان می دهد

*mysql_list_fields – ستون های جدول را نشان می دهد

mysql_list_processes – پردازش های انجام شده را نشان می دهد

*mysql_list_tables - لیست جدول های یک موسسه مالي اطلاعاتی را نشان می دهد

*mysql_num_fields – تعداد فیلد های یک مجموعه جواب را باز می گرداند

*mysql_num_rows - تعداد سطرهای یک مجموعه جواب را باز می گرداند

*mysql_pconnect – یک اتصال دائمی با پایگاه داده بر برنامه می کند

*mysql_ping – یک ارتباط را پینگ می کند و در صورت بربرنامه نبودن ارتباط اونرا بربرنامه میسازد

*mysql_query – یک پرس و جو را ارسال میکند

mysql_real_escape_string کاراکتر های ویژه را در یک رشته برای هستفاده از پایگاه داده بهینه میکند و در این عمل از تنظیمات کاراکتری موجود در پایگاه داده هستفاده می کند.

*mysql_result - اطلاعات مجموعه جواب را باز میگرداند

*mysql_select_db – یک موسسه مالي اطلاعاتی را نتخاب می کند

mysql_stat – وضعیت سیستم جاری را باز می گرداند

mysql_tablename – نام جدول فیلد را باز میگرداند

**mysql_thread_id –جاری را باز می گرداند thread شناسه

mysql_unbuffered_query – یک پرس و جو را بدون واسطه به پایگاه داده ارسال می کند





در نسخه پنجم php که هنوز در مرحله بتا هست توابع بسیار قدرتمند دیگری نیز اضافه شده هست که معمولا به صورت Mysqli_* می باشند.در کل php 5 خیلی به سمت شی گرایی رفته هست بنابراین توابع مورد هستفاده در اون نیز تا حد امکان سعی در اضافه نمودن هرچه بیشتر امکانات شی گرایی دارند.پس از پایان این دروس توایع نسخه پنجم را نیز بررسی خواهیم کرد که البته بعلت تغییرات ناچیز یاد گیری و هستفاده از اونها چندان مشکل نخواهد بود.

توجه کنید لازم نیست شما تک تک این توابع را حفظ کنید بلکه با دانلود کردن مرجع کامل php از سایت php.net می توانید هر وقت که لازم داشتید توضیحات مربوط به اون را بخوانید من توصیه می کنم که فایل chm را دانلود کنید زیرا هستفاده از اون سریع تر و راحت تر هست

در اینجا کاربردی ترین توابع را در نسخه جاری php(4.3.3) بحث می کنم





* تابع mysql_ping توجه کنید این تابع تنها کاری که می کند بررسی اتصال به موتور mysql هست و معمولا در اسکریپت های تست که برای تست کردن آمادگی سرور بکار می رود هستفاده می شود.این تابع یک اتصال به mysql را ping می کند و در صورت موفقیت و بازگشت جواب true و در غیر اینصورتfalse را باز می گرداند.در صورت قطع بودن ارتباط سعی میکند اونرا بر برنامه سازد.







mysql_ping()
Ping a server connection or reconnect if there is no connection (PHP 4 >= 4.3.0)
bool mysql_ping ( [resource link_identifier ] )
Example:
<?php
$conn=mysql_connect($db_host, $db_user, $db_password);
$db=mysql_select_db($db_name);
if(mysql_ping($conn)){
echo "your database is online\",
} else {
echo \"your database is offline\",
}
mysql_close($conn);
?>







[break]


* تابع mysql_connect که وظیفه برقراری ارتباط با موسسه مالي اطلاعاتی را برعهده دارد و معمولا اولین خط اسکریپت کار با mysql را تشکیل میدهد زیرا تا وقتی که این تابع مقدار true را بازنگرداند شما اصلا به موتور mysql متصل نیستید تا بتوانبد کاری را اجرا کنید!توجه کنید پس از پایان اسکریپت یا فراخوانی تابع mysql_close این اتصال قطع خواهد شد.





mysql_connect()
Open a connection to a MySQL Server (PHP 3, PHP 4 )
resource mysql_connect ( [string server [, string username [, string password [, bool new_link [, int client_flags ]]]]] )
Example:
<?php
$conn = mysql_connect("localhost\",\"mysql username\",\"mysql _password\") or die(Could not connect to database deamon:.mysql_error());
$db = mysql_select_db(\"your database name\",$conn) or die(Could not select database:.mysql_error());
$query = mysql_query (\"select * from tablename\");
mysql_close ($conn);
?>








* تابع mysql_pconnect که وظیفه برقراری ارتباط دائمی با موسسه مالي اطلاعاتی را داراست و سپس پایان اسکریپت و یا فراخوانی تابعmysql_close ارتباط قطع نمی شود.کاربرد این تابع در مواقعی هست که شما می خواهید در وقت صرفه جویی کنید زیرا این تابع باعث می شود در فراخوانی های متعدد از همین ارتباط برای تبادل داده هستفاده شود و ارتباط جدیدی بر برنامه نگردد.

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

توجه کنید برای هستفاده ازاین تابع شما حتما باید phpرا به عنوان ماژول نصب کنید نه CGI این یکی از راه های سریع کردن و بهینه کردن کد هست اما توجه کنید که این امر می تواند باعث مشکل نیز بشود زیرا سبب ایجاد اتصالات بیهوده و بیکار که اصطلاحا اونها را idle می نامند می گردد توجه کنید این اتصالات به هر حال منابع سرور شما را مصرف خواهند کرد بنابراین کاربرد غلط اون می تواند موجب مشکلاتی شود.





mysql_pconnect()
Open a persistent connection to a MySQL server (PHP 3, PHP 4 )
resource mysql_pconnect ( [string server [, string username [, string password [, int client_flags]]]] )
Example:
<?php
$conn=mysql_pconnect("localhost\",\"mysql_username \",\"mysql_password\") or die(Could not connect to database deamon:.mysql_error());
$db = mysql_select_db (\"your database name\",$conn) or die(Could not select database:.mysql_error());
$Query = mysql_query (\"select * from tablename\");
mysql_close ($conn);
?>
P = persistent = دائمی








* تابع mysql_close که باعث بسته شدن اتصال غیر دائمی به پایگاه داده می شود.





mysql_close()
Close MySQL connection (PHP 3, PHP 4 )
bool mysql_close ( [resource link_identifier ] )
Example:
<?php
$conn = mysql_connect ("localhost\",\"mysql username\",\"mysql_ password\") or die(Could not connect to database deamon:.mysql_error());
$db = mysql_select_db (\"your database name\",$conn) or die(Could not select database:.mysql_error());
$Query = mysql_query(\"select * from tablename\");
mysql_close ($conn);
?>










[break]



* تابع mysql_select_db که بوسیله این تابع از اتصال جاری یک پایگاه داده را انتخاب می کنیم تا دستورات بعدی ما رو اون پایگاه داده اعمال شود.







mysql_select_db()
Select a MySQL database (PHP 3, PHP 4 )
bool mysql_select_db ( string database_name [, resource link_identifier ] )
Example:
<?php
$conn = mysql_connect("localhost\",\" mysql_user \",\"mysql_ password\") or die(Could not connect to database deamon:.mysql_error());
$db = mysql_select_db(\"your database name\",$conn) or die(Could not select database:.mysql_error());
$query = (\"select * from tablename\");
$result = mysql_query ($query);
mysql_close ($conn);
?>










· تابع mysql_query که جزو مهترین توابع هست زیرا این تابع دستورات sql شما را اجرا می کند این تابع معمولا با توابعmysql_fetch_* به همراه حلقه ها کار اصلی را در رابطه با پایگاه داده انجام میدهند





mysql_query()
Send a MySQL query (PHP 3, PHP 4 )
resource mysql_query ( string query [, resource link_identifier] )
Example:
<?php
$conn = mysql_connect("localhost\",\" mysql_user \",\"mysql_ password\") or die(Could not connect to database deamon:.mysql_error());
$db = mysql_select_db(\"your database name\",$conn) or die(Could not select database:.mysql_error());
$query = (\"insert into tablename values(1,2)\");
$result = mysql_query($query);
mysql_close($conn);
?>








· تابع mysql_result که برای یک رکورد از پردازش انجام شده توسط mysql_query() کاربرد دارد همان طور که قبلا فرمودم برای مطالعهتمامی رکورد ها باید از توابع mysql_fetch_* به همراه حلقه ها هستفاده کرد.آرگومان اول مجموعه جواب اجرا شده بوسیله تابع mysql_query وآرکومان دوم شماره رکوردی که می خواهید بخوانید و آرگومان سوم فیلدی هست که میخواهید بخوانید که در شورت معرفی نکردن آرگومان سوم اولین فیلد خوانده خواهد شد.





mysql_result()
Get result data (PHP 3, PHP 4 )
mixed mysql_result ( resource result, int row [, mixed field ] )
Example:
<?php
$conn=mysql_connect("localhost\",\" mysql_user \",\" mysql_password \");
$db=mysql_select_db(\"test\");
$query=\"select * from test\";
$result=mysql_query($query);
if($result) /*for testing result answer*/{
$record1=mysql_result($result,0,'name');
echo \"Rcord 1 is:\",$record1;
echo \"<p>\";
$record2=mysql_result($result,1,'name');
echo \"Rcord 2 is:\",$record2;
}
?>












· تابع mysql_affected_rows که تعداد سطرهایی را که توسط آخرین دستور delete یاreplace, یا insert یا ,update تحت تاثیر برنامه گرفته اند را باز می گرداند





mysql_affected_rows()
Get number of affected rows in previous MySQL operation (PHP 3, PHP 4 )
int mysql_affected_rows ( [resource link_identifier ] )
Example:
<?php
/* connect to database */
mysql_pconnect("localhost\", \"mysql_user\", \"mysql_password\") or
die(\"Could not connect: \" .

mysql_error());
mysql_select_db(\"mydb\");
/* this should return the correct numbers of deleted records */
mysql_query(\"DELETE FROM mytable WHERE id < 10\");
printf (\"Records deleted: %d\n\", mysql_affected_rows());
/* without a where clause in a delete statement, it should return 0 */
mysql_query(\"DELETE FROM mytable\");
printf (\"Records deleted: %d\n\", mysql_affected_rows());
?>








· تابع mysql_num_rows این تابع عملکردی مشابه تابع mysql_affected_rows دارد با این تفاوت که این تابع تعداد رکورد های مجمومه جواب بازگردانده شده از یک جستجوی select را بدست می آورد.از این تابع می توان برای بدست آوردن رکورهای یک جدول هستفاده کرد.







mysql_num_rows()
Get number of rows in result (PHP 3, PHP 4 )
int mysql_num_rows ( resource result )
Example:
<?php
$conn = mysql_connect("localhost\", \"mysql_user\", \"mysql_password\");
mysql_select_db(\"database\", $conn);
$result = mysql_query(\"SELECT * FROM table\", $link);
$num_rows = mysql_num_rows($result);
echo \"$num_rows Rows\n\";
?>








[break]



· تابع mysql_free_result که وظیفه آزاد سازی حافظه مصرف شده بوسیله نتایج بدست آمده از query را داراست.این تابع در اسکریپت های طولانی که اعمال زیادی را انجام می دهند و حافظه زیادی را مصرف می نمايند کاربرد دارد.

ولی در اسکریپت های عادی به اون نیازی نیست زیرا درphp پس از پایان اسکریپت به طور خورکار حافظه اختصاص داده شده به query آزاد می شود.







mysql_free_result()
Free result memory (PHP 3, PHP 4 )
bool mysql_free_result ( resource result )
Example:
<?php
$conn = mysql_connect("localhost\",\"mysql username\",\"mysql _password\") or die(Could not connect to database deamon:.mysql_error());
$db = mysql_select_db(\"your database name\",$conn) or die(Could not select database:.mysql_error());
$query = mysql_query (\"select * from tablename\");
mysql_free_result ($query);
mysql_close ($conn);
?>










· تابعmysql_fetch_array .

همان طور قبلا بارها فرمودم برای مطالعهتمامی سطرهای یک جدول از توابع mysq_fetch_* به همراه حلقه ها هستفاده میشود این توابع وظیفه دارند حاصل یک query را در یک آرایه یا مجموعه از اشیا بریزند تا بتوان به کمک حلقه ها تک تک اون ها را خواند.تابع mysql_fetch_array مجموعه جواب یک query را در یک آرایه می ریزد که بوسیله آرگومان دوم می توان طریقه ذخیره و دسترسی رادر آرایه(نوع آرایه) معیین کرد.







در اینجا لغات کلیدی را که در مثال های آتی هستفاده می کنم را توضیح میدهم انها به عنوان ثابت در php تعریف شده اند .



ثابت


توضیحات




MYSQL_ASSOC


Columns are returned into the array having the fieldname as the array index.



بوسیله این ثابت می تونید از نام فیلدهای خود برای دسترسی به اطلاعات اون ها هستفاده کنید




MYSQL_NUM


Columns are returned into the array having a numerical index to the fields.

This index starts with 0, the first field in the result.



بوسیله این ثابت می توانید از شماره اندیس آرایه برای دسترسی به اطلاعات فیلد ها هستفاده کنید




MYSQL_BOTH


Columns are returned into the array having both a numerical index and the fieldname as the array index.



بوسیله این ثابت می توانید از نام فیلد با اندیس اون در آرایه برای دسترسی به اطلاعات اون هستفاده کنید







mysql_fetch_array()
Fetch a result row as an associative array, a numeric array, or both.

(PHP 3, PHP 4 )
array mysql_fetch_array ( resource result [, int result_type ] )
1)Example for MYSQL_NUM:
<?php
mysql_connect("localhost\", \"mysql_user\", \"mysql_password\") or
die(\"Could not connect: \" .

mysql_error());
mysql_select_db(\"mydb\");
$result = mysql_query(\"SELECT id, name FROM mytable\");
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
printf (\"ID: %s Name: %s\", $row[0], $row[1]);
}
mysql_free_result($result); ?>



2)Example for MYSQL_ASSOC:
<?php
mysql_connect(\"localhost\", \"mysql_user\", \"mysql_password\") or
die(\"Could not connect: \" .

mysql_error());
mysql_select_db(\"mydb\");
$result = mysql_query(\"SELECT id, name FROM mytable\");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
printf (\"ID: %s Name: %s\", $row[\"id\"], $row[\"name\"]);
}
mysql_free_result($result);
?>
3)Example for MYSQL_BOTH:
<?php
mysql_connect(\"localhost\", \"mysql_user\", \"mysql_password\") or
die(\"Could not connect: \" .

mysql_error());
mysql_select_db(\"mydb\");
$result = mysql_query(\"SELECT id, name FROM mytable\");
while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
printf (\"ID: %s Name: %s\", $row[0], $row[\"name\"]);
} mysql_free_result($result);
?>








توجه کنید که در صورت معرفی نکردن ثابت به طور پیش فرض از MYSQL_NUM هستفاده میشود.





در ادامه تنها دو تابع از سری توابع mysql_fetch_* را معرفی میکنم زیرا تابع mysql_fetch_array تقریبا تمام نیاز های شما را بر طرف می کند اما در قسمت مباحث پیشرفته توابع mysql_fetch_field و mysql_fetch_lengths را نیزمعرفی خواهم کرد.

توجه کنید شما هم اکنون هم میتوانید بدون مشکل یک برنامه کامل با php & mysql بنویسید .



· تابع mysql_fetch_row که عملکردی کاملا مشابه mysql_fetch_array به همراه ثابت MYSQL_NUM دارد.



· تابع mysql_fetch_assoc که عملکردی کاملا مشابه mysql_fetch_array به همراه ثابت MYSQL_ASSOC دارد.



· تابع mysql_fetch_object



این تابع رکورد های بازگردانده شده بوسیله یک دستور select را به صورت مجموعه ای از اشیا باز می گرداند که در پایان پس از اتمام رکورد ها بوسیله بازگرداندن false اتمام رکورد ها را فراخوان می کند.در صورتی که به برنامه نویسی شی گرا علاقه دارید این تابع را دوست خواهید داشت.





mysql_fetch_object()
Fetch a result row as an object (PHP 3, PHP 4 )
object mysql_fetch_object ( resource result )
<?php
mysql_connect("hostname\", \"user\", \"password\");
mysql_select_db(\"mydb\");
$result = mysql_query(\"select * from mytable\");
while ($row = mysql_fetch_object($result)) {
echo $row->user_id;
echo $row->fullname;
}
?>







· و آخرین تابع که یک تابع کاربردی هست به نام mysql_insert_id
این تایع باعث بازگشت ID آخرین فیلد ایجاد شده بوسیله دستور insert می گردد.
*در جدول هایی که به طور ذاتی نمی توان برا ی اونها یک کلید اصلی (Primary key) تعریف کرد معمول هست که یک فیلد به نام ID که دارای خاصیت AUTO_INCREMENT هست تعریف می نمايند که یک فیلد عددی هست و برای فهمیدن تعداد رکور های جدول نیز کاربرد دارد.




mysql_insert_id()
Get the ID generated from the previous INSERT operation (PHP 3, PHP 4 )
int mysql_insert_id ( [resource link_identifier ] )
Example:
<?php
mysql_connect("localhost\", \"mysql_user\", \"mysql_password\") or
die(\"Could not connect: \" .

mysql_error());
mysql_select_db(\"mydb\");
mysql_query(\"INSERT INTO mytable (name) values (\"houtan')\");
printf (\"Last inserted record has id %d\n\", mysql_insert_id());
?>



خب توابعی که فکر می کردم برای شروع کار با mysql لازم میشود را فرمودم اما همان طور که قبلا فرمودم توابع زیادی در php برای کار با mysql تعبیه شده هست در قسمت مباحث پیشرفته توابعی را به شما خواهم فرمود که توانایی های جالب و بعضا قدرتمندی دارند اما شما هم اکنون هم می توانید یک برنامه کامل و حرفه ای را با هستفاده از این توابع بنویسید که در ادامه یک برنامه برای تمرین با هم خواهیم نوشت اما به یاد داشته باشید تا وقتی که خودتان برنامه ننویسی و به مشکل برنخورید چیز زیادی در عمل یاد نخواهید گرفت در ضمن آخرین نکته اینکه اگر دارید تمرین میکنید و هیچ مشکلی در برنامه هایی که میخواهید بنویسی ندارید و می بینید همه چیز را بلدید فکر کنم باید در نحوه تمرین کردن خود تجدید نظر کنید.


30:

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

خب در مرحله اول من باید جدول خود را طراحی کنم.جدول من باید حاوی نام, نام خانوادگی,email, شغل و یک فیلد دیگر باشد که مشخص کند آیا کاربر مایل هست اخبار جدید سایت برای او ارسال شود یا نه.اما آیا این ها کافی هست؟من همیشه یک فیلد به نام ID به جدول خود اضافه می کنم.این فیلد که یک فیلد عددی هست را معمولا به عنوان کلید اصلی جدول تعریف می کنم.در ادامه فواید این فیلد اضافه را خواهید دید.

خب من قبل از هر چیزی باید به پایگاه داده ام وصل شوم پس می نویسم:




<?php

$conn=mysql_connect("localhost\",\"root\",\"pass\" ) or

die(\"Could not connect;\".mysql_error());

?>




اگر در این مرحله مشکلی پیش بیاید بوسیله تابع die() از اجرای باقی برنامه جلوگیری کرده و پیغام مقتضی را روی صفحه نمایش نشان می دهم نقش تابع mysql_error() این هست که پیغام خطای mysql را روی صفحه نمایش دهد و من بوسیله عملگر .

از این تایع برای کامل کردن پیغام خطای اتصال هستفاده کرده ام.

اکنون من یک موسسه مالي اطلا عاتی می سازم تا درون اون جدول یا جداول مورد نیازم را ایجاد کنم.



<?php

$conn = mysql_pconnect("localhost\", \"root\", \"pass\")

or die(\"Could not connect: \" .

mysql_error());



if (mysql_create_db(\"my_db\")) {

print (\"Database created successfully\n\");

} else {

printf (\"Error creating database: %s\n\", mysql_error());

}

?>




*توجه کنید میزبان شما معمولا نرم افزاری مثل phpmyadmin را در اختیار شما میگذارد تا مدیریت خود را روی mysql اعمال کنید.

*فراموش نکنید من فقط یک بار از mysql_create_db() هستفاده می کنم تا یک موسسه مالي اطلاعاتی بسازم و سپس اون چون کارهایم را روی اون انجام می دهم دیگر احتیاجی به هستفاده از این تابع نیست!

اکنون من موسسه مالي اطلاعاتی را که ساختم به عنوان موسسه مالي اطلاعاتی جاری مشخص می کنم تا باقی اعملا روی اون انجام شود.



<?php

$conn = mysql_pconnect("localhost\", \"root\", \"pass\")

or die(\"Could not connect: \" .

mysql_error());

$db=mysql_select_db(\"my_db\") or die(\"Could not select database:\".mysql_error());

?>




خب برنامه من اکنون آماده هست تا فرامینی به زبان sql را بگیرد و برای پردازش به mysql بدهد.برای

ارسال فرامین به mysql برای پردازش از mysql_query() هستفاده می شود به مثال توجه کنید.



<?php

$conn = mysql_pconnect("localhost\", \"root\", \"triadpass\")

or die(\"Could not connect: \" .

mysql_error());

$db=mysql_select_db(\"my_db\") or die(\"Could not select database:\".mysql_error());

$query='CREATE TABLE `users` ( `id` INT NOT NULL AUTO_INCREMENT ,'

.

' `name` VARCHAR( 15 ) NOT NULL ,'

.

' `family` VARCHAR( 20 ) NOT NULL ,'

.

' `email` VARCHAR( 20 ) NOT NULL ,'

.

' `job` VARCHAR( 20 ) ,'

.

' `newspost` TINYINT NOT NULL ,'

.

' PRIMARY KEY ( `id` ) );'

.

' ';



if(mysql_query($query)){

print \"Table successfuly created\";}

else print \"Error in create table\";

?>




من تا به حال یک موسسه مالي اطلاعاتی به همراه یک جدول درون اون را ساخته ام.توجه کنید شما لوازم های زیادی را در اینترنت می توانید پیدا کنید که این کار را بسیا ساده تر و مطمئن تر برای شما اجرا کنند مثل phpmyadmin که خود بوسیله php نوشته شده و در آدرس [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] میتوانید آخرین نسخه اون را دانلود واستفاده کنید.در اکثر مواقع میزبان شما به عنوان یکی از خذماتش یک برنامه مدیریت موسسه مالي اطلاعاتی را برای شما تدارک دیده هست.

از این به بعد بحث ما کمی کاربردی تر خواهد شد.

در اولین مرحله من می خواهم فرمی داشته باشم که کاربر مشخصات خود را دراون ثبت کند و پس از ارسال در جدول موسسه مالي اطلاعاتی من ذخیره شود.ابتدا فرم را طراحی می کنیم:



<html>

<form name=\"form1\" method=\"post\" action=\"<?=$_SERVER['PHP_SELF']?>\">

<p>Name:

<input type=\"text\" name=\"name\">

Family:

<input type=\"text\" name=\"family\">

Email:

<input type=\"text\" name=\"email\">

Job:

<input type=\"text\" name=\"job\">



</p>

<p>Do you want to recived the site news via email? <font color=\"#006699\">Yes</font>

<input type=\"checkbox\" name=\"newspost\" value=\"checkbox\">

</p>

<p>

<center><input type=\"submit\" name=\"Submit\" value=\"Submit\"></center>

</p>

</form>

</html>



توجه کنید نام فیلد های شما بسیار مهم هست زیرا این نام به عنوان متغییر به برنامه پردازش فرم ارسال می شود.اگر به خط دوم توجه کید به این عبارت بر خواهید خورد



این عبارت از یک ارایه به نام $_SERVER[] هستفاده می کند.این آرایه شامل اطلاعاتی از قبیل هدرهاومسیرهاو....است که می توانید در مرجع کامل php موجود در php.net با عنوان

Predefined Variables این آرایه وبسیاری دیگر را پیدا کنید.به هر حال من از عنصر PHP_SELF در اینجا هستفاده کردم که وظیفه اون باز گرداندن مسیرکد جاری هست.




اکنون به کد کامل این فایل توجه کنید:



<?php

$name=$_POST['name'];

$family=$_POST['family'];

$email=$_POST['email'];

$job=$_POST['job'];

$newspost=$_POST['newspost'];

if(!empty($newspost)){

$newspost=1;

}

if(isset($name) && empty($name)==false && isset($family) && empty($family)==false&&

isset($email) && empty($email)==false && isset($job) && empty($job)==false){

$conn = mysql_pconnect("localhost\", \"root\", \"triadpass\")

or die(\"Could not connect: \" .

mysql_error());

$db=mysql_select_db(\"my_db\") or die(\"Could not select database:\".mysql_error());

$query=\"INSERT INTO users VALUES('','$name','$family','$email','$job','$news post')\";

$result=mysql_query($query) or die(\"Could not do query!\");

}

else

print \"Complete <b>ALL</b>for adding your self\";

?>

<html>

<form name=\"form1\" method=\"post\" action=\"<?=$_SERVER['PHP_SELF']?>\">

<p>Name:

<input type=\"text\" name=\"name\">

Family:

<input type=\"text\" name=\"family\">

Email:

<input type=\"text\" name=\"email\">

Job:

<input type=\"text\" name=\"job\">



</p>

<p>Do you want to recived the site news via email? <font color=\"#006699\">Yes</font>

<input type=\"checkbox\" name=\"newspost\" value=\"checkbox\">

</p>

<p>

<center><input type=\"submit\" name=\"Submit\" value=\"Submit\"></center>

</p>

</form>

</html>




توجه کنید که من قبل از هر چیزی از $_POST[]برای برنامه دادم متغییر های ارسال شده توسط فرم در متغییر های قابل هستفاده در php هست

(در حقیقت امذ متغییر های ارسال شده توسط فرم را درون یک آرایه می گذارد تا php از اون هستفاده کند)در نسخه های قدیمی این امر اجباری نبود اما در نسخه های جدید این امر اجباری شده که بیشترین دلیل اون به خاطر مسائل امنیتی هست.

*از نسخه4.2.0 این امر اجباری شده هست که به جای register_globald از آرایه های $HTTP_*_VARS[] هستفاده شود.با این حال شما با دست کاری در فایل php.ini می توانید این موضوع را تغییر دهید که این کار بدلیل مسائل انیتی اکیدا توصیه نمی شود.مقاله ای در این زمینه را در آدرس /studyinscarlet.txtwww.securereality.com.au

مشاهده کنید.

اما در اینجا مسئله ای که پیش می آید این هست که نوشتن $HTTP_POST_VARS[]کمی سخت هست بنابراین برای این آرایه ها اسامی مستعاری در نظر گرفته شد مثل$_POST[] برای$HTTP_POST_VARS[] یا...

خب من در ادامه بوسیله توابع empty() و isset() از پر بودن و موجود بودن متغییرهایم اطمینان حاصل کرده ام.اما اگر توجه کرده باشید من به دو روش از تابع empty() هستفاده کرده ام.



1-empty($varname) == false

2-!empty($varname)



هر دو این روش ها درست هست و من فقط برای یاد دادن به شما از هر دوی اون ها هستفاده کرده ام.

تابع empty() یک تابع Boolean هست یعنی مقدار بازگشتی اون یا true هست یا false

من در روش اول فرموده ام مقدار بازگشتی تابع empty() برابر false باشد که به معنای خالی بودن فیلد هست

روش دوم هم همین هست تنها تفاوت اون این هست که من از عملگر نفی (!) هستفاده کرده ام.

تابع isset() هم چک می کند که آیا متغیری به این نام تعریف شده هست یا نه.

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

حالا که من از مرحله تست کردن متغییر ها بدون خطا گذشته ام وارد مرحله کار با موسسه مالي اطلا عاتی میشوم .

من یک اتصال بربرنامه کرده ام.موسسه مالي اطلا عاتی خود را انتخاب کرده ام و دستورات sql را که می خواهم اجرا شود در متغییری به نام $queryریخته ام.سپس بوسیله تابع mysql_query() اون ها را به mysql داده ام تا اجرا کند.

شما اکنون می توانید از یک فرم برای ذخیره اطلاعات هستفاده کنید.من توابع مزتبط با این درس را برای شما مینویسم.اما بدون تمرین و به مشکل برخورد کردن چیزی یاد نخواهید گرفت.در صورتی که سوال یا مشکلی داشتید بوسیله houtanal at NOSPAM yahoo dot com اون را مطرح کنید.

در درس آینده بازیابی اطلاعات از چدرل و نمایش اونها به همراه جستجو در رکورد ها را به شما یاد خواهم داد.

تابع mysql_create_db()

این تابع یک موسسه مالي اطلاعاتی در پایگاه داده شما ایجاد می کند.


mysql_create_db()
Create a MySQL database (PHP 3, PHP 4 )
bool mysql_create_db ( string database_name [, resource link_identifier ] )
Example:
<?php
$link = mysql_pconnect("localhost\", \"mysql_user\", \"mysql_password\")
or die(\"Could not connect: \" .

mysql_error());
if (mysql_create_db(\"my_db\")) {
print (\"Database created successfully\n\");
} else {
printf (\"Error creating database: %s\n\", mysql_error());
}
?>




تابع isset()

این تابع از تعریف شدن و وجود متغییر اطمینان حاصل می کند.



isset()
Determine whether a variable is set (PHP 3, PHP 4 )
bool isset ( mixed var [, mixed var [, ...]] )
example:
<?php
$var = '';
// This will evaluate to &true; so the text will be printed.
if (isset($var)) {
print "This var is set set so I will print.\";
}
// In the next examples we'll use var_dump to output
// the return value of isset().
$a = \"test\";
$b = \"anothertest\";
var_dump( isset($a) ); // TRUE
var_dump( isset ($a, $b) ); // TRUE
unset ($a);
var_dump( isset ($a) ); // FALSE
var_dump( isset ($a, $b) ); // FALSE
$foo = NULL;
var_dump( isset ($foo) ); // FALSE
?>




تابع empty()

بررسی می کند آیا مقدار متغیر خالی هست یا نه در صورت پر بودن مقدار true و در غیر این صورت false را بر می گرداند.



empty()
Determine whether a variable is empty (PHP 3, PHP 4 )
bool empty ( mixed var )

example:
<?php
$var = 0;
// Evaluates to true because $var is empty
if (empty($var)) {
echo '$var is either 0, empty, or not set at all';
}
// Evaluates as true because $var is set
if (isset($var)) {
echo '$var is set even though it is empty';
}
?>




توابع مرتبط بیشتر برای مطالعه:



Mysql_drop_db(),mysql_change_user(),mysql_db_name( ),mysql_db_query()
unset(),define(),array_key_exist(),count(),strlen( )


نايشانسنده: هوتن القاسپور

31:

يكي از ايشانژگي هاي جالبي كه در php 5 ارائه شده هست يك Extension جديد به نام ext/mysqli مي باشد كه همانند ext/mysql سابق به عنوان يك رابط براي كار با پايگاه داده mysql از اون هستفاده مي شود.

برای برنامه های کاربردی در مقیاس بزرگتر ماژول جدید MySQLi به کاربران اجازه می دهد که از ویژگی های جدید MySQL 4.1 در برنامه های خود هستفاده نمايند که بازدهی بیشتری را نسبت به نسخه های قبلی MySQL فراهم می کند.

از اواسط دهه 90 تاكنون ext/mysql نقش خود را به عنوان يك پل رابط ميان PHP و MySQL به خوبي ايفا كرده هست.

اگرچه ext/mysql نقاط ضعف كمي داشته هست ولي توانسته هست كه همگام با تغييرات PHP و MySQL پيش رود.



اما وقتي كه PHP 5 و MySQL 4.1 پا به عرصه نهادند ext/mysql نشان داد كه براي سازگاري با پيشرفت هاي زياد اين دو نسخه، فقدان هايي را دارد.يكي از اين نفاط ضعف مربوط به برقراري ارتباط پايدار و دايمي با پايگاه داده (mysql_pconnect()) بود.

ايشانژگي ها و امكاناتي توسط MySQL ارائه شد كه ext/mysql هنوز قادر به سازگاري با اونها نبود.

براي رفع اين مشكلات Georg Richter شروع به ساخت يك extension جديد براي PHP 5 كرد كه با ايشانژگي هاي ارائه شده در MySQL 4.1 و نسخه هاي بالاتر همگام باشد.



مهمترين ايشانژگي هاي ارائه شده توسط ext/mysqli



ارائه يك واسط روالي (Procedural Interface) كه بسيار شبيه واسط ext/mysql مي باشد
ارائه يك واسط شي گرا(Object-Oriented Interface) كه در مقايسه با واسط روالي از انعطاف پذيري بيشتري برخوردار هست و كار با اون راحت تر هست(با توجه به امكانات شي گرايي در PHP 5)
پشتيباني از پروتكل باينري جديد MySQL كه در نسخه 4.1 عرضه شد.(اين پروتكل جديد در مقايسه با قبلي از بازدهي بيشتري برخوردار هست و امكانات گسترده اي همچون Prepared Statement را پشتيباني مي كند.)
پشتيباني از تمام ايشانژگي هاي مجموعه كتابخانه كاربري MySQL C كه شامل قابليت تنظيم گزينه هاي پيشرفته اتصال از طريق mysqli_init() و توابع وابسته مي شود.




به دو دليل توصيه مي شود كه به اين ماژول جديد switch كنيد و از اين به بعد با اين ماژول كار كنيد:

سرعت بيشتر
امنيت بيشتر




حرف i در انتهاي ext/mysqli به معناي ,improved, interface, ingenious, incompatible incomplete مي باشد!



نحوه كار با ext/mysqli



*قبل از كدنايشانسي توجه داشته باشيد كه براي هستفاده از اين ماژول، شما بايد PHP 5 و MySQL 4.1 را نصب كرده باشيد.كدهاي اين مقاله از پايگاه داده World هستفاده مي كنند كه به صورت رايگان از آدرس [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] قابل دريافت مي باشد.



برنامه ساده زير ابتدا به پايگاه داده متصل مي شود و با ارسال يك پرس و جو(Query) به Server ، دريافت نتايج و نمايش اونها و سپس بستن اتصال به كار خود خاتمه مي دهد:





<?php

/* Connect to a MySQL server */
$link = mysqli_connect(
'localhost', /* The host to connect to */
'user', /* The user to connect as */
'password', /* The password to use */
'world'); /* The default database to query */

if (!$link) {
printf("Can't connect to MySQL Server.

Errorcode: %s\n\", mysqli_connect_error());
exit;
}

/* Send a query to the server */
if ($result = mysqli_query($link, 'SELECT Name, Population FROM City ORDER BY Population DESC LIMIT 5')) {

print(\"Very large cities are:\n\");

/* Fetch the results of the query */
while( $row = mysqli_fetch_assoc($result) ){
printf(\"%s (%s)\n\", $row['Name'], $row['Population']);
}

/* Destroy the result set and free the memory used for it */
mysqli_free_result($result);
}

/* Close the connection */
mysqli_close($link);
?>




سپس اجراي اسكريپت بالا بايد خروجي را به صورت زير مشاهده كنيد:





Very large cities are:

Mumbai (Bombay) (10500000)
Seoul (9981619)
São Paulo (9968485)
Shanghai (9696300)
Jakarta (9604900)





همانطور كه در كد مشاهده مي كنيد در اينجا هيچ تفاوت خاصي بين ext/mysql و ext/mysqli مشاهده نمي شود جز اضافه کرده شدن حرف i به آخر توابع!



حال اگر از واسط شي گرا هستفاده كنيد و برنامه بالا را مجددا بازنايشانسي كنيد به انعطاف پذيري بيشتر و راحتي كار با اين واسط جديد پي مي بريد:



<?php

/* Connect to a MySQL server */
$mysqli = new mysqli('localhost', 'user', 'password', 'world');

if (mysqli_connect_errno()) {
printf("Can't connect to MySQL Server.

Errorcode: %s\n\", mysqli_connect_error());
exit;
}

/* Send a query to the server */
if ($result = $mysqli->query('SELECT Name, Population FROM City ORDER BY Population DESC LIMIT 5')) {

print(\"Very large cities are:\n\");

/* Fetch the results of the query */
while( $row = $result->fetch_assoc() ){
printf(\"%s (%s)\n\", $row['Name'], $row['Population']);
}

/* Destroy the result set and free the memory used for it */
$result->close();
}

/* Close the connection */
$mysqli->close();
?>






همانطور كه مشاهده مي كنيد اطلاعات مربوط به اتصال در اشياي $mysqli و $result ثبت مي شود و براي اجراي دستورات نيازي به مشخص كردن اين اطلاعات نداريم.

همينطور وقتي در بين نتايج پرس و جو به صورت سطر به سطر توسط تابع fetch_assoc() حركت مي كنيم ديگر نيازي به ساخت يك handle براي كار با ركوردها نداريم.



هستفاده از ايشانژگي Prepared Statements در پرس و جوها



مزيت Prepared Statements اين هست كه به كاربران امكان ساخت query هاي بسيار ايمن تر، با بازدهي بيشتر و راحت تر را مي دهد.

به دو صورت مي توان از اين ايشانژگي بهره برد: bound parameter prepared statements و bound result prepared statements



bound parameter prepared statements اين امكان را به ما مي دهد كه براي Query هاي خود قالب (Template) درست كنيم و اونها را در Server ذخيره كنيم.

وقتي نياز به اجراي Query داشتيم اطلاعات لازم را براي پر كردن Query به Server مي فرستيم و سپس Query كامل را اجرا مي كنيم.

اين كار دو مزيت دارد:

اول اينكه وقت كمتري صرف تجزيه و تحليل Query در هنگام اجرا مي شود.

و دوم اينكه از حملات تزريقي SQL(SQL injection attacks) جلوگيري مي شود.

در زير يك مثال كامل از به كارگيري اين ايشانژگي را در پرس و جوها مشاهده مي كنيد:



<?php
$mysqli = new mysqli('localhost', 'user', 'password', 'world');

/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n\", mysqli_connect_error());
exit();
}

$stmt = $mysqli->prepare(\"INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)\");
$stmt->bind_param('sssd', $code, $language, $official, $percent);

$code = 'DEU';
$language = 'Bavarian';
$official = \"F\";
$percent = 11.2;

/* execute prepared statement */
$stmt->execute();

printf(\"%d Row inserted.\n\", $stmt->affected_rows);

/* close statement and connection */
$stmt->close();

/* Clean up table CountryLanguage */
$mysqli->query(\"DELETE FROM CountryLanguage WHERE Language='Bavarian'\");
printf(\"%d Row deleted.\n\", $mysqli->affected_rows);

/* close connection */
$mysqli->close();
?>






توجه كنيد كه تابع bind_param() يك رشته كوتاه را به عنوان اولين پارامتر خود مي گيرد.

اين پارامتر String Format مي باشد و نوع متغيرهاي ارسالي را مشخص مي كند.

در مثال بالا sssd مشخص مي كند كه $code و $language و $official از نوع String مي باشند و $percent از نوع float يا Double مي باشد.

مشخص كردن اين نوع داده ها باعث مي شود كه ext/mysqli بداند كه چگونه داده ها را براي فرستادن كدگذاري كند و اين كار باعث بازدهي بالا مي شود.جدول زير نوع داده هاي قابل قبول را نشان مي دهد:





BIND TYPE
COLUMN TYPE

i
All INT types

d
DOUBLE and FLOAT

b
BLOBs

s
All other types






اگر با ASP.NET هم آشنايي داريد، در زير مي توانيد نحوه به كارگيري اين ايشانژگي را درASP.NET هم مشاهده كنيد و با PHP 5 مقايسه كنيد:





Dim cnn As New SQLConnection(\"server=LOCALHOST;User id=SA;password=;database=Northwind\")
Dim InsertCommand As SqlCommand = New SqlCommand()
InsertCommand.Connection = cnn
Dim sql As String
sql = \"INSERT INTO categories (categoryName) VALUES (@newCatName)\"

InsertCommand.CommandText = sql

InsertCommand.Parameters.Add(\"@newCatName\", SqlDbType.NVarChar, 250).Value = \"Category Name\"





Bound result prepared statements اين امكان را مي دهد كه مقدار فيلدهاي دريافتي از پايگاه داده را به متغير هاي دلخواه نسبت دهيم(چيزي شبيه تابع list كه عناصر يك آرايه را به متغير هاي دلخواه نسبت مي دهد.)

مثال زير هستفاده از اين ايشانژگي را نشان مي دهد:



<?php
$mysqli = new mysqli("localhost\", \"user\", \"password\", \"world\");

if (mysqli_connect_errno()) {
printf(\"Connect failed: %s\n\", mysqli_connect_error());
exit();
}

/* prepare statement */
if ($stmt = $mysqli->prepare(\"SELECT Code, Name FROM Country WHERE Code LIKE ? LIMIT 5\")) {

$stmt->bind_param(\"s\", $code);
$code = \"C%\";

$stmt->execute();

/* bind variables to prepared statement */
$stmt->bind_result($col1, $col2);

/* fetch values */
while ($stmt->fetch()) {
printf(\"%s %s\n\", $col1, $col2);
}

/* close statement */
$stmt->close();
}
/* close connection */
$mysqli->close();

?>

منبع: iranphp.net

32:

<?php
$link = mysql_pconnect("localhost\", \"mysql_user\", \"mysql_password\")
or exit(\"Could not connect\");
?>







این تابع دو فرق عمده با دستور mysql_connect دارد .
1- این دستور یک ارتباط پایدار با سرور ایجاد می کند به این نحوه که در صورتی که قبلا ارتباطی با همین Username و Password با این Mysql سرور ایجاد شده باشد ارتباط جدید ایجاد نمی کند و همان Connection در جواب در داخل متغیر $linke برنامه می دهد .
2- در اینجا تا موقعی که برنامه شما در حال اجراست این Conncetion‌ پایدار می ماند و با هستفاده از دستور mysql_close نمی توانید این ارتباط را قطع کنید .

فقط در صورت اتمام اجرای Script ارتباط قطع می شود .

کنترل اون هم دست خود سیستم هست .

منبع : iranphp.net

33:

<?php
$link = mysql_pconnect("localhost\", \"mysql_user\", \"mysql_password\")
or exit(\"Could not connect\");

if (mysql_create_db(\"my_db\")) {
print (\"Database created successfully\n\");
} else {
printf (\"Error creating database: %s\n\", mysql_error ());
}
?>







در اینجا در صورتی که Username و Password شما دسترسی به ایجاد موسسه مالي جدید در MySQL داشته باشد موسسه ماليی با نام my_db ایجاد خواهد شد .

نايشانسنده: سید حمید رضا هاشمی گلپایگانی

34:

در درس امروز مي خواهيم در مورد چگونگي هستفاد از نرم افزار Esay PHP صحبت كنيم.

در اين درس مرحله سوم يا آخرين مرحله نصب و پيكربندي PHP رو ياد مي گيريد.

اول كمي توضيح بدم كه Esay PHP چيه و چه كاري ميكنه! اين نرم افراز يك شبيه ساز وب سرور هست كه مي تونه برايشان كامپيوتر شما بدون نياز به IIS و PWS برنامه هاي PHP رو با هستفاده از كاوشگر اينترنت اجرا كنه.



همينطور اين نرم افزار امكان هستفاده از بانك اطلاعاتي مورد هستفاده در PHP رو به شما ميده ‚ در درسهاي بعدي بيشتر در مورد بانكهاي اطلاعاتي صحبت مي كنيم! براي نصب و پيكربندي Esay PHP ابتدا بايد اون رو از اينجا دريافت كنيد و بعد مراحل زير رو براي نصب طي كنيد!

با كليك كردن رايشان فايل اجرايي "easyphp1-6_setup" مي توانيد Wizard نصب رو اجرا كنيد.

با اجراي فايل نصب پيغامي رو مشاهده خواهيد كرد كه در اون از شما براي نصب نرم افزار Esay PHP اجازه كسب مي كنه كه شما با زدن دكمه YES كادر رو تاييد كرده و كار نصب رو ادامه مي دهيد.



سپس اين پنجره باز خواهد شد كه به شما اطلاعاتي در مورد نرم افزار Esay PHP ميده كه شما مي تونيد با زدن دكمه Suivant (من خودم تو زبان Wizard نصب اين موندم اگه كسي ميدونه چه زباني هست به من هم بگه!!!)مي توانيد به مرحله بعد بريد.



سپس پنجره Accord de Licence باز خواهد شد كه شما با فشار دكمه Oui مي توانيد به مرحله بعدي برايشاند.
در اين مرحله از Wizard نصب مسيري كه فايل هاي Esay PHP قراره در اونجا كپي شوند رو به شما نشان خواهد داد كه شما مي توانيد اين مسير نصب رو عوض كنيد و با فشار دكمه Suivant > به كار خود ادامه دهيد.
در مرحله بعد محلي كه براي برنامه گرفتن ميانبر هاي Esay PHP در Programes رو مشخص مي كند كه شما مي تونيد با فشار دكمه Suivant > به Wizard نصب ادامه دهيد و به مرحله بعدي برايشاند.

در اين مرحله از شما براي كپي كردن فايلهاي Esay PHP اجازه مي خواهد كه شما با فشار دكمه Installer اين كادر را تاييد مي كنيد.

حال شما شاهد كپي شدن فايلها در مسير تعيين شده هستيد و بايد اندكي استقامت كنيد تا عمل كپي انجام شود.

سپس اتمام كپي فايل از شما مي خواهد كه سيستم را دوباره راه اندازي كنيد كه شما با فشار دكمه Terminer اجازه اين كار را به برنامه خواهيد داد.

حالا سپس دوباره راه اندازي سيستم در قسمت كازينه سيستم شمايل Esay PHP نمايش خواهد داده شد و شما هم اكنون مي توانيد با هستفاده از مرورگر خودتون برنامه هاي PHP رو اجرا كنيد!

منبع: pardise.com

35:

نصب PHP تحت Windows...
در اين مقاله به نصب PHP تحت سيستم عامل Windows و بر رايشان Web Server هستاندارد IIS مي پردازيم ...

با سلام خدمت شما دوستان و علاقه‌مندان طراحي و برنامه‌نايشانسي تحت Web ...
در اين مقاله من سعي دارم روش نصب ساده و مختصر مفسر زبان PHP را توضيح دهم و نوآموزان و دوستاني كه علاقه‌مند به آشنايي با اين زبان قدرتمند هستند به راحتي بتوانند مفسّر اونرا بر رايشان Web Server شخصي خود نصب كنند.

در اين نسخه از مقاله به نصب PHP تحت سيستم عامل Windows خواهيم پرداخت و در نسخه بعدي روش نصب بر رايشان سيستم عامل Linux را توضيح خواهم داد.

ما در اين دو مقاله به نصب هستاندارد PHP بر رايشان Web Serverهاي پيش فرض خواهيم پرداخت و براي نيل به اين منظور بر رايشان سيستم عامل Windows از IIS و تحت سيستم عامل Linux از Apache هستفاده مي‌كنيم.

گرچه خيلي از علاقه‌مندان Slackware پيشنهاد مي‌كنند كه حتّي بر رايشان سيستم عامل ايشانندوز از Apache هستفاده شود بنده به هيچ وجه اين مسئله رو براي تازه كاران پيشنهاد نمي‌كنم.

بدون شك نمي‌توان از قدرت اين Server حتّي تحت سيستم عامل MS Windows چشم پوشي كرد ولي براي كاربران معمولي و همينطور طراحان حرفه‌اي اي كه سعي در ارتقاء Solutionهاي خود دارند هستفاده كردن از هستانداردها بسيار مناسبتر خواهد بود.

شايد در مقاله مفصّلي درباره اين مزيتها و معايب مجالي براي صحبت بود.

بنابراين در مقاله حاضر تحت سيستم عامل ايشانندوز به نصب PHP بر رايشان IIS و Personal Web Managerخواهيم پرداخت.



PHP چيست و چگونه كار مي‌كند؟
PHP مخفّف Hypertext Preprocessor يك زبان Scripting و Server-Side مي باشد.

يك Script به كدي از برنامه مي‌گايشانند كه بصورت ابتدايي Compile نمي‌شود و فقط در صورت فراخواني و يا درخواستي براي اجرا توسط مفسّر زبان مورد نظر ترجمه مي شود و به خروجي فرستاده مي شود.

اين به اين معني مي‌باشد كه شما دقيقاً كد برنامه خود را در جاي مورد نياز به كار مي‌بريد و رابط اجرايي برنامه اونرا به مفسّر مورد نظر ارجاء مي‌دارد.

درباره مثال ما مفسّر مذكور مفسّر PHP يا برنامه PHP.exe مي باشد و رابط اجرايي Web Server مورد نظر و در اينجا Internet Information Service (IIS) هست.

براي اينكه بتوانيد Scriptهاي PHP خود را اجرا كنيد نياز به نصب مفسّر PHP بر رايشان Web Server خود داريد.

توجّه كنيد كه اين مفسّر بر رايشان Web Server شما نصب خواهد شد.

شما مي‌توانيد به PHP.exe مانند يك Plug-in يا Add-on نگاه كنيد چرا كه روش كار هر دو به يك صورت مي‌باشد.

سپس نصب مفسّر PHP شما قادر خواهيد بود كه از كدهاي PHP به همراه كدهاي HTML خود در صفحات Web هستفاده كنيد و همينطور مي‌توانيد Scriptهاي صرفاً PHP خود را به عنوان ترمينالهاي تفسير كننده داده ها و رابطهاي ورودي و خروجي بر رايشان سرور خود برنامه دهيد.

اكنون به روش نصب PHP تحت Windows توجه كنيد.

روش نصب ...

دور خيز ...
همانطور كه فرموديم شما مفسّر PHP را بر رايشان Web Serverخود نصب خواهيد كرد.

تحت سيستم عامل Windows اعم از هسته‌هاي 9X و يا NT شما اين قابليت را داريد كه از Web Serverهاي اختراع Microsoft يعني IIS يا Personal Web Manager هستفاده كنيد.

همينطور مي‌توانيد از هر دايشان اين نرم‌افزارها در كنار يكديگر هستفاده نماييد.

اگر هنوز Web Serverي بر رايشان سيستم خود نصب نكرده‌ايد بايد قبل از شروع پروسه نصب PHP اين كار را اجرا کنيد.

براي نصب به CD-ROM و يا پكيج اصلي ايشانندوز مورد هستفاده خود نياز داريد و از بخش Add/Remove Programs در Control Panel مي توانيد IIS را در قسمت Windows Components بيابيد.

سپس نصب حتماً بايد يكبار سيستم خود را Restart كنيد تا Socketها و Portهاي مورد نياز بر رايشان OSشما براي سرايشانس دهنده Implement شوند.

سپس راه اندازي مجدّد بايد از صحّت عملكرد Web Server خود اطمينان حاصل كنيد.

براي اينكار در پنجره‌اي از Browser خود، Internet Explorer و يا Netscape Navigator آدرس [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] و يا [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] را امتحان كنيد، اگر Browser شما صفحه خوش آمد گايشاني IIS را نمايش داد Web Server شما به سلامت مشغول كار هست.

براي دسترسي به تنظيمات IIS مي توانيد به بخش Administrative Tools در Control Panel مراجعه كنيد و از اونجا Internet Information Service Consol را اجرا نماييد.

بصورت پيش فرض مسير اصلي و قابل مطالعهIIS در X:\inetpub\wwwroot برنامه دارد.

شما مي‌توانيد صفحات خود را در اينجا برنامه دهيد و همينطور از كنسول تنظيمات IIS اين آدرس را تغيير دهيد و يا Virtual Directoryهاي ديگري به اون بيافزاييد.

در ادامه به نصب PHP مي‌پردازيم.

مواد مورد نياز ...
PHP بصورت كاملاً رايگان و Open Source ارائه مي‌شود بنابراين شما بدون پرداخت هزينه‌اي مي توانيد هميشه با آخرين نگارش اين مفسّر Update باشيد.

هنگام نوشتن اين مقاله آخرين نسخهء منتشر شده PHP 4.2.2 مي‌باشد كه بنده شديداً پيشنهاد مي كنم كه همين نسخه رو تهيه كنيد.

شما مي‌توانيد براي Download كردن بخشهاي مورد نياز از Package كامل PHP به سايت رسمي اون در آدرس [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] مراجعه كنيد.

در صفحه Download لينكهاي مختلفي براي دريافت بخشهاي مختلف Package وجود دارد شما براي نصب تحت Windows نياز به پكيج Binary for Win32 داريد.

دو نسخه از اين پكيج براي PHP 4.2.2 وجود خواهد داشت.

اولين نسخه مفسر اصلي PHP به همراه تمامي Add-ONهاست كه در حدود 5 مگابايت حجم دارد و ديگري تنها مفسّر اصلي PHP به همراه قابليت ارتباط ذاتي با پايگاه داده MySQL هست كه اين نسخه نيز حدود 1 مگابايت مي باشد.

براي شروع پكيج 1 مگابايتي تمام نيازهاي شما را برآورده خواهد كرد، بايد بدانيد كه با نصب اين پكيج شما قابليت اجراي تمامي دستورات ذاتي PHP و همينطور ارتباط كامل با MySQL را داريد بنابراين اگر دليل موجّهي براي هستفاده از Add-ONها نداريد به دريافت همين پكيج بسنده كنيد.

توجه كنيد كه در اين قسمت دو روش نصب براي شما وجود خواهد داشت.



- نصب بصورت Automatic و هستفاده از Wise Installer
- نصب بصورت دستي (Manual)

براي هستفاده از حالت اوّل و نصب بصورت Automatic شما مي‌توانيد از هر دو پكيج هستفاده نماييد ولي اگر قصد داريد PHP را بصورت دستي و Manual نصب كنيد تنها مي‌توانيد از پكيج كامل يعني پكيج 5 مگابايتي هستفاده نماييد.

تفاوت دو پكيج كاملاً آشكار هست.

شما با نصب پكيج كامل قابليتهايي مثل امكان هستفاده از ISAPI و NSAPI براي امنيت هرچه بيشتر و همينطور نسخه‌اي از Apache API را بدست مي‌آوريد.

نسخه كامل PHP داراي رابطهايي در هستفاده بهينه از Apache 2 نيز مي باشد و علاوه بر تمامي قابليتهاي PHP كه در نسخه Installer نيز نصب خواهد شد داراي چندين Extension قابل اديت و OpenSource ديگر هست كه براي كاربران حرفه‌اي بسيار مفيد مي باشند.

امّا من پيشنهاد مي‌كنم اگر شما براي اوّلين بار قصد نصب PHP را داريد اقدام به دريافت Installer كنيد.

اين برنامه نصب با يك Wizard ساده تمامي تنظيمات را براي شما انجام خواهد داد و به سادگي PHP را بر رايشان Web Server شما نصب خواهد كرد و البته سپس نصب تمامي تنظيمات قابل تغيير خواهد بود.

مزيت ديگر هستفاده از اين برنامه قابليت Uninstall كردن PHP هست كه در صورت بروز اشتباهي در آينده بدون تغيير در Web Server مي توانيد PHP را حذف كنيد.

پكيج Installer قابليتهاي نسخه كامل PHP را ندارد ولي تمامي نيازهاي ما حتّي براي يك Solution متوسّط را برآورده مي‌كند.

با نصب PHP توسّط Windows Installer شما مي توانيد تمامي دستورات PHP را هستفاده كنيد و همينطور يك رابط Built-in و ذاتي از MySQL و PHP در اختيار داشته باشيد.

مفسّر PHP در نسخه چهارّم براي پشتيباني از پايگاه داده MySQL نياز به هيچ Extensionي نخواهد داشت .

در نسخه‌هاي قبلي شما براي هستفاده از MySQL ملزم بوديد كه يك Extension به نام php_mysql.dll را به پكيج خود بيافزاييد ولي با نصب PHP 4 به اين كار نيازي نيست.

شما به چيزي بيش از اين احتياج نخواهيد داشت.

نصب PHP با اين روش يك نسخه قابل اجرا از PHP.exe را كه با فرم بندي CGI توليد شده در اختيار شما برنامه خواهد داد كه دقيقاً همين سرور در پكيج كامل نيز ضميمه شده هست.

در ادامه روش نصب با هر دو پكيج را توضيح خواهم داد.

روش اوّل : نصب Automatic با هستفاده از Wise Installer ...


در صفحه Download بر رايشان سايت رسمي در آدرس [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] مي توانيد در قسمت Windows Binaries دو پكيج مذكور را بيابيد و از رايشان Mirror مورد نظر اونرا دريافت كنيد.

پيشنهاد مي‌كنم براي Mirror از سرورهاي مالزي يا سنگاپور هستفاده كنيد، ساير Backboneهاي ذكر شده آسيايي از رابطهاي اروپايي منشاء مي گيرند و سرعت و اطمينان لازم را ندارند.

شما با دريافت Installer ايشانندوز فايل اجرايي php-4.2.2-installer.exe را دراختيار خواهيد داشت.

با اجراي اين برنامه پروسه نصب PHP آغاز خواهد شد.
در طول نصب تنها از شما خواسته مي‌شود كه روش نصب Standard و يا Advanced را انتخاب نماييد.

تفاوتي نخواهد كرد كه شما كدام روش را انتخاب نماييد ولي پيشنهاد مي‌شود كه از روش Standard براي دريافت تمامي حالات پيش فرض هستفاده نماييد.

سپس انتخاب روش Standard از شما محل نصب مفسر اصلي پرسيده خواهد شد.

باز هم هيچ تفاوتي نخواهد كرد كه اين محل كجاي سيستم شما باشد ولي توجّه كنيد كه محل هدف براي نصب مفسر بايد داخل شبكه خود شما برنامه داشته باشد.

اگر كامپيوتر شما جزو شبكه نيست به راحتي هر نقطه‌اي را كه مايل هستيد انتخاب نماييد.
اگر پروسه نصب بدون هيچ اشكالي پايان يابد اكنون Web Server شما قادر به اجراي Scriptهاي PHP مي‌باشد.

برنامه نصب تمامي تنظيمات IIS و ساير تنظيمات مورد نياز را انجام خواهد داد.

اكنون شما تنها نياز به چند تست ساده داريد.

ابتدا يادآور شوم كه تمامي تنظيمات مفسر اصلي PHP در فايلي به نام PHP.ini برنامه دارد.

شما با Edit كردن اين فايل مي‌توانيد تنظيمات اصلي مفسر را تغيير دهيد.

سپس نصب PHP تحت سيستم عامل Windows اين فايل در شاخه اصلي سيستم يعني شاخه Windows و يا WINNT برنامه خواهد گرفت.

(%systemroot%).

اين فايل را در محل ذكر شده بيابيد و با يك Editor هستاندارد فايلهاي Text اونرا باز كنيد.

در اينجا براي هر قسمت توضيحات لازم وجود دارد امّا شما تنها نياز به چك كردن چند قسمت جزئي داريد.

در ابتدا مقدار زير را بيابيد و اونرا دقيقاً مانند اين قسمت تغيير دهيد.


magic_quotes_gpc = on

سپس با به خاطر آوردن محلي كه براي نصب مفسّر PHP در طول برنامه نصب انتخاب كرديد مقدار زير را هم چك كنيد.

اين مقدار محلّ فايل PHP.exe را مشخص خواهد كرد كه بصورت پيش فرض C:\PHP برنامه داشت.

اگر شما اين مقدار را تغيير نداده باشيد بايد اين مقدار دقيقاً مانند زير باشد.
extension_dir = "c:\php"


توجّه كنيد كه محل نصب مفسر PHP با هستفاده از Installer در بخش Pathهاي پيش فرض ايشانندوز برنامه خواهد گرفت بنابراين محل مشخص شده در extension_dir مي تواند بصورت مقدار زير نيز برنامه داشته باشد.
extension_dir = ./


اگر هنوز اطمينان نداريد كه مشكلي در نصب PHP وجود داشته باشد اين مقدار را تغيير ندهيد گرچه تغيير اون به Path كامل نيز هيچ اشكالي در اجراي مفسر بوجود نخواهد آورد ولي هستفاده از تنظيمات پيش فرض براي مراجعه بعدي مفيدتر خواهد بود.

مقدار بعدي كه بايد در فايل PHP.ini چك شود محل شاخه اصلي مراجعه Web Server شماست.

اگر شما IIS را بصورت پيش فرض نصب كرده باشيد و تغييري در Pathهاي Server نداده باشيد اين آدرس ..\inetpub\wwwroot مي‌باشد و در اينصورت مقدار مورد نظر بايد عيناً شبيه مقدار زير باشد.
doc_root = "c:\inetpub\wwwroot"


اين مقدار كه در واقع مهمترين بيشترين مشكل را براي كاربران در نصب PHP بوجود مي‌آورد بسيار مهم مي‌باشد.

توجه كنيد كه مفسّر PHP بايد بر رايشان اين دايركتوري اصلي شما دسترسي Write داشته باشد.

اگر شما از NTFS براي دايركتوري اصلي Web Server خود هستفاده مي‌كنيد بايد حتماً به اين دقّت كنيد كه Authentication بر رايشان Web Server و همينطور File System را براي سيستم آزاد بگذاريد.

در اين صورت مشكلي بوجود نخواهد آمد.

همينطور براي برنامه دادن Permissionها توجّه كنيد كه Web Server مورد نظر توانايي Execute بر رايشان دايركتوري‌اي كه حاايشان فايل PHP.exe هست را داشته باشد.

اصولاً تفاوت چنداني بين نصب نسخه‌هاي جديد PHP و نسخه‌هاي قديمي‌تر وجود ندارد ولي در صورتي‌كه شما از PHP 4 و جديدتر هستفاده مي‌كنيد نياز داريد كه مقدار زير را نيز در فايل PHP.ini تغيير دهيد.


register_globals = on

تغيير اين مقدار به on به شما اين امكان را مي‌دهد كه از متغيّرهاي خود بصورت پايدار در بين فرمهاي مختلف هستفاده كنيد و در فرستادن متغييرها چه با $HTTP_POST_VARS و چه بصورت $Variables مشكلي نداشته باشيد.

اكنون تنها كاري كه باقي مانده هست Restart كردن Web Server مورد نظر هست.

اين كار را مي‌توانيد با باز كردن كنسول Internet Information Service (IIS) و Right-Click بر رايشان شاخه اصلي (كه همنام كامپيوتر شماست) و انتخاب گزينه Restart اجرا کنيد.

اگر تمام مراحل را با دقّت اينجا پيش رفته باشيد نبايد مشكلي با اجراي Scriptهاي PHP داشته باشيد.

براي آزمايش كردن Web Server خود كد زير را در فايلي با پسوند *.php كپي كنيد و اونرا در دايركتوري اصلي Web Server كپي نماييد.

اگر فرض كنيم شما نام فايل را phpinfo.php برنامه داده باشيد با بازكردن Browser و همينطور تايپ [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] بايد جدولي پر از خصوصيات Server و همينطور تعدادي از متغيّرهاي اصلي صفحات را مشاهده كنيد.


خب ...

تبريك مي‌گم، شما موفّق شديد مفسر زبان PHP را بر رايشان Web Server خود نصب كنيد و يك Solution بسيار مناسب را براي يادگيري هرچه عميقتر اين زبان كه اعجابي در تكنولوژيهاي Scripting هست ايجاد كنيد.

شما اكنون مفسر زبان PHP را بصورت كامل در اختيار داريد، اين مفسّر به شما اجازه مي‌دهد كه از Extensionهايي كه هر چند وقت يكبار براي ضميمه شدن و هماهنگ كردن شما با نيازهايتان منتظر مي‌شود هستفاده كنيد.

از اين لحاظ مي‌توان PHP را يك زبان كاملاً Expandable دانست.

در ادامه قصد داريم به روش دوّم نصب PHP تحت ايشانندوز بپردازيم.

از بخش اوّل تنها اين نكته باقي مانده كه شما سپس نصب PHP توسط Installer قادر خواهيد بود كه از Extensionهاي موجود در پكيج كامل PHP مانند php_ldap.dll و خيلي نمونه‌هاي ديگر هستفاده كنيد.

بنابراين براي يك نصب كامل و بدون نقص پكيج كامل PHP را نيز دريافت كنيد تا در صورت نياز به Extension خاصي درآينده با مشكلي برخورد نكنيد.



روش دوّم : نصب بصورت دستي و Manual

براي نصب PHP بصورت Manual دو روش اصلي وجود خواهد داشت.

روش اوّل هستفاده كردن از برنامه CGI و فايل PHP.exe هست كه در پكيج اصلي ضميمه شده و روش دوم هستفاده از SAPI Moduleهاست.

نصب بصورت مدول SAPI از نسخه 4.1 به بعد بهينه‌سازي شده هست و در نسخه‌هاي قبلي از PHP 4 به همراه خطاهاي آشكاري اجرا خواهد شد و البته در نسخه‌هاي قبل از 4 نيز اصلاً موجود نمي‌باشد.

براي هستفاده از حالت نصب SAPI بايد از پشتيباني Web Server خود اطمينان حاصل كنيد.

نسخه‌هاي جديد Windows به همراه نسخه‌هاي جديد Web Serverها مانند IIS 4 و IIS 5 از اين روش نصب پشتيباني مي‌كنند.

مراحل زير را براي هر دوروش نصب بكار ببنديد.

- محتواي پكيج دريافتي از سايت رسمي PHP را بر رايشان فهرستي خارج از فهرستهاي سيستم باز كنيد.

c:\php جاي مناسبي براي اين كار به نظر مي‌رسد.

توجه كنيد كه اگر در هنگام UnZIP كردن پكيج فايلهاي را به همراه Pathپيش فرض اونها كپي كنيد دايركتوريهاي مختلفي در c:\php خواهيد ديد.

از جمله Dlls، Extensions، Sapi و غيره.

شما در ادامه نياز داريد كه جاي برخي از اين فايلها را تغيير دهيد بنابراين تفاوتي نخواهد كرد كه دقيقاً همين Structure را براي فايلهاي داخل پكيج بكار ببنديد.

ما فرض مي‌كنيم كه شما پكيج اصلي را با در نظر گرفتن Pathهاي پيش فرض باز كرده‌ايد.

- در مرحله دوّم شما بايد روش نص بخود را مشخّص كنيد.

در صورتي كه مايل به نصب PHP بصورت يك Module بر رايشان SAPI و يا Apache هستيد با توجه كنيد كه فايلهاي DLL مورد نظر شما در دايركتوري sapi برنامه گرفته اند و اگر مايل به هستفاده از نسخه CGI مي‌باشيد، فايل php.exe را در ثسمت اصلي خواهيد يافت.

فايل php4ts.dll در همه موارد نصب مورد نياز مي‌باشد همينطور توجّه كنيد كه اگر مايل به نصب Extension خاصي هستيد بايد DLLهاي مربوط به اونرا نيز در نظر بگيريد.

سپس مشخّص كردن بخشهاي مختلف مورد نيازتان فايلهاي مورد نظر را در يكي از شاخه‌هاي Path ايشانندوز كپي كنيد.

دايركتوري اصلي ايشانندوز هدف مناسبي براي اين كار مي‌باشد.

توجّه كنيد كه همه فايلها و DLLها بايد در شاخه‌اي برنامه گرفته باشند كه فايل اصلي PHP.exe در اونجا وجود دارد.

شما قادر خواهيد بود اين شاخه را در هر كجا كه مايل بوديد برنامه دهيد ولي پيشنهاد مي‌شود كه براي حصول اطمينان يك نسخه را نيز بر رايشان Pathهاي ايشانندوز كپي كنيد.



- مرحله بعدي كپي كردن DLL اصلي PHP مي باشد كه بايد در دايركتوري سيستم ايشانندوز برنامه گيرد اين دايركتوري در Windowsهاي 9X و ME در X:\Windows\System، در Windowsهاي 2000 و NT در X:\WINNT\System32 و در Windows XP در X:\Windows\System32 مي‌باشد.

DLL اصلي PHP به نام php4ts.dll بايد با توجه به سيستم عامل مورد هستفاده در دايركتوري سيستم كپي شود.

اگر اين فايل از ابتدا بر رايشان سيستم شما موجود بود اونرا Overwrite كنيد و همينطور هر يك از DLL هاي موجود در شاخه Dlls نيز اگر در هنگام كپي كردن معادلي بر رايشان كامپيوتر شما داشت با خيال راحت اونها را نيز Overwrite كنيد.



- آخرين بخش براي كپي كردن فايل ini تنظيمات PHP مي‌باشد.

دو نسخه از اين فايل بر رايشان پكيج اصلي موجود هست يكي به نام php.ini-dist و ديگري به نام php.ini-optimized.

شما قادر خواهيد بود با هر دايشان اين فايلها يك سرور كامل و مناسب داشته باشيد ولي هستفاده از نسخه Optimized به شما كمك خواهد كرد كه از تنظيمات پيش فرض براي داشتن بهترين امنيت و بالاترين ضريب اطمينان هستفاده كنيد.

من پيشنهاد مي‌كنم كه از همين فايل هستفاده كنيد.

اين فايل را به شاخه Windows بر رايشان سيستم خود كپي كنيد و نام اونرا به php.ini تغيير دهيد.

دايركتوري Windows براي ايشانندوزهاي 9X، ME و XP X:\Windows و براي ايشانندوزهاي NT و 2000 ،X:\WINNT مي‌باشد.

- سپس بخش كپي كردن فايلها شما بايد فايل php.ini را Edit كنيد تابا چند تنظيم ساده php را بيشتر با سيستمتان آشنا كنيد.

در بخش اولي مقدار extension_dir را به Pathي كه بر رايشان اون فايلهاي DLL و بخشهاي اصلي را برنامه داده‌ايد تغيير دهيد.



- سپس مقدار doc_root را به آدرس دايركتوري اصلي Web Server خود بصور مثال c:\inetpub\wwwroot تغيير دهيد.

- در بخش آخر شما مي‌توانيد فايل X:\Windows\System32\Inetsrv\browscap.ini را با توجه به نيازتان تغيير دهيد.

يك نسخه كامل از اين فايل نيز در Package دريافتي شما موجود مي‌باشد.

براي نصب PHP بصورت SAPI Module نيز شما بايد به كنسول IIS مراجعه كنيد و يك Application Mapping بصورت Executable به سرور خود بيافزاييد.

اين Mapping بايد به فايل php4isapi.dll اشاره كند.

ساير بخشها نيز از اين قسمت به بعد مانند نصب خودكار براي CGI خواهد بود.



اميدوارم مشكلي با نصب PHP با اين روش نداشته باشيد.

سعي خواهم كرد كه درباره نصب PHP بر رايشان Linux و همينطور Apache Web Server نيز مقاله‌هايي بنايشانسم.

قصدم اين بود كه يك راهنماي كامل براي نصب PHP تحت ايشانندوز و IIS تهيه كنم و براي رسيدن به اين هدف از شما تقاضا دارم كه اگر اشكالي در روش نصب مي‌بينيد و يا مطلبي براي تكميل اون در آختيار داريد اونرا در اختيار بنده برنامه بدهيد تا به اين مقاله بيافزايم.

همينطور اگر مشكلي با نصب PHP داشتيد مي‌توانيد از انجمن سايت Iranphp.net هستفاده كنيد.

نايشانسنده: سهيل صادق‌زاده

36:

چرا PHP ؟
اولين چيزي كه مي خواهم در موردش توضيح دهم اين هست كه به چه علتي ما از PHP هستفـاده مي كنيم؟ PHP در مقايسه با تكنولوژي هاي مشــابه سريعتر بهتر و آسانتر هست.

از جمله تكنولوژي هــاي مشابه براي طراحي يك سايت وب مي توان به اين موارد اشاره كرد :
اسكريپت هاي Common Gateway interface) CGI) كه معمولا به زبان Perl نوشته مي شوند و ASP .
مزيتي كه PHP در مقــــابل HTML دارد اين هست كه HTML يك سيستم محدود به حساب مي آيد و توانايي ايجاد ارتباط متقابل با كاربر را ندارد.

يك صفحه HTML ساده توانايي جواب به اعمال كاربر را ندارد اما با هستفاده از PHP شما مي توانيد صفحاتي بر پايه سيستم عامل كاربر و يا تاريخ مشـاهده صفحه تنظيم كنيد .

همينطور PHP مي تواند با فايل ها يا پايگاههــــــــاي داده (DataBase) ارتباط بر برنامه كند و بسياري عمليات ديگر كه HTML قادر به انجام به اونها نمي باشد.


شايد يك سوال براي شما به وجود بياد كه چــــرا يك طراح وب بهتر هست كه از زبان PHP به جاي زبانهــاي مانند CGI و ASP و يا JSP براي طراحي سـايت دينــــــــاميك هستفاده كند؟
دليل اول سرعت بيشتر PHP چه در برنامه نايشانسيو ايجاد برنامه هايي به اين زبان و چه در اجرا مي باشد .

همينطور PHP براي يادگيري بسيار ساده مي باشد و افــراد بدون نياز به زمينه هاي قبلي در برنامه نايشانسي و تنهــــــــــــا با يادگيري دستورات و راهنماهايي كه وجود دارد مي توانند اين زبان را ياد بگيرند.
دومين دليل اين هست كه PHP به صورت اختصاصي تنها براي ايجاد صفحـــــــــــــــات ديناميك طراحي شده هست.

امـــا Perl و VbScript و يا Java اينگونه نيستند و به همين دليل PHP سريعتر و ساده تر از تكنولوژي هاي جايگزين مي باشد.



نصب و پيكر بندي (قسمت اول)
مي خواهيم در مورد نصب و پيكر بندي php بر رايشان دو سيستم عــــامل linux و Windows توضيح بدم.
اولين چيزي كه بايد بهش بپردازيم اين هست كه ما از چه نوع سيستم عــــــــــاملي هستفاده مي كنيم يعني سيستم عاملي كه ما از هستفاده مي كنيم قــابليت نصب php رو داره ؟ يا نه؟
من تو درسهاي قبلي اين مسئله رو توضيح دادم و فرمودم كه php رايشان چــه سيستم عامل هاي كار مي كنه و نصب ميشه.

حالا ما مي خواهيم ياد بگيرييم كه چطــوري مي توانيم برنامه هايي كه به زبان php مي نايشانسيم رو اول رو سيستم خودمــــــون تست و اجرا كنيم و بعد اون رو منتقل كنيم به يك سيستم ديگه كه احتمالا همـــون سرور هست.
اولين كاري كه بايد انجام بديم اينكه از يك نرم افزاري هستفاده كنيم كه قـابليت اين رو داشته باشه كه سيستم ما رو به يك وب سرور تبديل كنه!
اول روش اجراي php رو بــــــــــــرايشان Windows آموزش خواهم داد سپس اون در مورد Linux هم صحبت مي كنيم! براي اينكه بتونيم سيستم عامل ايشانندوز pc خودتون رو به يك وب سرور كه بتونـــه php رو پشتيباني كنه تبديل كنيد 3 راه وجود داره!

" اگر شما با ايشانندوزي غير از XP يا NT يـــا 2000 كار مي كنيد بايد از راه اول هستفاده كنيد و اگر نه بايد از راه دوم هستفاده كنيد راه سوم رو هم مي شه بـــــــرايشان تمامي ايشانندوز ها هستفاده كرد فقط يك نكته كـــــــه بايد رايشان ايشانندوز نسخه هاي XP يا NT يا 2000 - IIS رو غير فعال كنيد كه بتوانيد هستفاده كنيد! "

ابتدا راه دوم رو توضيح ميدم كه روش هستاندارد هستفـــــاده از php در windows مي باشد.

ما در اين روش از IIS هستفاده مي كنيم.

IIS مخفف (Internet Information Server) مي باشد كه با كمك اون مي توان سرايشانس هايي از قبيل www و همينطور ftp كه مربوط به دريافت فايل مي شود و همينطور چندين سرايشانس ديگر را هستفــاده كرد كه البته خارج از بحث ما هست.

IIS در حال حاضر در دو نسخه پركاربرد 4 بــراي ايشانندوز NT و 5 براي ايشانندوز هاي XP و 2000 وجود دارد.

حالا مي خــواهيم روش نصب IIS رو توضيح بدم اين روش نصب IIS در ايشانندوز هاي XP و NT و 2000 تقريبــــا به يك شكل مي باشد و مي تونيد با ياد گرفتن يكي از اونها IIS رو در ايشانندوز هــاي مختلف نصب كنيد.

براي نصب IIS ابتدا بايد از منايشان START گزينه Settings و در نهـــايت گزينه Control Panel را انتخاب كنيد تا پنجره موسوم به كنتر پنل باز شود سپس از پنجـــــره كنترل پنل گزينه Add or Remove Programs را انتخاب كرده و اون را اجرا نماييد سپس بــــاز شدن پنجره Add or Remove Programs از كليد هاي سمت چپ گـزينه Add/Remove Windows Components را انتخاب كرده و سپس اندكي استقامت پنجـــــــره Windows Components Wizard باز ميشود سپس باز شدن از كـــــادر Components گيزينه Internet Information Server(IIS) را چك دار كنيد.



توجه : چنان چه رنگ زمينه Chek Box گزينه فوق تيره بود بدين مفهوم هست كه زير گروه هاي اين گزينه غير فعال مي باشد و بايد چك دار شوند براي چك دار كردن اونها بايد برايشان اون گزينه دوبار كليك كرده و از پنجره اي كه باز خواهد شد گزينه هايي كــه فعال نمي باشد فعال نماييد تا كليه سرايشانس هاي يا زيرگروه هاي به طور كـــــــــامل انتخاب و نصب شود.



سپس انتخاب گزينه مورد نظر كليد Next را فشار داده تا به مرحله بعد نصب برايشاند.

در اين مرحله گزينه هاي مرحله قبل مورد پردازش برنامه مي گيرد و كليه تغيرات اعمـــــال مي شود .

چنانچه شمـــا گزينه اي را حذف ( غير فعال ) كرده باشيد در اين قسمت از سيستم پاك خواهد شد و چنانچه گزينه اي را فعال ( انتخاب ) كــــــرده باشيد در اين قسمت به سيستم اضافه خواهد شد.

توجه: چنان چه گزينه اي را فعال كرده باشيد در اين مرحلــــــــــه احتياج به CD نصب ايشانندوز مورد نظر خواهيد داشت يا اگر فايل هــــــــــاي نصبي ايشانندوز را برايشان سيستم خودتون داشته باشيد به اون احتياج پيدا خواهيد كرد چون بايد فـــايل هاي مربوط به پيكربندي IIS را از CD و يا Hard Disck خوانده شود و بر رايشان سيستم شمـــــا كپي گردد.

سپس اتمام اين مرحله ‚ نصب به مرحله پاياني خواهد رسيد و در اين قسمت شما بايد دكمه Finish را فشار داده و سپس اندكي استقامت هم اكنون IIS بـــــر رايشان سيستم شما نصب مي باشد و شما مي توانيد از اون هستفاده كنيد.

خوب حالا سپس نصب IIS شما بايد IIS رو پيكربندي كنيد كه بتونيد از اون هستفـاده كنيد.

براي پيكر بندي IIS شما بايد به Control Panel رفته و گـــزينه Administrative Tools را انتخاب كرده و از پنجره Administrative Tools گزينه Internet Information Server را انتخاب كرده و سپس اجراي اين برنامه گزينه هاي مربوط به پيكـــربندي IIS در پيش رايشان شماست و شما مي توانيد IIS خود را منطبق بر ميل خود پيكـــربندي كنيد.

( چون پيكربندي IIS خارج از بحث مـــاست پس از توضيح در مورد اون خوداري مي كنم چناچه سئوالي در اين مورد داشتيد مي تونيد به من ايميل بزنيد )

خوب حالا كه نصب IIS رو ياد گرفتيد و IIS بر رايشان سيستم شمـــــا نصب شده هست بايد اون را براي هستفاده از PHP آماده كنيم.

براي اين كـــــــار احتياج به نصب نرم افزار PHP را بر رايشان سيستم داريم كه در ادامه روش نصب PHP رو ياد خواهم داد.



براي نصب PHP ابتدا بايد نسخه مورد نظر PHP را تهيه كنيد و ترجيحا از آخـــرين نسخه اين نرم افزار هستفــاده كنيد كه نسخه 4.3 اين نرم افزار مي باشد كه مي توانيد از اينجا دريافت كنيد.



سپس دريافت نسخه مورد نظر شما بايد مراحل زير را براي نصب دنبال كنيد.

ابتدا بر رايشان فايل اجرايي PHP كليك كرده و اون را اجرا نماييد(معمولا فايل اجرايي PHP با نـام php-4.3.0-installer مي باشد)
سپس باز شدن پنجره php 4.3.0 installation سپس كمي استقامت پنجره Welcome بـــاز خواهد شد.

سپس دكمه Next را فشار دهيد تا به مرحله بعدي Wizard كنتـــــــــرل انتقال يابد.


سپس فشار دكمه Next پنجره License Agreement باز خواهد شد در اين پنجره بايد دكمه I Agree را انتخاب كنيد تا موافقت نامه PHP مورد تاييد شما برنامه گيرد.
سپس تاييد پنجره Installation Type را خواهيد ديد كــه داراي دو گزينه Standard و Advanced مي باشد كه شما گزينه Advanced را چك دار كنيد (البته لازم به ذكــر هست كه در موقعي كه شما گزينه Advanced را انتخاب مي كنيد تنظيمــــات پيكربندي بيشتري نسبت به گزينه هستاندارد در اختيار داريد!)
سپس فشار دادن دكمه Next پنجـــــــره موسوم به Choose Destination Lovation را مشاهده خواهيد كرد كه در اين پنجره مي توانيد مسير نصب فــــايل هاي PHP را مشخص كنيد.
با فشار دادن دكمه Next پنجره Backup Replaced Files را مشاهـده خواهيد كرد كه شما در اين پنجره مي توانيد محل برنامه گيري فايل هاي Back up را مشخص كنيد.

همينطور مي توانيد به PHP بگايشانيد آيا براي فايل هاي شما Back up تهيه كند يـــــــا خير؟
سپس فشار دادن دكمه Next پنجره Choose Upload Temporary Directory نمــايش داده خواهد شد كه در اين اينجا محل برنامه گيري فايلهاي موقتي كه براي اجراي برنامه هاي PHP به اون احتياج دارد مشخص مي شود.
با فشار دكمه Next پنجره Choose Session Save Directory باز خواهد شد كه شما مي توانيد محل ذخيره كردن متغيير هاي Session (در درسهاي بعد توضيح خواهــم داد) را مشخص كنيد.
سپس فشار دكمه Next پنجره Mail Configuration باز خواهد شد كه شمــــــــــا بايد تنظيمات مربوط به Smtp Server و ايميل آدرس پيش فرض را وارد كنيد (در صورتي كه به اين گزينه آشنايي نداريد مي توانيد تنضيمات پيش فرض را قبول كــرده و بدون اعمال تغييرات كليد Next را فشار دهيد )
با فشار دكمه Next پنجره Error Reporting Level پديدار خواهد شد كه شمـــــا مي توانيد سطح گزارشـــات خطاهاي احتمالي كه در برنامه هاي به وجود مي آيد مشخص كنيد كه در اينجا شما بهتر هست تنظيمات پيش فرض را قبول كرده و بــــــه مرحله بعدي برايشاند.
سپس با فشار دكمه Next پنجره Server Type رو مشاهده خواهيد كـــــــــرد در اين پنجره شما بايد نوع Web server سيستم خودتون رو به PHP معرفـي كنيد در اين جا شما بايد گزينه Microsoft IIS 4 or Higher رو انتخاب نماييد چون از ايشانندوز هــاي XP و NT و 2000 هستفاده مي كنيد .


سپس فشار دكمه Next به پنجره File Extensions خـــواهيد رسيد كه در اين قسمت شما امكان اين را خواهيد داشت كه براي WebServer خودتون مشخص كنيد كــــــه چه نوع فايلهاي را براي اجرا اسكريپت هاي PHP در نظـــــر بگيرد.(در اين مرحله بهتر هست تمام 3 گزينه را انتخاب كنيد.)
سپس فشار دادن كليد Next ‚ پنجره Start Installation باز خواهد شد كه از شمــــــا اجازه نصب PHP و كپي كردن فايل هاي رو رايشان سيستم شما را خواستار هست كــه شما با فشار كليد Next به اون اين اجازه رو خواهيد داد.
سپس اين كار پنجره مربوط به Installing باز خواهد شد كه شما از عمل كــــــرد كپي فايل ها مطلع خواهيد شد.

سپس اتمام اين مرحله چنان چه فايل "php.ini" قبـلا در دايركتوري System32 شما وجود داشته باشد پيغامي مبني بر اينكه اين فايل قبـــلا وجود دارد و شما چنانچه مايل هستيد اين فايل پاك شود و نسخه جديد فـــــــايل را جايگزين كند كه گزينه ok را براي تاييد كليك كنيد.(توجه داشته باشيد اين گـزينه در صورتي نمايش داده مي شود كه فايل مورد نظر وجود داشته باشد)
سپس اتمام اين مراحل پنجره IIS Scripttamp Node Selection را مشــاهده خواهيد كرد كه شما بايد در اين قسمت كليد Select All را فشار داد و دكمه ok را بزنيد.
در اينجا نصب PHP به پايان رسيد و با پيغام تبريك و موفقيت شمـا در نصب PHP مواجه خواهيد شد و با فشارداد كليد Ok اون را تاييد كنيد.

اميد به خــــــدا در روزهاي بعد نصب php در windows هاي 98 و ME و ...

را توضيح خواهم داد.

همينطور كـــــار با PWS و Eesy PHP را نيز ياد خواهيد گرفت.

پس با ما باشيد.

ادامه در پست بعد ....


37:

در درس قبلي نصب و پيكر بندي php را در windows هاي XP و ME و 2000 توضيح دادم ولي قبل از اينكه درس امروز رو شروع كنم يك چند نكته بود كه بايد مي فرمودم!
دوستاني در مورد اينكه چرا php كه معمولا بر رايشان Linux اجرا مي شود و هستفاده ميشه رو من دارم رو ايشانندوز ياد ميدم?
بابا اگه كل مطلب هاي كه تا حالا post كردم بخونيد متوجه مي شيد من فرمودم روش نصب php رو بر رايشان ايشانندوز اول آموزش ميدم چون اكثريتي كه دارن اين بلاگ رو مي خونند از ايشانندوز هستفاده مي كنند چشم Linux و Apachi رو هم توضيح خواهم داد .

ولي بايد كمي استقامت كنيد!
حالا مي خواييم ياد بگيريم كه چطوري ميشه php رو بر رايشان ساير ايشانندوزها نصب كرد و از اون هستفاده كرد.بهترين روش براي اين كار هستفاده از نرم افزارهايي هست كه عمل يك وب سرور رو شبيه سازي مي كنند مثل PWS يا Easy PHP.
اول روش نصب PWS و در روزهاي بعد هم كار كردن با Easy PHP رو به شما آموزش خواهم داد.
Personal Web Server يكي از محصولات شركت Microsoft مي باشد كه برايشان ايشانندوزهاي غير از XP و NT و 2000 كاربرد دارد و براي برنامه نايشانسان وب بسيار آشنا هست! شما با كمك اين نرم افزار مي تونيد سيستم عامل ايشانندوز خودتون رو به يك وب سرور تبديل كنيد و از او بهره لازم ببريد.ما در اين جا براي اجراي PHP از PWS كمك مي گيريم پس اول بايد ياد بگيريم چطوري مي تونيم يك PWS رو نصب كنيم.

PWS رو از اينجا مي تونيد دريافت كنيد سپس دريافت مراحل زير رو براي نصب PWS بايد طي كنيد تا PWS بر رايشان سيستم شما نصب شود.
براي نصب بايد ابتدا برايشان فايل Setup.exe كليك كرده و اون را اجرا كنيم.سپس اجراي برنامه Setup پنجره Setup is initializing باز خواهد شد كه شما بايد كمي استقامت كنيد تا برنامه نصب خود را براي اجراي Wizard نصب آماده كند.
سپس پنجره Microsoft Personal Web Server Setup باز خواهد شد كه اطلاعاتي در مورد نرم افزار PWS به شما مي دهد و توضيحات مختصري در مورد اين برنامه.
سپس فشار دكمه Next شما مي توانيد به مرحله بعدي برايشاند كه در اين مرحله پنجره Microsoft Personal Web Server Setup با سر فصل End User License Agreeement باز خواهد شد كه در اي مرحله توضيحاتي در مورد Pack برنامه داده شد و تاييد نامه اي براي كپي رايت نرم افزار كه با فشار دادن دكمه Accept مي توانيد به مرحله بعد برايشاند.
در اين مرحله شما بايد يكي از سه حالت نصب را انتخاب كنيد كه شما در اين قسمت گزينه Typical را انتخاب نمايد ( دو گزينه ديگر در اين مرحله گزينه Minimum برا نصب برنامه به صورت فشرده مي باشد كه در اين گزينه از حداقل امكانات هستفاده مي شود و گزينه Custom براي اين منظور هست كه كاربر بتواند خود نسبت به نصب Components هاي برنامه به صورت دستي اقدام نمايد .

گزينه Typical حالت هستاندارد نصب مي باشد.)
سپس فشار دادن دكمه Typical پنجره ...Microsoft Personal Web Server Version باز خواهد شد كه مسير Root اصلي را بايد در اين مرحله مشخص كنيد.(منظور از روت اصلي هما شاخه WWW مي باشد كه شما بايد فايل هاي ASP يا PHP خودتون رو براي اجرا در اين شاخه برنامه دهيد تا بتونيد اون ها رو از طريق كاوشگر خودتون اجرا كنيد.)در اين مرحله شما مي توانيد با هستفاده از گزينه Browse براي تغيير مسير فايل اقدام كنيد.

دو كادر ديگه اي كه در اين قسمت غير فعال مي باشد مربوط به سرايشانس FTP مي باشد كه ما به اون احتياج نداريم.(براي فعال كردن اونها مي توانيد از گزينه Custom هستفاده كنيد.)
سپس تعيين مسير Root با فشار دكمه Next به مرحله بعدي كنترل را انتقال داد تا پنجره اي با سرفصل Completing Installation باز شود در اين مرحله شما از روند كپي و نصب فايل ها بر رايشان سيستم اطلاع پيدا خواهيد كرد.
سپس اتمام اين قسمت Wizard نصب پيان يافته و PWS با تشكر كردن از شما در اين پنجره براي انتخاب اين نرم افزار از شما مي خواهد كه با فشار دكمه Finish به برنامه نصب خاتمه دهيد.
سپس فشار دكمه Finish اين پنجره رو خواهيد ديد كه عمل تنظيمات رو بر رايشان سيستم شما اعمال مي كند.
اكنون PWS بر رايشان سيستم شما نصب شده و شما مي تونيد از اون هستفاده كنيد.
حالا بايد PHP رو بر رايشان PWS نصب كنيم تا بتونيم از اون هستفاده كنيم .
براي اين كار ‚ كار زيادي نمي خواد انجام بدين كافيه فقط در پنجره Server Type گزينه Microsoft Pws On Windows 9x or ME رو انتخاب كنيد و چنان چه از ايشانندوز NT Workstation هستفاده مي كنيد گزينه Microstft PWS on NT Workstation را انتخاب كنيد و ديگر در احتياج به تغييرات در جاي ديگه اي وجود ندارد.حالا شما با موفقيت PWS رو نصب كرديد و PHP رو رايشان اون فعال كرديد .

منبع: pardise.com

38:


39:

مترجمان:
فرشاد پايدار
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
جابر صادقي
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]


فايل پيکربندي PHP
قبل از شروع مطالب نگاهي اجمالي به ايشانژگيهاي فايل پيکربندي PHP منطقي به نظر مي رسد.

نام اين فايل php.ini مي باشد و به دلايلي از ساختار کلي فايلهاي ini که بيشتر در برنامه هاي کاربردي ايشانندوز هستفاده مي شود، پيرايشان مي نمايد.

اين فايل متني به صورت ASCII مي باشد که به بخشهايي (session) تقسيم مي شود.

هر بخش متغيرهايي را که مربوط به اون بخش مي شوند، در بر مي گيرد.

هر بخش چيزي شبيه زير مي باشد:



[MySection]
variable=\"value\"
anothervariable=\"anothervalue\"



نام بخش در يک جفت براکت"[]" در بالا برنامه مي گيرد.

و زير اون در هر سطر يک متغير با مقدارش برنامه مي گيرد.

متغيرها به حروف حساس (case sensitive) هستند و نمي توانند شامل فاصله (space) باشند، در حالي که مقادير متناظر اونها مي توانند اعداد، رشته کاراکتري (string) و يا Boolean باشند.

سمي کالن ";" در ابتداي هر سطر به عنوان نشانگر درج توضيحات (comment) مي باشد.

اين راهي ساده براي فعال يا غيرفعال کردن ايشانژگيهاي PHP مي باشد، به جاي حذف کردن يک سطر مي توانيد به اين روش اون را به توضيح تبديل کرده که در پردازش فايل ها شرکت نخواهد کرد.

در صورتي که فکر مي نماييد ممکن هست بعد ها بخواهيد از ايشانژگي که اکنون به کارتان نمي آيد، هستفاده کنيد بهتر هست اون را پاک نکنيد.

براي اينکه PHP بتواند فايل php.ini را تشخيص بدهد بايد اون را در دايرکتوري جاري، دايرکتوري که در متغير $PHPRC تعريف شده، يا دايرکتوري که هنگام کامپايل مشخص شده هست(براي ايشانندوز اين همان دايرکتوري اصلي PHP هست) نگهداريد.

سپس اينکه شما تغييراتي در فايل php.ini داديد براي اونکه تغييرات اعمال شوند بايد سرور خود را مجددا راه اندازي نماييد (سرور را restart کنيد).

البته فرض بر اين هست که شما قبلا در حال هستفاده PHP بر سرور خود بوده ايد.

براي هستفاده هاي command-line از PHP فايل پيکربندي php.ini در هرباري که برنامه PHP احضار مي شود خوانده و چک مي شود.


تنظيم ايشانژگيهاي مفسر
اولين مرحله در اين مقاله از مهمترين گامهاي اون مي باشد، ايشانژگيهايي که به مفسر زبان PHP مربوط مي شود.

اولين مورد در اينجا engine variable مي باشد که چک مي نمايد که PHP engine بايد فعال "on" يا غير فعال "off" باشد.

Off کردن اين متغير به معني اين هست که کدهاي PHP توسط سرور تفسير نشوند.معمولاً نيازي به اين تغيير حس نمي شود، پس اين متغير را به صورت on رها کنيد.


engine=On



متغير short_open_tag کنترل مي نمايد که آيا مفسر بايد تگهاي کوتاه را همانند تگ هستاندارد تشخيص دهد يا نه.در صورتي که تشخيص مي دهيد اين نمونه تگها باعث ناسازگاري با ديگر زبانها مي شوند يا اينکه تصميم به هستفاده از قوانين syntax مختص PHP داريد مي توانيد اون را off کنيد.


short_open_tag = On



معمولاً session, cookie و اطلاعات HTTP header در يک اسکريپت PHP بايد قبل از توليد هرگونه خروجي توسط اون اسکريپت فرستاده شوند.

در صورتي که اين در برنامه شما امکان پذير نيست مي توانيد هر چه را که PHP به نام output buffering مي شناسد، توسط متغيرهاي output_buffering فعال کنيد.

با on بودن output buffering، زبان PHP خروجي اسکريپت شما را در يک بافر مخصوص نگه مي دارد و هنگامي اونها را مي فرستد که به طور مشخص به اون دستور داده شود.

اين به شما امکان مي دهد که cookieها يا اطلاعات HTTP header را از وسط يا انتهاي کد اسکريپت خود بفرستيد.

هرچند اين مي تواند کارآيي را در حاشيه کاهش دهد.


output_buffering = Off



شما مي توانيد با يک عدد به عنوان مقدار براي متغير output_buffering اندازه بافر را تعيين کنيد.


output_buffering = 2048



هنگامي که PHP شروع به کار مي نمايد يک پيام حاايشان شماره نسخه خود به هدر هستاندارد سرور مي افزايد.براي غيرفعال کردن اون مي توانيد متغير expose_PHP را off کنيد.اين مي تواند مفيد باشد، مثلا اگر بخواهيد امکانات وب سرور خود را از ديد هکرها پنهان کنيد.


expose_PHP = On




تنظيم مسير جستجايشان
شما مي توانيد مسير جستجايشاني را براي PHP با تنظيم متغير include_patch که ليستي از مسيرها را مي پذيرد، مشخص کنيد.

PHP هنگامي که با فايلي که مسير اون مشخص نشده هست ، مواجه مي شود به طور اتوماتيک اين مسيرها را چک مي نمايد.
اگر شما کتابخانه اي از توابع يا مجموعه اي از کلاسها داريد که زياد از اونها هستفاده مي نماييد مي توانيد دايرکتوري موقعيت اونها را در اين متغير برنامه دهيد.

همينطور اين متغير مکان مناسبي براي اضافه کردن دايرکتوري PEAR خود PHP مي باشد، که مجموعه اي از کلاسهايي که بسيار هستفاده مي شوند را شامل مي شود.


include_path = \".:/usr/local/lib/php/pear:\"



کاربران ايشانندوز براي مشخص کردن چندين دايرکتوري بايد از سمي کالن";" بين اونها هستفاده نمايند و کاربران unix از کالن ":".

دو متغير جالب در اين زمينه auto_prepend_file و auto_append_file مي باشند.

اين متغيرها فايلهايي را مشخص مي نمايند که PHP به ابتدا يا انتهاي هر سند PHP اضافه خواهد کرد.

اين مورد بيشتر براي اضافه کردن header و footer به صفحاتي هست که توسط PHP ايجاد مي شوند، به طوري که باعث مي شود تعدادي خط کد به هر سند PHP که شما مي نايشانسيد اضافه گردد.
اين فايلها هم مي توانند اسکريپتهاي PHP و هم html معمولي باشند، ولي کدهاي PHP براي اين امر بايد در تگ هستاندارد محصور شده باشند.


auto_prepend_file = /home/web/includes/header.php
auto_append_file = /home/web/includes/legal.php




چگونگي رفتار با خطاها
خطا ها در PHP در چهار دسته مي آيند: parsing errors يا خطاي وقت تجزيه (کامپايل)، تذکرات درمورد خطاهاي موجود در کد مثلا مقدار دهي نکردن يک متغير، warning يا هشدار و fatal error.

معمولا هنگامي که PHP با يکي از خطاهاي parsing error يا warning يا fatal error مواجه مي شود، خطاها را نمايش مي دهد و اگر خطا از نوع fatal error باشد اجراي اسکريپت را در همان نقطه متوقف مي نمايد.

شما مي توانيد اين رفتار را با متغير error_reporting که چند فيلد خطا را مي گيرد و تنها خطاهايي را که با اونها سازگار باشند نمايش مي دهد، اصلاح کنيد.


error_reporting = E_ALL



براي غير فعال کردن نمايش خطاها مقدار متغير display_errors را به نادرست تغيير دهيد و به جاي اون پيام خطاها را در ثبات خطاها از طريق متغير log_errors بنايشانسيد.
انجام اين کار براي امنيت بيشتر مفيد هست، با غيرفعال کردن نمايش خطا شما اطلاعات ايشانژه سيستم خود را پنهان مي نماييد بدون توجه به اينکه آيا کاربران قصد خراب کردن سايت شما را دارند يا فقط هستفاده مي نمايند.به جاي اون شما بايد خطاها را در يک فايل دلخواه يا ثبات خطاي سيستم (system logger)، با تنظيم مقدار متغير error_log به مسير فايل انتخابي يا مقدار پيش فرض "syslog"، ثبت کنيد.

فقط به ياد داشته باشيد که مرتبا به اين فايل سربزنيد تا ببينيد که در برنامه شما چه خطاهايي وجود دارد.


display_errors = Off
log_errors = On
error_log = \"error.log\"




فعال کردن توسعه ها
توسعه هاي متعددي براي PHP موجود هست.

در سيستمهاي يونيکس لازم هست که اين توسعه ها در وقت کامپايل ساخته شوند.

در ايشانندوز، dll هاي باينري وجود دارند که بايد ضميمه شوند.

متغير extension_dir محتايشان نام شاخه اي هست که PHP در اون به دنبال اين توسعه ها مي گردد.

مثلا:


extension_dir = \"C:\Program Files\Internet Tools\Apache\bin\php4\extensions\"



نسخه ايشانندوز PHP به همراه ۲۰ توسعه منتشر مي شود که تمامي اونها در فايل php.ini ليست شده اند.

براي فعال کردن هر توسعه، علامت سمي کالن جلايشان اون را حذف کرده و سرور خود را از نو راه اندازي کنيد.

براي غير فعال کردن يک توسعه نيز مي توانيد جلايشان اون علامت سمي کالن رو اضافه کنيد.

اگر توسعه مورد نظرتان در ليست توسعه ها در فايل php.ini نيست از متغير extension هستفاده کرده و نام dll مورد نظر را به اون نسبت دهيد.

مثلا:


extension=php_domxml.dll
extension=php_dbase.dll




تنظيم متغيرهاي مربوط به توسعه ها
متغير هاي مربوط به توسعه ها، در بخش جداگانه اي از فايل پيکربندي (php.ini) ذخيره مي شوند.

براي مثال تمام متغيرهايي که به توسعه هاي MySQL مربوط مي شوند بايد در قسمت [MySQL] در فايل php.ini، برنامه بگيرند.

اگر قصد هستفاده از تابع mail در PHP را داريد، 3 متغير وجود دارد که بايد اونها را تنظيم کنيد.

متغيرهاي SMTP و sendmail_from (در ايشانندوز) يا sendmail_path (در يونيکس) در هنگام ارسال e-mail از طريق تابع mail مورد هستفاده برنامه مي گيرند.

در ايشانندوز اين متغير ها براي تنظيم SMTP Server و همينطور براي تعيين آدرس From در ساختار e-mail به کار مي روند.

در يونيکس متغير sendmail_path مسير MTA يا Mail Transfer Agent را براي ارسال mail تنظيم مي نمايد.




SMTP = myserver.localnet.com
sendmail_from = [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
sendmail_path = /usr/sbin/sendmail



متغيرهاي java.class.path ، java.home، java.library و java.library.path همگي آدرس کلاس ها و کتابخانه هاي جاوا را تنظيم مينمايند.

اين مقادير به وسيله توسعه هاي جاوا مورد هستفاده برنامه مي گيرند.

بنابراين اگر مي خواهيد PHP بتواند ارتباط صحيحي با برنامه هاي جاواي شما بربرنامه کند از درستي و معتبر بودن مقادير اين متغير ها اطمينان حاصل کنيد.


java.class.path = .\php_java.jar
java.home = c:\jdk
java.library = c:\jdk\jre\bin\hotspot\jvm.dll
java.library.path = .\



متغير session.save_path مشخص نماينده آدرس شاخه موقتي هست که براي ذخيره اطلاعات session ها بکار مي رود.

معمولا اين متغير به طور پيش فرض مقدار /tmp را دارد، اما از اونجا که اين شاخه در ايشانندوز وجود ندارد بايد اون را با آدرس درست شاخه موقت ايشانندوز تصحيح کنيد در غير اين صورت هنگام فراخواني دستور session_start با خطا مواجه مي شايشاند.

همينطور مي توانيد با تنظيم متغير session.cookie_lifetime مدت اعتبار cookie هاي session را بر حسب ثانيه مشخص کنيد.


session.save_path = c:\windows\temp
session.cookie_lifetime = 1800




تنظيمات مربوط به امنيت
تعدادي متغير در php.ini وجود دارد که به امنيت PHP نصب شده بر رايشان سيستم شما مريوط مي شوند.

مهمترين اونها متغير safe_mode مي باشد که به طور مثال هستفاده از اون براي محدود کردن اونچه کاربر مي تواند از طريق PHP اجرا کند بهISP ها توصيه ميشود.


safe_mode = Off



اگر safe mode فعال باشد (safe_mode = on) مي توانيد با تنظيم متغير safe_mode_include_dir مشخص کنيد که کدام شاخه ها براي فايل ها مورد جستجو برنامه بگيرند.

همينطور ميتوانيد نوع برنامه هايي که کدهاي PHP مي توانند از طريق فرمان exec اونها را اجرا نمايند، را محدود کنيد.

بدين منظور بايد اين برنامه هاي مجاز را در يک شاخه مخصوص برنامه دهيد و از طريق متغير safe_mode_include_dir به PHP بگايشانيد که تنها در اون شاخه به دنبال اونها بگردد.بدين ترتيب تنها برنامه هاي درون اين شاخه توسط فرمان exec قابل دسترس خواهند بود.


safe_mode_include_dir = /usr/local/lib/php/safe-include
safe_mode_exec_dir = /usr/local/lib/php/safe-bin



شما مي توانيد اعمال مربوط به فايل ها را از طريق متغير open_basedir محدود کنيد.

آدرس نسبت داده شده به اين متغير به عنوان ريشه اصلي (root) براي اعمال مربوط به فايل ها به کار مي رود.

وقتي که اين متغير مقدار مي گيرد فايلهايي که در ساختار درختي اين ريشه نباشند براي PHP غير قابل دسترس خواهند بود.

اين روش مناسبي براي محدود کردن کاربران يک سيستم اشتراکي مي باشد تا اونها تنها به آدرسهاي مربوط به خودشان دسترسي داشته باشند.


open_basedir = /home/web/



متغير max_execution_time تعيين ميکند که PHP حداکثر چند ثانيه منتظر پايان يافتن يک کد باشد قبل از اونکه به اجبار اون را خاتمه دهد.

وقتي کد شما گرفتار حلقه هاي بينهايت ميشود اين متغير بکار مي آيد.اگر چه ممکن هست اين موضوع گاهي مزاحمت ايجاد کند مثلا وقتي که کد نوشته شده نياز به انجام اعمال وقتبري دارد، مثلا upload کردن يک فايل حجيم.

در اين مواقع بايد مواظب باشيد که اين مقدار را افزايش دهيد تا مانع اون شايشاند که PHP اجراي کد شما را در وسط يک کار مهم خاتمه دهد.


max_execution_time = 90




تنظيمات مربوط به upload فايل ها و متغير هاي فرمها
اگر پيکربندي هاي امنيتي که تاکنون ذکر شد کافي نيست باز هم مي توانيد با غير فعال کردن قابليت upload فايل از طريق متغير file_uploads، يا با محدود کردن حداکثر حجم قابل upload از طريق متغير upload_max_filesize سيستم خود را از اين هم امن تر کنيد.

اغلب تمايل خواهيد داشت که فضاي کوچکي را براي upload فايلها اختصاص دهيد مگر اينکه برنامه اي داشته باشيد که برنامه باشد فايل هايي نظير يک گالري عکس يا يک FTP Service را پذيرا باشد.


file_uploads = On
upload_max_filesize = 2M



اگر تمايلي به upload کردن فايلها نداريد اما از تعداد زيادي فرم در صفحات PHP تان هستفاده ميکنيد، 2 متغير ديگر وجود دارد که بايد برايتان جالب باشد.

اول متغير register_globals، علت بيشترين سردردهاي برنامه نايشانسان با سابقهPHP در PHP 3.x اين متغير به طور پيش فرض فعال بود (on) که موجب ميشد وقتي يک فرم submit مي شد متغيرهاي اون بطور اتوماتيک به متغيرهاي PHP تبديل شوند.
مسايل امنيتي موجب شد که در PHP 4.x اين متغير بطور پيش فرض غير فعال باشد.

(off).

در نتيجه متغيرهاي فرم تنها به کمک آرايه هاي ايشانژه $_GET و $_POST قابل دسترس باشند.

اين امر خيلي از کدهاي نوشته شده با PHP 3.x را با مشکل مواجه ساخت.

مثلا مقداري که در يک فيلد وارد شده بود در PHP 3.x با $email قابل دسترس بود در حالي که در PHP 4.x با $_POST[email] يا $_GET[email] ميتوان به اون رجوع کرد.
ميتوانيد اين متغير را غير فعال کنيد (off) تا امنيت بيشتري را در برابر حملاتي که از طريق فرمها صورت مي گيرند بربرنامه کنيد.

به منظور سازگاري با کدهاي نوشته شده با PHP 3.x اون را فعال کنيد:


register_globals = on



متغير ديگري که به کار با فرم ها مربوط ميشود post_max_size هست که کنترل مي نمايد حداکثر چه حجم داده اي توسط متد POST يک فرم پذيرفته شود.

به نظر نمي آيد که وقتي لازم شود اين مقدار را از 8 MB افزايش دهيد.

در عوض احتمال دارد بخواهيد اون را به يک مقدار واقعي تر تغيير دهيد.

به هر حال اگر قصد داريد از امکانات upload فايل در PHP هستفاده کنيد اين مقدار را بيشتر از مقدار متغير upload_max_size برنامه دهيد.


post_max_size = 8M



يک متغير جديد هم در PHP 5 معرفي شده هست: max_input_time.

که حداکثر وقت بر حسب ثانيه که عمل دريافت داده هاي ورودي از طريق POST ،GET و PUT مي تواند طول بکشد را مشخص مي نمايد.

اگر برنامه شما تحت يک اتصال کند اجرا مي شود بهتر هست اين مقدار را افزايش دهيد تا به برنامه اجازه دهيد مدت بيشتري را به دريافت داده هاي ورودي اختصاص دهد.


max_input_time = 90




افزايش کارآيي
هنوز مقادير ديگري هم وجود دارد که با دستکاري اونها مي توانيد کارايي مفسر PHP را بالا ببريد.

به منظور جلوگيري از اجراي کدهايي که ممکن هست تمام حافظه موجود سيستم را اشغال نمايند، PHP به شما اجازه مي دهد که براي هستفاده از حافظه محدوديتي معين کنيد.

اين کار از طريق متغير memory_limit قابل انجام هست که حداکثر ميزان حافظه قابل هستفاده توسط يک برنامه واحد را مشخص مي نمايد.


memory_limit = 8M



مقدار متغير memory_limit اغلب بايد از مقدار متغير post_max_size بيشتر باشد.
مساله ديگري که با دانستن اون مي توانيد کارايي را افزايش دهيد غير فعال کردن متغيرهاي $argc و $argv هست که تعداد و محتواي آرگومان هاي خط فرمان که به يک برنامه ارسال شده اند، را مشخص مي نمايند.


register_argc_argv = false



همينطور غير فعال کردن آرايه هاي $HTTP_GET_VARS , $HTTP_POST_VARS .

چرا که به احتمال زياد در دنياي جديد $_GET , $_POST ديگر نيازي به اونها نيست.

غير فعال کردن اين اجزا باعث بهبود کارآيي مي شود البته فقط در PHP 5 و از طريق متغيرregister_long_arrays قابل انجام هست.


register_long_arrays = false




تابع ini_set
و در آخر نکاتي در مورد تابع ini_set.

در حالي کهPHP تمام تنظيمات اش را در هنگام بالا آمدن، از فايل php.ini مي خواند، اين اجازه را به شما مي دهد که اين تنظيمات را به کمک تابع جالب ini_set و در برنامه خود اجرا کنيد.

البته اين تغييرات فقط براي همان برنامه اي که در اون از تابع ini_set هستفاده کرده ايد اعمال مي شوند .اين تابع 2 آرگومان مي گيرد: نام متغير پيکربندي اي که مي خواهيد مقدارش را تغيير دهيد و مقدار جديد اون.

اين هم يک مثال که حداکثر وقت اجراي مجاز براي برنامه اي که اين کد در داخل اون نوشته شده هست را افزايش مي دهد.


<?php

ini_set('max_execution_time', 600);

// more code

?>



باز هم يادآوري مي شود که اين تنظيمات در داخل هر برنامه اي که نوشته شود فقط همان برنامه را تحت الشعاع برنامه مي دهد.

وقتي که برنامه خاتمه پيدا کند مقدار متغير به طور اتوماتيک به مقدار اوليه تغيير خواهد کرد.

اگر برنامه هايPHP شما بر رايشان يک سرور مشترک (Shared Server) اجرا مي شوند احتمالا شما دسترسي به فايل پيکربندي php.ini نخواهيد داشت.

در اين موارد تابع ini_set کمک شاياني مي نمايد.

چرا که اجازه مي دهد تنظيمات مورد نظرتان را براي برنامه هاي خودتان اعمال کنيد.


40:

از همه متشكرم
خيلي عالي بود

41:

$conn = new COM(\"ADODB.Connection\");
$connstr = \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\".

realpath(\"DataBase_Name.Mdb\") .\" ;DefaultDir=\".

realpath(\"./\");
$conn->open($connstr);

$result = $conn->execute(\"SELECT * FROM Table_Name\");
$result_fld0 = $result->Fields(0);
$result_fld1 = $result->Fields(1);
//.....2
//.....3

while (!$result->EOF) {
print \"$result_fld0->value $result_fld1->value <br>\n\";
$result->MoveNext(); //Goto Next Record

}
$result->close();
$conn->close();




راه معمول براي اتصال با بانك هاي Access هستفاده از اتصالات ODBC هست كه اين روش در واقعياتي كه دسترسي به سرور ممكن نباشد ميتواند مشكل ساز باشد با هستفاده از اتصالات Ado ميتوان به راحتي به بانكهاي Access و يا انواع ديگر بانكها اتصال مستقل از DSN را بر برنامه كرد در اين مثال فرض بر ان هست كه فايل Mdb.

در مسير فايل PHP برنامه دارد


نايشانسنده:
Ali_Ashrafzadeh

42:

این درسته که MYSQL و بقیه RDBMS ها برای برنامه های بزرگ و چند کاربره مفید هستند ولی خوب اگر شما می خواین یک سایت کم ترافیک و کوچیک درست کنین، شاید SQLite بهترین راه حل باشه.

چون سرعتش نسبت به MYSQL 2تا 3 برابر بیشتره که خوب مزیت بزرگیه.
کار با SQLite در PHP و بوسیله دستور PEAR آسان هست.

در نصب PEAR بطور پیش فرض SQLite وجود نداره ولی خیلی راحت Pear می تونه پکیج SQLite را download کنه سپس کامپایل کنه و در نهایت نصبش کنه.




[root@zaemis www]# pear download SQLite
File SQLite-1.0.2.tgz downloaded (362412 bytes)
[root@zaemis www]# pear install SQLite-1.0.2.tgz




الان SQLite در شاخه DB از PEAR قابل دسترسی هست.




<?php
require_once "DB.php\";
require_once \"DB/SQLite.php\";
$db = new DB_sqlite();
?>





برای کاربران windows یک فایل dll کامپایل شده وجود دارد که شما می تونید اونو از این آدرس download کنید.




SQLite binary for Windows: snaps.php.net/win32/PECL_STABLE/php_sqlite.dll




حالا باید به فایل php.ini اینها رو اضافه کنیم (البته اگر شما از php version 5 هستفاده می کنید نیازی به این تغییرات نیست).




; load the SQLite extension (UNIX)
extension=sqlite.so
; windows users will want to use this version instead
; extension=php_sqlite.dll




اتصال به دیتابیس
اتصال به SQLite با MySQL یه مقدار فرق داره.

چون MySQL برای محیط های چند کاربره طراحی شده در حالیکه SQLite برای برنامه های کاربردی تک کاربره طراحی شده که نیازی به ID و password هم برای وصل شدن نداره.
در عوض باید از یک آرایه برای ایجاد یک DSN (Data Source Name) هستفاده کرد.

DSN اشاره گری هست برای مشخص کردن محل قرارگیری فایلهای دیتابیس.

بعد این DSN رو به متد connect() پاس می کنیم.





<?php
$DSN = array(
"database\" => getcwd() .

\"/dbase/mydbase.db\",
\"mode\"=> 0644
);
$db->connect($DSN);
?>




اگر شما به دیتابیسی متصل شوید که وجود خارجی نداشته باشد یک دیتابیس جدید با permission های ذکر شده جاوی mode ایجاد می شود.
متد disconnect() برای قطع کردن اتصال هستفاده می شود.




<?php
$db->disconnect();
?>





پرس و جوها
متد query() برای این منظور هستفاده می شود.

مثل MySQL پرس و جوها می تونن برای ایجاد جداول و وارد کردن دیتا هستفاده شوند.



<?php
$query =
"INSERT INTO guestbook (fname, lname, email, comments)
VALUES ('John', 'Smith', 'jsmith@example.org', 'Great Website!')\"
;
$result = $db->query();
?>





متد fetchRow() می تواند برای نشان دادن نتیجه پرس و جو هستفاده شود که معادل متد mysql_fetch_row هست.




<?php
$query = "SELECT * FROM guestbook\";
$result = $db->query($query);
while (list($fname, $lname, $email, $comment) = $db->fetchRow(
$result))
{
echo \"<p><a href=\\"mailto:$email"
>$fname $lname</a> said:<br />\";
echo nl2br(htmlspecialchars(stripslashes($comment))) .
\"</p>\";
}
?>





نوشتن کد
در اینجا یک نمونه اسکریپت که با هستفاده از SQLite نوشته شده داریم:




<?php
require_once "DB.php\";
require_once \"DB/SQLite.php\";
$db = new DB_sqlite();
$DSN = array(\"database\" => getcwd() .

\"/dbase/mydbase.db\");
$db->connect($DSN);
$query = \"SELECT * FROM guestbook\";
$result = $db->query($query);
while (list($fname, $lname, $email, $comment) = $db->fetchRow(
$result))
{
echo \"<p><a href=\\"mailto:$email"
>$fname $lname</a> said:<br />\";
echo nl2br(htmlspecialchars(stripslashes($comment))) .
\"</p>\";
}
$db->disconnect();
?>





دستوراتی از SQL که پشتیبانی نمی شوند
هر برنامه دیتابیسی تفسیر خودش رو از SQL92 هستاندارد داره، SQLite هم مستثنا نیست.

بعضی از اینها ناشی از مدل طراحی embedded این دیتابیس دارند (مثل فقدان REVOKE و GRANT) بعضی هاشون هم جدا لج آورند (مثل نادیده گرفتن data type ها)
در این آدرس می تونید لیستی از دستورات SQL رو که توسط SQLite پشتیبانی می شوند را ببینید:




( [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] ) [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]




اینجا هم لیست دستوراتی هست که فعلا توسط SQLite پشتیبانی نمی شوند.



[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] ) [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]

SQLite: A Lightweight Alternative
by Timothy Boronczyk
The Swiss army knife of data storage
Wez Furlong

provided by Shilan

43:

<?php

//need this to get session variables
session_start();
//Solution for -Page has Expired- error
header("Cache-Control: \");
header(\"pragma: \");


//Check if session is ok or not
if (!$PHPSESSID) {
session_register(\"username\");
} else if (!$visitors) {
session_register(\"username\");
}

//is login button pressed
if($login){
if($loginname){
if($password){
if($loginname==\"test\" && $password==\"test\"){
$username=\"Test User\";

/* If you like jump to another page uncomment this and change [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
* to point where you like it
*
header(\"Location: http://www.intelligent-networks.com/\");
exit;
* */
} else {
$msg=\"Wrong username or password\";
$username=\"\";
}
}else {
$msg=\"Password missing\";
$username=\"\";
}
} else {
$msg=\"Username missing!\";
$username=\"\";
}
}

//*If logout unset all session variables
if($logout){
$username=\"\";
}
?>

<html>
<head>
</head>
<body>
<form name=\"logaction\" method=\"post\">
<?php
if(!$username){
?>
Username<br>
<input type=\"text\" name=\"loginname\" size=\"10\">
<br>
Password<br>
<input type=\"password\" name=\"password\" size=\"10\">
<br>
<input type=\"submit\" name=\"login\" value=\"Login\">
<br><br>
Try <br>
username:test<br>
password:test<br>
<?php
//display login messages
echo \"<br>\".$msg.\"<br>\n\";

} else {
//display user name
echo \"User:\".$username.\"<br>\n\";
?>
<input type=\"submit\" name=\"logout\" value=\"Logout\">

<!--
Enter here data here
-->
<?php
}
?>
</form>
</body>
</html>





Just For Beginners

( Ranux )

44:

ممنون - عالي بود
دستتون درد نکنه

لطفا ادامه بديد...


45:

بابا دس مريضا
اايشانولا

46:

سلام
واقعا خسته نباشيد:يه سوال چطوري stringفارسي تو كد phpبنايشانسم من امتحان كردم ونشد
مشكل:بايد تايشانه يه هسترينگ فارسي نوشته شه<?=_(" inja bayad farsi bashe ")?>
وقتي فارسي مينايشانسم تو موزيلا و بقيه مرورگر ها بشكل حروف عجبيب غريب نشون داده ميشه، اين مرورگر ها راحتي فارسي رو رايشان وب- منظورم اينترنت- نشون ميدن.
پلتفرم مورد هستفاده:
پنتيوم چهار با هارد80 و رم256
سيستم عامل: دبين سارجه 3.1كه با هستفاده از فري فونت فارسي و لايه كيبرد مناسب فارسي شده
مرورگر:معمولا موزيلا
امكان فاسي نايشانسي در اپن آفيس ،آبي ورد
نتايج جستجايشان راه حل: ايشانرايش httpd.confكه يا من بلد نيستم يا تغيير شامل زبان سينتكس درستي نداره
و : خوب نميدونم كجايه پي اچ پي ميشه utf-8 تعريف كرد

<? Php
Function()
{
…..
<?=_("……")?>
}

47:

آقا واقعا خسته نباشيد خيلي كامل وعاليست اميدوارم با تشايشانق دوستان بهتر هم بشود


48:

سلام
بله متاسفانه منم که دانلود کردم پسورد داره .


49:

آقا هاتف

تا حالا کسی بهت فرموده کارت درسته؟ نه؟

واقعا چه آدم های بی معرفتی پیدا می شن...

آقا کارت خیلی درسته...


50:

سلام دوستان
کسی میتونه در مورد خط زیر بهم توضیح بده؟
اگه کسی بلده تمام خط رو جزء به جزء توضیح میخوام
<input type="hidden" name="forwarder" value="modules.php?name=Surveys&op=results&pollID= 4">
input type="hidden" یعنی چی؟
چرا value رو مساوی modules.php?name=Surveys&op=results&pollID=4 برنامه داده؟ منظورم اینه که لینک مستقیم نیست و modules.php?name=Surveys&op=results&pollID=4 چه نوع لینکیه؟
به طور عادی ما value="module.php" میذاریم
هرچه توضیح عمیقتر و مفهمومی تر باشه ممنون

51:

خیلی از اون روز میگذره ولی بیا این هم توضیح من:
این یه مقدار مخفی با نام forwarder توی صفحه ات ایجاد می کنه
یعنی دقیقاً مثل یه text می مونه که خیلی تو فرم ها دیدیمش ولی چیزی نشون نمی ده و مقدارش از قبل پر شده (توسط اسکریپت همون صفحه)

احتمالاً توی صفحه ی modules.php می یاد و این مقدار رو می خونه و توی صفحه می نویسه که مثلاً منتقلت کنه اونجا
خوب این می خواد نتیجه ی یه نظر سنجی رو نشونت بده ولی از یه راه بی خود هستفاده کرده که توی بعضی از cms ها زیاد مشاهده میشه

52:

دستت درد نکنه عزیز

53:

سلام خدمت دوستان عزيز
ميخواستم بپرسم چطوري ميشه ارتباط php و sql server 2005 را درست كرد كه بدون هستفاده از odbc اطلاعات رد بدل كنيم
با تشك فراوان از زحماتتون

54:

سلام اول تشکر از مقاله های عالی

من تازه می خوام شروع کنم به php کار کردن با easy php ولی بلد نستم ممکنه یکی بگه آخرین ورژن این نرم افزار چیه و لینکش رو بزاره و رام بندازه تا برم سر یادگیری کدنویسی چون قبلن c++ کار کردم با برنامه نویسی بیگانه نیستم ولی با نرم افزارش و راه اندازی اولیش بیگانم ممنون میشم در این مورد با توضیحات مقدماتی تر یاریم کنید

55:

این بحث دیگه فعال نیست؟

56:

این آموزش ها رو دانلود کردم،پسورد دارند،با اون دو تا پسوردی هم که دادید باز نشدند!!! چرا ؟!؟!؟

57:

mer300000000000000
پسورد داشت اما باز شد سپاس فراوان

58:

اق جواد جون ایشالله که خیر ببینی...


59:

رمزش= p30world
من همین الان امتحان کردم.



59 out of 100 based on 64 user ratings 589 reviews