PDA

نسخه کامل مشاهده نسخه کامل : آموزش PHP



Saeed_TnT
20-12-2004, 19:42
اينم از لينك:

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

Ronaldiniho
25-11-2005, 12:20
فيلتره
يه ادرس ديگه ميدي

mpsjavad
26-11-2005, 04:26
با سلام ..

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

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]@.zip

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

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

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

shahabamo
23-01-2006, 11:21
جواد جان اینا که پسورد داره... :sad:

mpsjavad
23-01-2006, 19:06
جواد جان اینا که پسورد داره... :sad:

با سلام ..

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

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

P30world يا P30world.com

emhtiwyats
23-01-2006, 19:42
فیییییییلتترررررررررههههه هههههههه . بید جیگر .

mpsjavad
23-01-2006, 20:04
فیییییییلتترررررررررههههه هههههههه . بید جیگر .


با سلام ..

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

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]@.zip

و

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


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

ممنونم :)

emhtiwyats
26-01-2006, 15:17
با سلام ..

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

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]@.zip

و

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


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

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

mpsjavad
28-01-2006, 23:17
با سلام ...

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

emhtiwyats
31-01-2006, 18:57
مرسی . جواد جان .

R e Z a
31-01-2006, 21:37
دوستان خيلي ممنون...

emhtiwyats
03-02-2006, 19:35
راستی یکی از فایل ها خرابه .

mpsjavad
03-02-2006, 21:15
راستی یکی از فایل ها خرابه .

با سلام ..

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

hatef_4541
15-02-2006, 01:58
منم اينجا يك سري مقالات جمع آوري شده خودم رو ميذارم ! با ذكر منبع البته ! ;)
اميد وارم جزو تاپيك هاي مفيد بشه ! فقط اگر دوستان كسي Php رو مسلط هست اينجا جوابگوي سوالات باشه چون من صرفا مقاله هايي كه خودم جمع آوري كردم رو اينجا قرار ميدم. :)
با تشكر

hatef_4541
15-02-2006, 02:01
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

hatef_4541
15-02-2006, 02:04
خوب از حالا به بعد يكم بحث را تخصصي تر كنيم ! در ادامــــــه مي خواهيم در مورد اين صحبت كنيم كه : 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 پشتيباني كند! پس با ما باشيد....


By Mohammad Mojrian
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

hatef_4541
15-02-2006, 02:13
خوب از حالا به بعد يكم بحث را تخصصي تر كنيم ! در ادامــــــه مي خواهيم در مورد اين صحبت كنيم كه : 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 پشتيباني كند! پس با ما باشيد....


By Mohammad Mojrian
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

hatef_4541
15-02-2006, 02:23
مقدمات نصب 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 وجود دارد که در آن می‌ توانید فایل [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] که مربوط به پیکربندی این برنامه است را بیابید. با یک notepad می‌ توانید این پرونده را باز کرده و تغییرات زیر را اعمال کنید.
در بخشی که ScriptAlias ها معرفی شده‌اند، سطر زیر را وارد می‌کنیم:



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



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



AddType application/x-[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] .php



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



Action application/x-[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] \"/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 وجود دارد که در آن می‌ توانید فایل [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] که مربوط به پیکربندی این برنامه است را بیابید. با یک notepad می‌ توانید این پرونده را باز کرده و تغییرات زیر را اعمال کنید.
در بخشی که ScriptAlias ها معرفی شده‌اند، سطر زیر را وارد می‌کنیم:



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



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



AddType application/x-[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] .php



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



Action application/x-[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] \"/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 وجود دارد که در آن می‌ توانید فایل [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] که مربوط به پیکربندی این برنامه است را بیابید. با یک notepad می‌ توانید این پرونده را باز کرده و تغییرات زیر را اعمال کنید.

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



LoadModule php4_module modules/php4apache2.dll



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



AddType application/x-[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] .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 وجود دارد که در آن می‌ توانید فایل [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] که مربوط به پیکربندی این برنامه است را بیابید. با یک notepad می‌ توانید این پرونده را باز کرده و تغییرات زیر را اعمال کنید.

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



LoadModule php5_module modules/php5apache2.dll



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



AddType application/x-[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] .php



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



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



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

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

hatef_4541
15-02-2006, 02:25
روش نصب 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
Omni[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] 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 خود اجرا كنيد
موفق باشيد

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

hatef_4541
15-02-2006, 02:26
در این نوشته سعی خواهم کرد روش نصب PHP به همراه Apache HTTP Server را تا حد ممکن به صورت گام به‌گام توضیح دهم.





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



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



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

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









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



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



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









- در شاخه‌ای که Apache HTTP Server را نصب کرده‌اید، زیرشاخه‌ای به نام \conf وجود دارد که در آن می‌توانید فایل [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]که مربوط به پیکربندی این برنامه است را بیابید. با یک ویرایش‌گر ساده‌ی متن می‌توانید این پرونده را باز کرده و تغییردهید. برای اجرا شدن فایل‌ها با پسوند php تغییرات زیر باید در این پرونده اعمال شوند:



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

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





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

AddType applicatin/x-[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] .php




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

Action application/x-[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] "/php4/php.exe"




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





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



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

نويسنده: naderi@arcor.de

hatef_4541
15-02-2006, 02:28
امروز در مورد شكل كلي ساختار برنامه هاي 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

hatef_4541
15-02-2006, 02:31
ادامه در شب هاي بعد ! خسته شدم !

hatef_4541
17-02-2006, 02:14
مثل اينكه زياد طرفدار نداره اين بحث ! در هر صورت من ادامه ميدم !





نوشته های زیر ترجمه آزادی از مرجع کامل 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 تعبیه شده است در قسمت مباحث پیشرفته توابعی را به شما خواهم گفت که توانایی های جالب و بعضا قدرتمندی دارند اما شما هم اکنون هم می توانید یک برنامه کامل و حرفه ای را با استفاده از این توابع بنویسید که در ادامه یک برنامه برای تمرین با هم خواهیم نوشت اما به یاد داشته باشید تا زمانی که خودتان برنامه ننویسی و به مشکل برنخورید چیز زیادی در عمل یاد نخواهید گرفت در ضمن آخرین نکته اینکه اگر دارید تمرین میکنید و هیچ مشکلی در برنامه هایی که میخواهید بنویسی ندارید و می بینید همه چیز را بلدید فکر کنم باید در نحوه تمرین کردن خود تجدید نظر کنید.

hatef_4541
17-02-2006, 02:20
خب اکنون وقت آن رسیده که با یک برنامه عملی چیزهایی را که یاد گرفتیم به کار ببندیم تا مطالب بیشتر جا بیفتد.ما در اینجا یک برنامه خواهیم نوشت که مشخصات یک کاربر را گرفته و او را ثبت نام می کند و ...

خب در مرحله اول من باید جدول خود را طراحی کنم.جدول من باید حاوی نام, نام خانوادگی,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 از آرایه های $[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]*_VARS[] استفاده شود.با این حال شما با دست کاری در فایل php.ini می توانید این موضوع را تغییر دهید که این کار بدلیل مسائل انیتی اکیدا توصیه نمی شود.مقاله ای در این زمینه را در آدرس /studyinscarlet.txt[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

مشاهده کنید.

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

خب من در ادامه بوسیله توابع 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( )


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

hatef_4541
17-02-2006, 02:25
يكي از ويژگي هاي جالبي كه در 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

hatef_4541
17-02-2006, 02: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

hatef_4541
17-02-2006, 02: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 ایجاد خواهد شد .

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

hatef_4541
21-02-2006, 00:40
در درس امروز مي خواهيم در مورد چگونگي استفاد از نرم افزار 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

hatef_4541
21-02-2006, 00:42
نصب 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\[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] قرار دارد. شما مي‌توانيد صفحات خود را در اينجا قرار دهيد و همچنين از كنسول تنظيمات 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\[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] مي‌باشد و در اينصورت مقدار مورد نظر بايد عيناً شبيه مقدار زير باشد.
doc_root = "c:\inetpub\[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]"


اين مقدار كه در واقع مهمترين بيشترين مشكل را براي كاربران در نصب 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 به شما اين امكان را مي‌دهد كه از متغيّرهاي خود بصورت پايدار در بين فرمهاي مختلف استفاده كنيد و در فرستادن متغييرها چه با $[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] و چه بصورت $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\[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] تغيير دهيد.

- در بخش آخر شما مي‌توانيد فايل 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 استفاده كنيد.

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

hatef_4541
28-02-2006, 18:19
چرا 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 را نيز ياد خواهيد گرفت. پس با ما باشيد.

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

hatef_4541
28-02-2006, 18:22
در درس قبلي نصب و پيكر بندي 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

hatef_4541
28-02-2006, 18:25
مترجمان:
فرشاد پايدار
farshadcdeb@yahoo.com
جابر صادقي
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


فايل پيکربندي 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 = me@localhost.com
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



همينطور غير فعال کردن آرايه هاي $[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] , $[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] . چرا که به احتمال زياد در دنياي جديد $_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 کمک شاياني مي کند. چرا که اجازه مي دهد تنظيمات مورد نظرتان را براي برنامه هاي خودتان اعمال کنيد.

hqt_2006
13-03-2006, 23:25
از همه متشكرم
خيلي عالي بود

hatef_4541
14-03-2006, 00:52
$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

hatef_4541
14-03-2006, 00:55
این درسته که 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

hatef_4541
14-03-2006, 01:00
<?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: [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]");
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 )

Erfaan
26-05-2006, 05:43
ممنون - عالي بود :)
دستتون درد نکنه

لطفا ادامه بديد...

desk
21-06-2006, 10:29
بابا دس مريضا
اويولا

sastwhc
25-06-2006, 13:03
سلام
واقعا خسته نباشيد:يه سوال چطوري stringفارسي تو كد phpبنويسم من امتحان كردم ونشد
مشكل:بايد تويه يه استرينگ فارسي نوشته شه<?=_(" inja bayad farsi bashe ")?>
وقتي فارسي مينويسم تو موزيلا و بقيه مرورگر ها بشكل حروف عجبيب غريب نشون داده ميشه، اين مرورگر ها راحتي فارسي رو روي وب- منظورم اينترنت- نشون ميدن.
پلتفرم مورد استفاده:
پنتيوم چهار با هارد80 و رم256
سيستم عامل: دبين سارجه 3.1كه با استفاده از فري فونت فارسي و لايه كيبرد مناسب فارسي شده
مرورگر:معمولا موزيلا
امكان فاسي نويسي در اپن آفيس ،آبي ورد
نتايج جستجوي راه حل: ويرايش [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]كه يا من بلد نيستم يا تغيير شامل زبان سينتكس درستي نداره
و : خوب نميدونم كجايه پي اچ پي ميشه utf-8 تعريف كرد

<? Php
Function()
{
…..
<?=_("……")?>
}

siadate
24-08-2006, 05:43
آقا واقعا خسته نباشيد خيلي كامل وعاليست اميدوارم با تشويق دوستان بهتر هم بشود

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

golfam
08-04-2007, 17:48
سلام
بله متاسفانه منم که دانلود کردم پسورد داره .

mohammad_molana
20-09-2007, 01:30
آقا هاتف

تا حالا کسی بهت گفته کارت درسته؟ نه؟

واقعا چه آدم های بی معرفتی پیدا می شن...

آقا کارت خیلی درسته...

Hamidreza66
23-02-2008, 00:56
سلام دوستان
کسی میتونه در مورد خط زیر بهم توضیح بده؟
اگه کسی بلده تمام خط رو جزء به جزء توضیح میخوام
<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" میذاریم
هرچه توضیح عمیقتر و مفهمومی تر باشه ممنون

dogtag
25-02-2008, 12:12
سلام دوستان
کسی میتونه در مورد خط زیر بهم توضیح بده؟
اگه کسی بلده تمام خط رو جزء به جزء توضیح میخوام
<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" میذاریم
هرچه توضیح عمیقتر و مفهمومی تر باشه ممنون

خیلی از اون روز میگذره ولی بیا این هم توضیح من:
این یه مقدار مخفی با نام forwarder توی صفحه ات ایجاد می کنه
یعنی دقیقاً مثل یه text می مونه که خیلی تو فرم ها دیدیمش ولی چیزی نشون نمی ده و مقدارش از قبل پر شده (توسط اسکریپت همون صفحه)

احتمالاً توی صفحه ی modules.php می یاد و این مقدار رو می خونه و توی صفحه می نویسه که مثلاً منتقلت کنه اونجا
خوب این می خواد نتیجه ی یه نظر سنجی رو نشونت بده ولی از یه راه بی خود استفاده کرده که توی بعضی از cms ها زیاد مشاهده میشه

Hamidreza66
28-02-2008, 13:40
دستت درد نکنه عزیز :46:

mrsha
18-07-2010, 11:33
سلام خدمت دوستان عزيز
ميخواستم بپرسم چطوري ميشه ارتباط php و sql server 2005 را درست كرد كه بدون استفاده از odbc اطلاعات رد بدل كنيم
با تشك فراوان از زحماتتون

erfanskelet
30-08-2010, 17:16
سلام اول تشکر از مقاله های عالی

من تازه می خوام شروع کنم به php کار کردن با easy php ولی بلد نستم ممکنه یکی بگه آخرین ورژن این نرم افزار چیه و لینکش رو بزاره و رام بندازه تا برم سر یادگیری کدنویسی چون قبلن c++ کار کردم با برنامه نویسی بیگانه نیستم ولی با نرم افزارش و راه اندازی اولیش بیگانم ممنون میشم در این مورد با توضیحات مقدماتی تر یاریم کنید

erfanskelet
31-08-2010, 17:07
این بحث دیگه فعال نیست؟

teshneh
16-09-2010, 13:32
با سلام ..
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]@.zip

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


این آموزش ها رو دانلود کردم،پسورد دارند،با اون دو تا پسوردی هم که دادید باز نشدند!!! چرا ؟!؟!؟

fatimaaa
28-05-2012, 01:03
mer300000000000000
پسورد داشت اما باز شد سپاس فراوان

waliprs
09-07-2012, 23:23
اق جواد جون ایشالله که خیر ببینی...

asadi.hasan
20-07-2012, 18:51
رمزش= p30world
من همین الان امتحان کردم.