تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 4 از 6 اولاول 123456 آخرآخر
نمايش نتايج 31 به 40 از 52

نام تاپيک: آموزش PHP

  1. #31
    پروفشنال hatef_4541's Avatar
    تاريخ عضويت
    Jul 2005
    محل سكونت
    ايران/رشت
    پست ها
    672

    پيش فرض

    در درس قبلي نصب و پيكر بندي 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

  2. این کاربر از hatef_4541 بخاطر این مطلب مفید تشکر کرده است


  3. #32
    پروفشنال hatef_4541's Avatar
    تاريخ عضويت
    Jul 2005
    محل سكونت
    ايران/رشت
    پست ها
    672

    پيش فرض نکاتی مفید در مورد تنظیم php.ini

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


    فايل پيکربندي PHP
    قبل از شروع مطالب نگاهي اجمالي به ويژگيهاي فايل پيکربندي PHP منطقي به نظر مي رسد. نام اين فايل php.ini مي باشد و به دلايلي از ساختار کلي فايلهاي ini که بيشتر در برنامه هاي کاربردي ويندوز استفاده مي شود، پيروي مي کند. اين فايل متني به صورت ASCII مي باشد که به بخشهايي (session) تقسيم مي شود. هر بخش متغيرهايي را که مربوط به آن بخش مي شوند، در بر مي گيرد. هر بخش چيزي شبيه زير مي باشد:



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



    نام بخش در يک جفت براکت"[]" در بالا قرار مي گيرد. و زير آن در هر سطر يک متغير با مقدارش قرار مي گيرد. متغيرها به حروف حساس (case sensitive) هستند و نمي توانند شامل فاصله (space) باشند، در حالي که مقادير متناظر آنها مي توانند اعداد، رشته کاراکتري (string) و يا Boolean باشند.

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

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

    بعد از اينکه شما تغييراتي در فايل php.ini داديد براي آنکه تغييرات اعمال شوند بايد سرور خود را مجددا راه اندازي نماييد (سرور را restart کنيد). البته فرض بر اين است که شما قبلا در حال استفاده PHP بر سرور خود بوده ايد. براي استفاده هاي command-line از PHP فايل پيکربندي php.ini در هرباري که برنامه PHP احضار مي شود خوانده و چک مي شود.


    تنظيم ويژگيهاي مفسر
    اولين مرحله در اين مقاله از مهمترين گامهاي آن مي باشد، ويژگيهايي که به مفسر زبان PHP مربوط مي شود. اولين مورد در اينجا engine variable مي باشد که چک مي کند که PHP engine بايد فعال "on" يا غير فعال "off" باشد. Off کردن اين متغير به معني اين است که کدهاي PHP توسط سرور تفسير نشوند.معمولاً نيازي به اين تغيير حس نمي شود، پس اين متغير را به صورت on رها کنيد.


    engine=On



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


    short_open_tag = On



    معمولاً session, cookie و اطلاعات HTTP header در يک اسکريپت PHP بايد قبل از توليد هرگونه خروجي توسط آن اسکريپت فرستاده شوند. در صورتي که اين در برنامه شما امکان پذير نيست مي توانيد هر چه را که PHP به نام output buffering مي شناسد، توسط متغيرهاي output_buffering فعال کنيد.

    با on بودن output buffering، زبان PHP خروجي اسکريپت شما را در يک بافر مخصوص نگه مي دارد و هنگامي آنها را مي فرستد که به طور مشخص به آن دستور داده شود. اين به شما امکان مي دهد که cookieها يا اطلاعات HTTP header را از وسط يا انتهاي کد اسکريپت خود بفرستيد. هرچند اين مي تواند کارآيي را در حاشيه کاهش دهد.


    output_buffering = Off



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


    output_buffering = 2048



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


    expose_PHP = On




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


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



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

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


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




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


    error_reporting = E_ALL



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


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




    فعال کردن توسعه ها
    توسعه هاي متعددي براي PHP موجود است. در سيستمهاي يونيکس لازم است که اين توسعه ها در زمان کامپايل ساخته شوند. در ويندوز، dll هاي باينري وجود دارند که بايد ضميمه شوند. متغير extension_dir محتوي نام شاخه اي است که PHP در آن به دنبال اين توسعه ها مي گردد. مثلا:


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



    نسخه ويندوز PHP به همراه ۲۰ توسعه منتشر مي شود که تمامي آنها در فايل php.ini ليست شده اند. براي فعال کردن هر توسعه، علامت سمي کالن جلوي آن را حذف کرده و سرور خود را از نو راه اندازي کنيد. براي غير فعال کردن يک توسعه نيز مي توانيد جلوي آن علامت سمي کالن رو اضافه کنيد.

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


    extension=php_domxml.dll
    extension=php_dbase.dll




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

    اگر قصد استفاده از تابع mail در PHP را داريد، 3 متغير وجود دارد که بايد آنها را تنظيم کنيد. متغيرهاي SMTP و sendmail_from (در ويندوز) يا sendmail_path (در يونيکس) در هنگام ارسال e-mail از طريق تابع mail مورد استفاده قرار مي گيرند. در ويندوز اين متغير ها براي تنظيم SMTP Server و همچنين براي تعيين آدرس From در ساختار e-mail به کار مي روند. در يونيکس متغير sendmail_path مسير MTA يا Mail Transfer Agent را براي ارسال mail تنظيم مي کند.


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



    متغيرهاي java.class.path ، java.home، java.library و java.library.path همگي آدرس کلاس ها و کتابخانه هاي جاوا را تنظيم ميکنند. اين مقادير به وسيله توسعه هاي جاوا مورد استفاده قرار مي گيرند. بنابراين اگر مي خواهيد PHP بتواند ارتباط صحيحي با برنامه هاي جاواي شما برقرار کند از درستي و معتبر بودن مقادير اين متغير ها اطمينان حاصل کنيد.


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



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


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




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


    safe_mode = Off



    اگر safe mode فعال باشد (safe_mode = on) مي توانيد با تنظيم متغير safe_mode_include_dir مشخص کنيد که کدام شاخه ها براي فايل ها مورد جستجو قرار بگيرند. همچنين ميتوانيد نوع برنامه هايي که کدهاي PHP مي توانند از طريق فرمان exec آنها را اجرا کنند، را محدود کنيد. بدين منظور بايد اين برنامه هاي مجاز را در يک شاخه مخصوص قرار دهيد و از طريق متغير safe_mode_include_dir به PHP بگوييد که تنها در آن شاخه به دنبال آنها بگردد.بدين ترتيب تنها برنامه هاي درون اين شاخه توسط فرمان exec قابل دسترس خواهند بود.


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



    شما مي توانيد اعمال مربوط به فايل ها را از طريق متغير open_basedir محدود کنيد. آدرس نسبت داده شده به اين متغير به عنوان ريشه اصلي (root) براي اعمال مربوط به فايل ها به کار مي رود. وقتي که اين متغير مقدار مي گيرد فايلهايي که در ساختار درختي اين ريشه نباشند براي PHP غير قابل دسترس خواهند بود. اين روش مناسبي براي محدود کردن کاربران يک سيستم اشتراکي مي باشد تا آنها تنها به آدرسهاي مربوط به خودشان دسترسي داشته باشند.


    open_basedir = /home/web/



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


    max_execution_time = 90




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


    file_uploads = On
    upload_max_filesize = 2M



    اگر تمايلي به upload کردن فايلها نداريد اما از تعداد زيادي فرم در صفحات PHP تان استفاده ميکنيد، 2 متغير ديگر وجود دارد که بايد برايتان جالب باشد. اول متغير register_globals، علت بيشترين سردردهاي برنامه نويسان با سابقهPHP در PHP 3.x اين متغير به طور پيش فرض فعال بود (on) که موجب ميشد وقتي يک فرم submit مي شد متغيرهاي آن بطور اتوماتيک به متغيرهاي PHP تبديل شوند.
    مسايل امنيتي موجب شد که در PHP 4.x اين متغير بطور پيش فرض غير فعال باشد. (off). در نتيجه متغيرهاي فرم تنها به کمک آرايه هاي ويژه $_GET و $_POST قابل دسترس باشند. اين امر خيلي از کدهاي نوشته شده با PHP 3.x را با مشکل مواجه ساخت. مثلا مقداري که در يک فيلد وارد شده بود در PHP 3.x با $email قابل دسترس بود در حالي که در PHP 4.x با $_POST[email] يا $_GET[email] ميتوان به آن رجوع کرد.
    ميتوانيد اين متغير را غير فعال کنيد (off) تا امنيت بيشتري را در برابر حملاتي که از طريق فرمها صورت مي گيرند برقرار کنيد. به منظور سازگاري با کدهاي نوشته شده با PHP 3.x آن را فعال کنيد:


    register_globals = on



    متغير ديگري که به کار با فرم ها مربوط ميشود post_max_size است که کنترل مي کند حداکثر چه حجم داده اي توسط متد POST يک فرم پذيرفته شود. به نظر نمي آيد که زماني لازم شود اين مقدار را از 8 MB افزايش دهيد. در عوض احتمال دارد بخواهيد آن را به يک مقدار واقعي تر تغيير دهيد. به هر حال اگر قصد داريد از امکانات upload فايل در PHP استفاده کنيد اين مقدار را بيشتر از مقدار متغير upload_max_size قرار دهيد.


    post_max_size = 8M



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


    max_input_time = 90




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


    memory_limit = 8M



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


    register_argc_argv = false



    همينطور غير فعال کردن آرايه هاي $HTTP_GET_VARS , $HTTP_POST_VARS . چرا که به احتمال زياد در دنياي جديد $_GET , $_POST ديگر نيازي به آنها نيست. غير فعال کردن اين اجزا باعث بهبود کارآيي مي شود البته فقط در PHP 5 و از طريق متغيرregister_long_arrays قابل انجام است.


    register_long_arrays = false




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


    <?php

    ini_set('max_execution_time', 600);

    // more code

    ?>



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

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

  4. #33
    در آغاز فعالیت
    تاريخ عضويت
    Jan 2006
    محل سكونت
    كاشان-طاهرآباد
    پست ها
    9

    پيش فرض

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

  5. #34
    پروفشنال hatef_4541's Avatar
    تاريخ عضويت
    Jul 2005
    محل سكونت
    ايران/رشت
    پست ها
    672

    پيش فرض اتصال با بانك هاي Access با استفاده از Ado

    $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

  6. #35
    پروفشنال hatef_4541's Avatar
    تاريخ عضويت
    Jul 2005
    محل سكونت
    ايران/رشت
    پست ها
    672

    پيش فرض SQLite پیشنهاد سبک وزن

    این درسته که 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

  7. #36
    پروفشنال hatef_4541's Avatar
    تاريخ عضويت
    Jul 2005
    محل سكونت
    ايران/رشت
    پست ها
    672

    پيش فرض Login - Logout

    <?php

    //need this to get session variables
    session_start();
    //Solution for -Page has Expired- error
    header("Cache-Control: \");
    header(\"pragma: \");


    //Check if session is ok or not
    if (!$PHPSESSID) {
    session_register(\"username\");
    } else if (!$visitors) {
    session_register(\"username\");
    }

    //is login button pressed
    if($login){
    if($loginname){
    if($password){
    if($loginname==\"test\" && $password==\"test\"){
    $username=\"Test User\";

    /* If you like jump to another page uncomment this and change [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
    * to point where you like it
    *
    header(\"Location: http://www.intelligent-networks.com/\");
    exit;
    * */
    } else {
    $msg=\"Wrong username or password\";
    $username=\"\";
    }
    }else {
    $msg=\"Password missing\";
    $username=\"\";
    }
    } else {
    $msg=\"Username missing!\";
    $username=\"\";
    }
    }

    //*If logout unset all session variables
    if($logout){
    $username=\"\";
    }
    ?>

    <html>
    <head>
    </head>
    <body>
    <form name=\"logaction\" method=\"post\">
    <?php
    if(!$username){
    ?>
    Username<br>
    <input type=\"text\" name=\"loginname\" size=\"10\">
    <br>
    Password<br>
    <input type=\"password\" name=\"password\" size=\"10\">
    <br>
    <input type=\"submit\" name=\"login\" value=\"Login\">
    <br><br>
    Try <br>
    username:test<br>
    password:test<br>
    <?php
    //display login messages
    echo \"<br>\".$msg.\"<br>\n\";

    } else {
    //display user name
    echo \"User:\".$username.\"<br>\n\";
    ?>
    <input type=\"submit\" name=\"logout\" value=\"Logout\">

    <!--
    Enter here data here
    -->
    <?php
    }
    ?>
    </form>
    </body>
    </html>





    Just For Beginners

    ( Ranux )

  8. #37
    پروفشنال Erfaan's Avatar
    تاريخ عضويت
    Mar 2005
    محل سكونت
    زير آسمون خدا
    پست ها
    685

    پيش فرض

    ممنون - عالي بود
    دستتون درد نکنه

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

  9. #38
    در آغاز فعالیت
    تاريخ عضويت
    Jun 2006
    پست ها
    17

    10

    بابا دس مريضا
    اويولا
    Last edited by desk; 21-06-2006 at 10:32.

  10. #39
    کاربر فعال MP3 Player sastwhc's Avatar
    تاريخ عضويت
    Jun 2006
    پست ها
    1,230

    پيش فرض چطوري تو phpفارسي بنويسيم

    سلام
    واقعا خسته نباشيد:يه سوال چطوري stringفارسي تو كد phpبنويسم من امتحان كردم ونشد
    مشكل:بايد تويه يه استرينگ فارسي نوشته شه<?=_(" inja bayad farsi bashe ")?>
    وقتي فارسي مينويسم تو موزيلا و بقيه مرورگر ها بشكل حروف عجبيب غريب نشون داده ميشه، اين مرورگر ها راحتي فارسي رو روي وب- منظورم اينترنت- نشون ميدن.
    پلتفرم مورد استفاده:
    پنتيوم چهار با هارد80 و رم256
    سيستم عامل: دبين سارجه 3.1كه با استفاده از فري فونت فارسي و لايه كيبرد مناسب فارسي شده
    مرورگر:معمولا موزيلا
    امكان فاسي نويسي در اپن آفيس ،آبي ورد
    نتايج جستجوي راه حل: ويرايش httpd.confكه يا من بلد نيستم يا تغيير شامل زبان سينتكس درستي نداره
    و : خوب نميدونم كجايه پي اچ پي ميشه utf-8 تعريف كرد

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

  11. #40
    اگه نباشه جاش خالی می مونه siadate's Avatar
    تاريخ عضويت
    Apr 2006
    محل سكونت
    مشهد مقدس
    پست ها
    345

    پيش فرض

    آقا واقعا خسته نباشيد خيلي كامل وعاليست اميدوارم با تشويق دوستان بهتر هم بشود


Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •