پاسخ : آموزش PHP [h=2]آموزش PHP - تابع ( ) date[/h] تابع ( ) date در PHP : از تابع ( ) date در PHP ، برای نمایش و یا دستکاری ساعت و تاریخ استفاده می شود . از تابع ( ) date می توانید برای انجام اموری مثل نمایش تاریخ جاری سرور ، نمایش یک تاریخ خاص ، محاسبه زمان ، ایجاد یک برچسب زمانی و ... استفاده نمایید . این تابع یکی از توابع پیش ساخته و اصلی زبان PHP است . شکل کلی تعریف و استفاده از تابع ( ) date در PHP به صورت زیر است : [TABLE="class: ex"] [TR] [TD="class: prname"] Syntax [/TD] [TD="class: prdes, align: left"] < ? php date ( format ) ; ? > [/TD] [/TR] [/TABLE] [TABLE="class: ex"] [TR] [TD="class: header, colspan: 2"] syntax توضیح هر یک از موارد [/TD] [/TR] [TR] [TD="class: body, align: center"] توضیح [/TD] [TD="class: header"] پارامتر [/TD] [/TR] [TR] [TD="class: body, align: right"] پارامتر format تعیین کننده نحوه نمایش تاریخ توسط تابع ( ) date است . در این پارامتر کاراکترهای زیر را می توانید به کار ببرید : تعیین این پاامتر برای تابع اجباری است . کاراکتر d : این کاراکتر ، نمایشگر شماره روز در تابع date بوده و عددی بین 01 تا 31 است . کاراکتر m : این کاراکتر نمایشگر عدد ماه در تابع date بوده و عددی بین 01 تا 12 است . کاراکتر Y : کاراکتر Y نمایشگر عدد سال در تابع date بوده و یک عدد چهار رقمی است . کاراکترهای جدا کننده : از کاراکترهایی مثل " / " ، " - " ، " . " و ... می توان برای جدا نمودن عددهای سال و ماه و روز در تایع date است نمود. نحوه استفاده از این کاراکترها و خروجی آنها در حالت های مختلف را در مثال عملی زیر نمایش داده ایم : [/TD] [TD="class: header"] format [/TD] [/TR] [/TABLE] مثال عملی : در مثال زیر نحوه به کار بردن تابع date در نمایش تاریخ و حالت های مختلف پارامتر format در آن را نمایش داده ایم : [TABLE="class: ex"] [TR] [TD="class: header, colspan: 2"] Example [/TD] [/TR] [TR] [TD="class: body"] < ? php echo date("Y/m/d") . " < br / > "; echo date("Y.m.d") . " < br / >"; echo date("Y-m-d"); ? > [/TD] [TD="class: header"] کد [/TD] [/TR] [TR] [TD="class: body"] 2012/03/11 2012.03.11 2012-03-11 [/TD] [TD="class: header"] خروجی [/TD] [/TR] [/TABLE] [HR][/HR] توابع مهم و کاربردی زیر مجموعه تابع ( ) date : در لیست زیر برخی از توابع مهم و کاربردی مرتبط با تابع date را معرفی کرده ایم . این توابع امکانات مهم و سودمندی برای کار با زمان در اختیار ما قرار می دهند . برای دریافت اطلاعات لازم راجع به هر کدام بر روی نام آن کلیک نمایید : [TABLE="class: ex"] [TR] [TD="class: prname"] نام تابع [/TD] [TD="class: prdes"] کاربرد [/TD] [/TR] [TR] [TD="class: prname"] checkdate ( ) [/TD] [TD="class: prbody"] این تابع ، تاریخ داده شده به آن را طبق تقویم میلادی بررسی کرده و صحت آن را اعلام می کند . [/TD] [/TR] [TR] [TD="class: prname"] date_default_timezone_get ( ) [/TD] [TD="class: prbody"] این تابع زمان محلی ( timezone ) سرور را نمایش می دهد . [/TD] [/TR] [TR] [TD="class: prname"] date_default_timezone_set ( ) [/TD] [TD="class: prbody"] این تابع زمان محلی ( timezone ) سرور را بر طبق مقدار داده شده ، تنظیم می کند . [/TD] [/TR] [TR] [TD="class: prname"] date_sunrise ( ) [/TD] [TD="class: prbody"] این تابع زمان طلوع آفتاب در یک تاریخ خاص را ، بر حسب موقعیت جغرافیایی سرور نمایش می دهد . [/TD] [/TR] [TR] [TD="class: prname"] date_sunrset ( ) [/TD] [TD="class: prbody"] این تابع زمان غروب آفتاب در یک تاریخ خاص را ، بر حسب موقعیت جغرافیایی سرور نمایش می دهد . [/TD] [/TR] [TR] [TD="class: prname"] getdate ( ) [/TD] [TD="class: prbody"] این تابع زمان و تاریخ دقیق جاری سرور را در یک آرایه به کاربر نمایش می دهد . [/TD] [/TR] [TR] [TD="class: prname"] mktime ( ) [/TD] [TD="class: prbody"] این تابع برای تعیین تاریخ جاری و یا تعیین یک تاریخ در آینده به کار می رود . [/TD] [/TR] [/TABLE]
پاسخ : آموزش PHP [h=2]آموزش PHP - تابع ( ) time[/h] تابع ( ) time در PHP : تابع ( ) time در PHP ، میزان ثانیه سپری شده از تاریخ اولین ثانیه روز اول سال میلادی 1970 را بر می گرداند . این تاریخ در کار با زمان و تاریخ در PHP یک مقدار پیش فرض است . کاربرد تابع time در PHP ، بیشتر برای تعیین یا تنظیم زمان مورد در صفحات PHP است . برای مثال ، تعیین زمان برای اعتبار کوکی ها ( cookies ) در یک صفحه PHP است . به این صورت که در هنگام تعریف یک کوکی ، میزان ثانیه ای که کوکی باید اعتبار داشته باشد را به وسیله تابع time تعیین می کنیم . برای دریافت اطلاعات بیشتر راجع به استفاده از این تابع در تنظیم کوکی ها به بخش آموزش نحوه ایجاد کوکی cookie در PHP بروید . شکل کلی تعریف و استفاده از تابع ( ) date در PHP به صورت زیر است : [TABLE="class: ex"] [TR] [TD="class: prname"] Syntax [/TD] [TD="class: prdes, align: left"] < ? php time ( ) ; ? > [/TD] [/TR] [/TABLE] این تابع پارامتر خاصی ندارد و فقط تعداد ثانیه ها را به صورت یک مقدار عددی بر می گرداند . در مثال زیر نحوه استفاده از این تابع را در عمل به شما نمایش داده ایم : مثال عملی : در مثال عملی زیر تابع time را به کار برده و به وسیله آن مقدار ثانیه های گذشته از تاریخ 01/01/1970 را نمایش داده ایم . برای این منظور این مقدار را ابتدا در متغیر t$ ذخیره کرده و و سپس آن را در خروجی چاپ کرده ایم : [TABLE="class: ex"] [TR] [TD="class: header, colspan: 2"] Example [/TD] [/TR] [TR] [TD="class: body"] < ? php $ t = time ( ) ; echo ( $t . " ") ; echo date ( " Y / m / d " ) ; ? > [/TD] [TD="class: header"] کد [/TD] [/TR] [TR] [TD="class: body"] 1138618081 02/03/2012 توجه کنید که خروجی به صورت اکتیو توسط مرورگر تولید نشده است . [/TD] [TD="class: header"] خروجی [/TD] [/TR] [/TABLE]
پاسخ : آموزش PHP [h=2]آموزش PHP - تابع ( ) include[/h] کار با تابع ( ) include در PHP : با استفاده از تابع ( ) include می توان محتویات یک فایل PHP را درون یک صفحه دیگر PHP ، وارد نمود . در این حالت سرور PHP در هنگام اجرای صفحه ، محتویات فایل اضافه شده را خوانده و آن را با صفحه اول ترکیب می کند . سپس خروجی را در قالب یک صفحه نمایش می دهد . از این ترفند معمولا برای ساخت صفحات مادر ( Master Page ) در PHP ، استفاده می شود . برای دریافت اطلاعات راجع به صفحات مادر در PHP به این بخش مراجعه نمایید : راهنمای ساخت صفحات Master Page در PHP شکل کلی استفاده از تابع ( ) include ، به صورت زیر است : [TABLE="class: ex"] [TR] [TD="class: prname"] Syntax [/TD] [TD="class: prdes, align: left"] < ? php include ( آدرس و نام فایل یا صفحه ای که می خواهید محتویات آن را در صفحه جاری وارد نمایید ) ; ? > [/TD] [/TR] [/TABLE] نکته مهم : اگر درهنگام اجرای دستور ( ) include ، مشکلی در اجرای فایل و خواندن محتویات آن به وجود آید ، سرور یک پیام هشدار صادر می کند ، ولی صفحه اجرا می شود ( با اشکال ) . [HR][/HR] یک مثال از کاربرد این تابع : فرض کنید که در صفحات سایتی که طراحی کرده اید ، در بالای هر صفحه یک بخش هدر قرار دارد . شما می توانید کد بخش هدر را در یک فایل PHP جدا تعریف کرده و ذخیره نمایید . سپس به جای قرار دادن کد هدر در صحفه ها ، با استفاده از دستور ( ) include و به کار بردن نام فایلی که کد در آن قرار دارد ، محتویات فایل هدر را در صفحات مورد نظر خودتان وارد نمایید . در ادامه با مثال و سورس کد ، مطلب مورد نظر را در عمل نمایش خواهیم داد . [HR][/HR] مثال های عملی : مثال 1 : در این مثال یک صفحه ساده PHP داریم . این صفحه دارای یک بخش هدر می باشد . اما کدر بخش هدر را در یک فایل به نام header.php ذخیره کرده ایم . سپس با استفاده از تابع ( ) include ، محتویات فایل هدر را در صفحه خود وارد نموده ایم . این صفحه در هنگام اجرا کد بخش هدر خود را از فایل header.php دریافت خواهد کرد . [TABLE="class: ex"] [TR] [TD="class: prname"] Example [/TD] [TD="class: prdes, align: left"] <html> <body> < ? php include ( "header.php" ) ; ? > < h1 > محتویات صفحه < /h1 > < p > محتویات صفحه < /p > < /body > < /html > [/TD] [/TR] [/TABLE]
پاسخ : آموزش PHP [h=2]آموزش PHP - کار با فایل ها در PHP[/h] مقدمه : به وسیله قابلیت های کار با فایل ها در PHP ، شما می توانید فایل های متنی و یا سایر فایل ها را باز کرده ، خوانده ، ویرایش نموده و یا جستجو نمایید . در این بخش قصد داریم تا متدها و توابعی که برای کار با فایل ها در PHP در نظر گرفته شده اند ، را تشریح نماییم . [HR][/HR] باز کردن یک فایل - متد ( ) fopen : به وسیله تابع ( ) fopen در PHP ، می توانید یک فایل را باز کنید . این تابع دو پارامتر اصلی دارد . پارامتر اول تعیین کننده نام و آدرس فایل و پارامتر دوم تعیین کننده نحوه باز کردن فایل است . در ادامه به توضیح این پارامترها خواهیم پرداخت . برای کار با این تابع ، باید خروجی آن را در یک متغیر ذخیره نمود و سپس آن متغیر را در سطح برنامه استفاده نمود . شکل کلی استفاده از این متد به صورت زیر است : [TABLE="class: ex"] [TR] [TD="class: prname"] Syntax [/TD] [TD="class: prdes, align: left"] < ? php $ نام یک متغیر دلخواه = fopen ( " نحوه باز کردن فایل " , " نام یا آدرس فایل مورد نظر " ) ; ? > ? > مثال : < ? php $My_File = fopen ( " Example.txt " , " r" ) ; ? > [/TD] [/TR] [/TABLE] گفتیم که پارامتر اول تعیین کننده نام و یا آدرس فایل مورد نظر است . اما پارامتر دوم تعیین کننده نحوه باز شدن فایل است . این پارامتر می تواند یکی از مقادیر جدول زیر را داشته باشد . ضمنا عمکلرد هر مقدار نیز توضیح داده شده است : [TABLE="class: pr"] [TR] [TD="class: header"] مقدار [/TD] [TD="class: header"] نحوه باز کردن فایل [/TD] [/TR] [TR] [TD="class: prbody, align: center"] r [/TD] [TD="class: prbody"] در این حالت فایل به صورت فقط خواندنی و از ابتدای آن باز می شود . در این حالت امکان تغییر فایل برای کاربر وجود ندارد . [/TD] [/TR] [TR] [TD="class: prbody, align: center"] +r [/TD] [TD="class: prbody"] در این حالت فایل به صورت خواندنی ، قابل ویرایش و از ابتدا باز می شود . در این حالت امکان تغییر فایل برای کاربر وجود دارد . [/TD] [/TR] [TR] [TD="class: prbody, align: center"] w [/TD] [TD="class: prbody"] در این حالت فایل به صورت فقط نوشتنی و قابل تغییر باز می شود . در این حالت چنان فایل از قبل وجود داشته باشد ، محتویات آن پاک می شود . و اگر وجود نداشته باشد ، یک فایل جدید ایجاد می شود . [/TD] [/TR] [TR] [TD="class: prbody, align: center"] +w [/TD] [TD="class: prbody"] در این حالت فایل به صورت خواندنی و نوشتنی و قابل تغییر باز می شود . در این حالت چنان فایل از قبل وجود داشته باشد ، محتویات آن پاک می شود . و اگر وجود نداشته باشد ، یک فایل جدید ایجاد می شود . [/TD] [/TR] [TR] [TD="class: prbody, align: center"] a [/TD] [TD="class: prbody"] در این حالت فایل باز شده و متن تعیین شده به انتهای آن اضافه می شود . [/TD] [/TR] [TR] [TD="class: prbody, align: center"] x [/TD] [TD="class: prbody"] در این حالت یک فایل جدید با نام تعیین شده ایجاد و به صورت فقط نوشتنی باز می شود . چنانچه فایل از قبل وجود داشته باشد ، برنامه پیام error صادر کرده و مقدار false را بر می گرداند . [/TD] [/TR] [TR] [TD="class: prbody, align: center"] +x [/TD] [TD="class: prbody"] در این حالت یک فایل جدید با نام تعیین شده ایجاد و به صورت خواندنی و نوشتنی باز می شود . چنانچه فایل از قبل وجود داشته باشد ، برنامه پیام error صادر کرده و مقدار false را بر می گرداند . [/TD] [/TR] [/TABLE] اگر سرور فایل را پیدا نکرده و یا وجود نداشت ، چه می شود : اگر فایلی که در تابع ( ) fopen تعیین کرده ایم ، وجود نداشت و یا سرور موفق نشد ، آن را پیدا کند ، برنامه یک پیام error صادر کرده و مقدار false یا 0 را بر می گرداند . اسکریپت زیر ، در صورتی که فایل وجود نداشته باشد ، یک پیام هشدار را به کاربر نمایش می دهد : [TABLE="class: ex"] [TR] [TD="class: prname"] Example [/TD] [TD="class: prdes, align: left"] < ? php $file = fopen ( " welcome.txt " , " r " ) or exit ( " Unable to open file ! " ) ; ? > [/TD] [/TR] [/TABLE] [HR][/HR] بستن یک فایل باز شده - متد ( ) fclose : پس از اینکه یک فایل را با دستور ( ) fopen باز کردیم ، می توانیم آن را با دستور ( ) fclose ببندیم . برای این منظور باید نام متغیری که در هنگام باز کردن فایل به کار بردیم و محتویات فایل را درون آن ذخیره نمودیم را در پرانتز مقابل تابع ( ) fclose قرار دهیم . شکل کلی استفاده از این متد به صورت زیر است : [TABLE="class: ex"] [TR] [TD="class: prname"] Syntax [/TD] [TD="class: prdes, align: left"] < ? php fclose ( " نام متغیری که فایل باز شده را در آن قرار داده بودیم" ) ; ? > مثال : < ? php $My_File = fopen ( " Example.txt " , " r" ) ; // یک فایل را با این دستور باز کرده ایم .. .. fclose ( $My_File ) ; // فایل باز شده را بسته ایم ? > [/TD] [/TR] [/TABLE] [HR][/HR] چک کردن اینکه به آخر فایل رسیده ایم یا خیر ؟ - متد ( ) feof : تابع ( ) feof ، چک می کند که آیا برنامه به آخر یک فایل رسیده است یا خیر . این تابع برای جستجو و یا خواندن فایل های داده ای با حجم نامشخص استفاده می شود . در این موارد ، برنامه هنگامی که به آخر فایل برسد ، باید جستجو یا عملیات خواندن را متوقف کند . نکته : از این تابع در زمانی که فایل را با حالت های w , a و x باز کرده اید ، نمی توانید استفاده نمایید . شکل کلی استفاده از این متد به صورت زیر است : [TABLE="class: ex"] [TR] [TD="class: prname"] Syntax [/TD] [TD="class: prdes, align: left"] < ? php feof ( نام فایل مورد نظر ) ; ? > [/TD] [/TR] [/TABLE] مثال : در مثال زیر یک اسکریپت طراحی شده است که فایل My_File$ را بررسی کرده و چنانچه برنامه به آخر آن رسیده باشد ، یک پیام صادر می کند : [TABLE="class: ex"] [TR] [TD="class: prname"] Example [/TD] [TD="class: prdes, align: left"] < ? php if ( feof ( $ My_File ) ) echo " End of file " ; ? > [/TD] [/TR] [/TABLE] [HR][/HR] خواندن یک فایل به صورت خط به خط : به وسیله تابع ( ) fgetc در PHP ، می توانید یک فایل متنی را باز کرده و به صورت خط به خط ، بخوانید . سپس در صورت نیاز در خروجی چاپ نمایید . این تابع فایل را به صورت خط به خط خوانده و پس از خواندن یک خط ، اشاره گر به ابتدای خط بعدی منتقل می شود . مثال : اسکریپت مثال زیر یک فایل متنی را به وسیله یک دستور حلقه ، به صورت خط به خط خوانده و سپس در خروجی چاپ می نماید : [TABLE="class: ex"] [TR] [TD="class: prname"] Example [/TD] [TD="class: prdes, align: left"] < ? php $file = fopen( "welcome.txt", "r" ) or exit ( "Unable to open file!" ) ; // حلقه زیر فایل را به صورت خط به خط تا رسیدن به آخر آن می خواند و در خروجی نمایش می دهد while ( !feof ( $file ) ) { echo fgets ( $file ) . "< br />" ; } fclose( $file ) ; ? > [/TD] [/TR] [/TABLE]
پاسخ : آموزش PHP [h=2]آموزش ارسال ایمیل ( Email ) به وسیله PHP[/h] مقدمه : یکی از نیازهای اساسی کاربران در برنامه های تحت وب ، امکان ارسال ایمیل از طریق فرم ها یا صفحات وب است . برای مثال شما در سایت خود قصد دارید تا فرمی طراحی نمایید ، تا کاربران بتوانند نظرات و یا درخواست های خود در فرم مربوطه وارد کرده و سپس اطلاعات آن ها را به وسیله ایمیل برای شما ارسال نمایند . همانند آنچه شما می توانید در فرم های تماس با ما در سایت ما انجام دهید . زبان PHP به صورت کامل از ارسال ایمیل در صفحات وب پشتیبانی می نماید . تابع ( mail ، در PHP وظیفه ارسال ایمیل را بر عهده دارد . در این بخش قصد داریم تا به کمک تابع ( ) mail ، نحوه ارسال ایمیل را در PHP به شما آموزش دهیم . [HR][/HR] تابع ( ) mail : گفتیم که تابع ( ) mail در PHP ، وظیفه ارسال ایمیل را بر عهده دارد . اما این تابع چگونه کار می کند ؟ تابع ( ) mail ، به وسیله پارامترهایی که برای آن تعریف شده است ، آدرس ایمیل گیرنده و فرستنده ، موضوع و متن پیام و سایر خصوصیات یک ایمیل را دریافت کرده و سپس آنها را به مقصد ارسال می کند . شکل کلی استفاده از این تابع به صورت زیر است : [TABLE="class: ex"] [TR] [TD="class: prname"] Syntax [/TD] [TD="class: prdes, align: left"] mail ( to , subject , message , headers ) ; [/TD] [/TR] [/TABLE] همانطور که در ساختار ارائه شده ، مشاهده می نمایید ، تابع ( ) mail ، دارای پارامترهای گوناگونی است که هر کدام یکی از موارد لازم یک ایمیل را دریافت می کنند . در جدول زیر به تشریح هر یک از پارامترهای فوق می پردازیم : [TABLE="class: ex"] [TR] [TD="class: header, colspan: 2"] syntax توضیح هر یک از موارد [/TD] [/TR] [TR] [TD="class: body, align: center"] توضیح [/TD] [TD="class: header"] پارامتر [/TD] [/TR] [TR] [TD="class: body, align: right"] این پارامتر آدرس ایمیل گیرنده یا گیرندگان نامه را دریافت می کند . استفاده از این پارامتر اجباری است . [/TD] [TD="class: header"] to [/TD] [/TR] [TR] [TD="class: body, align: right"] این پارامتر از نوع متن بوده و عنوان نامه را تعیین می نماید . این پارامتر نمی تواند بیش از یک خط باشد . استفاده از این پارامتر اجباری است . [/TD] [TD="class: header"] subject [/TD] [/TR] [TR] [TD="class: body, align: right"] این پارامتر از نوع متن بوده و متن نامه را تعیین می کند . هر خط در این متن باید با یک کاراکتر ( \n ) از خط قبلی و یا بعدی جدا شود . همچنین تعداد کاراکتر هر خط نباید از 70 کاراکتر بیشتر باشد . استفاده از این پارامتر اجباری است . [/TD] [TD="class: header"] massage [/TD] [/TR] [TR] [TD="class: body, align: right"] این پارامتر از نوع متن بوده و تعیین کننده خواصی مثل From و یا CC ( رونوشت ) است . هر خط در این متن باید با یک کاراکتر ( \r\n ) از خط قبلی و یا بعدی جدا شود . استفاده از این پارامتر اختیاری است . [/TD] [TD="class: header"] headers [/TD] [/TR] [/TABLE] پس از اینکه شما را با نحوه کار تابع ( ) mail و پارامترهای آن آشنا کردیم ، در چند مثال نحوه استفاده عملی از این تابع را به شما نشان می دهیم . [HR][/HR] ارسال یک ایمیل ساده به وسیله تابع ( ) mail : مثال 1 : در مثال زیر یک ایمیل ساده را به وسیله تابع ( ) mail ، ارسال کرده ایم . در این مثال هر کدام از خصوصیات ایمیل را به صورت از قبل تعیین شده در یک متغیر ذخیره کرده ایم . سپس متغیر ها را به عنوان پارامتر به تابع ( ) mail ارسال کرده ایم . این تابع نیز ایمیل را ارسال کرده و یک پیام تایید به کاربر نمایش می دهد . توجه داشته باشید که این مثال فقط برای نمایش نحوه عملکرد تابع ( ) mail است و اینگونه ایمیل فرستادن بعید به نظر میاد . در مثال بعدی نحوه ارسال یک ایمیل کامل به وسیله یک فرم HTML را نشان خواهیم داد . [TABLE="class: ex"] [TR] [TD="class: prname"] مثال [/TD] [TD="class: prdes, align: left"] < ? php $to = "someone@example.com"; $subject = "Test mail"; $message = "Hello! This is a simple email message."; $from = "someonelse@example.com"; $headers = "From:" . $from mail ( $to , $subject , $message , $headers ) ; echo "Mail Sent."; ?> [/TD] [/TR] [/TABLE] [HR][/HR] ارسال یک ایمیل به وسیله یک فرم HTML : مثال 2 : در مثال زیر یک فرم HTML برای دریافت نظرات کاربران سایت طراحی کرده ایم . این فرم دارای تعدادی کادر متن است که مقادیر لازم را از کاربر دریافت کرده و سپس آنها را در یک متغیر تعیین شده ، ذخیره می نمایند . سپس این متغیرها را به عنوان پارامتر به تابع ( ) mail ارسال می کنند تا به ایمیل تعیین شده ارسال شوند : [TABLE="class: ex"] [TR] [TD="class: prname"] مثال [/TD] [TD="class: prdes, align: left"] <html> <body> <?php if (isset($_REQUEST['email'])) // دستور بالا در صورتی که کادر ایمیل پر شده باشد ، ایمیل را ارسال می کند { // ارسال ایمیل $email = $_REQUEST['email'] ; $subject = $_REQUEST['subject'] ; $message = $_REQUEST['message'] ; mail ( "someone@example.com" , $subject , $message , "From:" . $email) ; echo "از ارسال ایمیل شما متشکریم"; } else // اگر کادر ایمیل پر نشده باشد ، برنامه فرم زیرا را نمایش می دهد { echo " < form method='post' action='mailform.php' > Email : < input name='email' type='text' /> <br /> Subject : < input name='subject' type='text' /> <br /> Message : <br /> < textarea name='message' rows='15' cols='40' > < /textarea > <br /> < input type='submit' /> < /form >"; } ?> </body> </html> [/TD] [/TR] [/TABLE]
پاسخ : آموزش PHP [h=2]آموزش PHP - ایجاد و استفاده از کوکی ( cookie )[/h] کوکی چیست ؟ کوکی یک قطعه اطلاعات است که سرور بر روی کامپیوتر کاربر ذخیره کرده و در مراجعات کاربر به همان سایت ، از آن اطلاعات برای شناسایی وی استفاده می کند . این اطلاعات معمولا راجع به شناسه کاربری ، رمز عبور ، تنظیمات یک کاربر بر روی سایت و ... می باشد . زمانی که کاربر به وسیله کامپیوتر خود همان سایت را باز می کند ، مرورگر اطلاعات کوکی ها را به سرور ارسال می کند . از کوکی برای بازیابی اطلاعات کاربری و یا سایر تنظیماتی که کاربر در یک سایت ایجاد کرده است ، در مراجعات بعدی به همان سایت استفاده می شود . برای مثال فرض کنید که در یک سایت فروم عضو شده و یک رمز عبور و شناسه کاربری را برای خود تعیین کرده اید . هنگامی که برای اولین بار اطلاعات کاربری خود را در مرورگر وارد می کنید ، این اطلاعات در یک کوکی بر روی مرورگر کامپیوتر شما ذخیره می شود . هنگامی که در مراجعه بعدی به همان سایت می روید ، متوجه می شوید که مرورگر اطلاعات کاربری شما را وارد نموده و شما log in شده اید ، بدون اینکه خودتان کاری انجام داده باشید . در واقع مرورگر از کوکی برای ایجاد ، ذخیره و ارسال مجدد این اطلاعات به سرور استفاده کرده است . مرورگر ها معمولا برای ایجاد و دخیره کوکی ها از کاربر سوال کرده و یا گزینه ای را جهت ایجاد آن قرار می دهند . پس از تایید کاربر اقدام به ایجاد و ذخیره کوکی ها می نمایند . توسط زبان PHP شما به راحتی می توانید کوکی های خود را ایجاد کرده و مجددا آنها را دریافت و ارسال نمایید . در این بخش قصد داریم تا شما را با نحوه ایجاد و خواندن کوکی ها در زیان PHP آشنا نماییم . [HR][/HR] ایجاد کوکی ( cookie ) در PHP : از تابع ( ) setcookie برای ایجاد و ذخیره یک کوکی در زبان PHP استفاده می شود . برای ایجاد یک کوکی تعیین چند چیز مهم است : نام مقدار مدت زمان اعتبار * * نکته : توجه داشته باشید که کوکی ها پس از یک مدت زمان تعیین شده ، اعتبار خود را از دست می دهند و باید دوباره فراخوانی شوند . در این حالت می گوییم ، کوکی expire شده است . برای مثال فرض کنید در یک سایت login کرده اید . سپس کامپیوتر و مرورگر خود را برای مدتی رها می کنید ( مرورگر و صفحه جاری را نمی بندید ) . پس از مراجعه دوباره متوجه می شوید ، که مرورگر شما را logout کرده است و دوباره باید وارد شوید . دلیل این مسئله پایان یافتن مدت زمان اعتبار یک کوکی است . شکل کلی تعریف و ایجاد یک کوکی به وسیله تابع ( ) setcookie در PHP به صورت زیر است : [TABLE="class: ex"] [TR] [TD="class: prname"] Syntax [/TD] [TD="class: prdes, align: left"] < ? php setcookie ( name , value , expire , path , domain ) ; ? > [/TD] [/TR] [/TABLE] [TABLE="class: ex"] [TR] [TD="class: header, colspan: 2"] syntax توضیح هر یک از موارد [/TD] [/TR] [TR] [TD="class: body, align: center"] توضیح [/TD] [TD="class: header"] پارامتر [/TD] [/TR] [TR] [TD="class: body, align: right"] پارامتر name تعیین کننده نام کوکی است . از این نام برای بازیابی و فراخوانی کوکی در سطح برنامه استفاده می شود . [/TD] [TD="class: header"] name [/TD] [/TR] [TR] [TD="class: body, align: right"] پارامتر value مقدار کوکی را تعیین می کند .این مقدار بر روی کامپیوتر ذخیره می شود . [/TD] [TD="class: header"] value [/TD] [/TR] [TR] [TD="class: body, align: right"] پارامتر expire تعیین کننده مدت زمان اعتبار کوکی ، بر حسب ثانیه است . پس از اتمام این مدت زمان ، کوکی از بین خواهد رفت . برای تعیین مدت زمان اعتبار کوکی ، معمولا از تابع ( ) time استفاده می شود . [/TD] [TD="class: header"] expire [/TD] [/TR] [TR] [TD="class: body, align: right"] این پارامتر تعیین کننده مسیری بر روی سرور سایت است که کوکی در آن ، قابل دریافت و ذخیره است . برای مثال اگر مقدار آن برابر با '/' تعیین شود ، در تمام سایت قابل دسترسی است . اما اگر روی مقدار /en/' تنظیم شود ، فقط در دایرکتوری en در سایت قابل دسترسی است . تعیین این پارامتر اختیاری است . [/TD] [TD="class: header"] path [/TD] [/TR] [TR] [TD="class: body, align: right"] پارامتر domain ، دامنه ای که کوکی بر روی آن قابل دسترس است را تعیین می کند . برای مثال اگر مقدار آن 'www.DeveloperStudio.ir' تنظیم شود ، فقط در این دامنه قابل دسترسی است . تعیین این پارامتر اختیاری است . [/TD] [TD="class: header"] domain [/TD] [/TR] [/TABLE] مثال های عملی : در مثال های زیر نحوه ایجاد چند کوکی را با پارامترهای مختلف به شما نمایش داده ایم : مثال 1 :در مثال زیر یک کوکی به نام info با مقدار Mehrdad را ایجاد کرده ایم ، که برای مدت یک ساعت ( 3600 ثانیه ) اعتبار دارد . به کد مثال دقت نمایید : [TABLE="class: ex"] [TR] [TD="class: prname"] Example [/TD] [TD="class: prdes, align: left"] < ? php setcookie ( " info ", " Mehrdad ", time( )+3600 ) ; ? > [/TD] [/TR] [/TABLE] مثال 2 : در مثال دوم یک کوکی دیگر ایجاد کرده ایم ، که برای مدت یک سال اعتبار داشته ، ولی فقط در دامنه آموزش برنامه نويسی - طراحی وب سایت - وبلاگ اعتبار دارد : [TABLE="class: ex"] [TR] [TD="class: prname"] Example [/TD] [TD="class: prdes, align: left"] < ? php $ expire = time( ) + 60 * 60 * 24 * 30 ; setcookie ( " info2 ", " Developer ", $expire , 'www.developerstudio.ir' ) ; ? > [/TD] [/TR] [/TABLE]
پاسخ : آموزش PHP [h=2]آموزش PHP - خواندن و حذف کوکی ( cookie )[/h] خواندن کوکی در PHP : در بخش قبل با نحوه تعریف و ایجاد یک کوکی در صفحات PHP آشنا شدید . در این قسمت می خواهیم نحوه خواندن و سپس حذف یک کوکی ایجاد شده را به شما آموزش دهیم . پس از اینکه یک کوکی در صفحه ایجاد و مقدار دهی شد ، مرورگر باید قادر باشد آن را خوانده و از اطلاعات آن استفاده نماید . توسط متغیر سراسری COOKIE_$ در PHP و به وسیله نام کوکی ، می توان آن کوکی را خوانده و اطلاعات آن را استفاده نمود . شکل کلی خواندن یک کوکی در PHP به صورت زیر است : [TABLE="class: ex"] [TR] [TD="class: prname"] Syntax [/TD] [TD="class: prdes, align: left"] < ? php $_COOKIE ( نام کوکی ) ; ? > Example : خواندن یک کوکی به نام user < ? php $_COOKIE ( user ) ; ? > [/TD] [/TR] [/TABLE] [HR][/HR] خواندن تمام کوکی های یک صفحه : توسط دستور زیر می توان تمام کوکی های موجود در یک صفحه را خوانده و سپس در خروجی نمایش داد : [TABLE="class: ex"] [TR] [TD="class: prname"] Syntax [/TD] [TD="class: prdes, align: left"] < ? php print_r ( $_COOKIE ) ; ? > [/TD] [/TR] [/TABLE] [HR][/HR] حذف یک کوکی : برای حذف یک کوکی از همان دستور setcookie که برای ایجاد آن استفاده کردیم ، استفاده می شود . با این تفاوت که برای حذف یک کوکی باید 2 کار را انجام داد : اول اینکه مقدار خالی به کوکی داده شود . دوم اینکه زمان اعتبار کوکی را به زمانی قبل از زمان جاری برد . برای مثال ، اعتبار آن را به یک ساعت قبل برد . برای مثال در کد زیر یک کوکی ایجاد شده به نام user را با دادن مقدار خالی و بردن اعتبار آن به زمان قبل ، از بین برده ایم : [TABLE="class: ex"] [TR] [TD="class: prname"] Syntax [/TD] [TD="class: prdes, align: left"] < ? php setcookie ( "user" , " " , time( )-3600 ) ; ? > [/TD] [/TR] [/TABLE] [HR][/HR] اگر مرورگر کوکی را پشتیبانی نکرد ، چه کنیم : اگر مرورگر کاربر به گونه ای باشد که از کوکی پشتیبانی نکند ، باید به وسیله فرم ها در PHP اطلاعات را بین صفحات منتقل کرد . استفاده از این روش یک مقدار سختر است . برای دریافت اطلاعات راجع فرم ها به بخش آموزش فرم در PHP بروید . البته این نکته را هم ذکر کنیم که تمام مرورگر های مطرح امروزی از کوکی ها به طور کامل پشتیبانی می کنند .
پاسخ : آموزش PHP [h=2]آموزش PHP -مفهوم و کاربرد Session در PHP[/h] مفهوم session : هنگامی که شما با یک نرم افزار در محیط ویندوز کار می کنید ، آن را باز کرده و تغییراتی درونش ایجاد نموده و سپس آن را می بندید . به این فرایند یک session یا به بیان فارسی ، جلسه می گویند . از ابتدای فرایند تا لحظه ای که آن را به اتمام می رسانید ، ویندوز شما را شناخته و می داند که چه کسی هستید . اما در دنیای وب و اینترنت اوضاع فرق دارد . وب سرور سایتی که در حال بازدید از آن هستید ، نمی داند که شما کی هستید . زیرا آدرس HTTP مرورگر به سرور راجع شما اطلاعاتی نمی دهد . بنابراین تمایز کاربران با یکدیگر غیر ممکن شده و سرور با این وضع برای سرویس دهی به آنها دچار مشکل می شود . بنابراین باید چه کرد ؟ راه حل کجاست ؟ این مشکل در وب و در زبان PHP به وسیله session حل شده است . سرور سایتی که وارد آن می شوید ، اطلاعات شما مثل username , pass را در متغیرهایی به نام session ذخیره می کند . هر بار که صفحه جدیدی از همان سایت را باز می کنید ، سرور اطلاعات session شما را به همراه درخواست صفحه به مرورگر ارسال کرده و بنابراین دیگر نیازی ندارید در هر صفحه اطلاعات کاربری خود را مجددا وارد نمایید . این فرایند را تاکنون بارها تجربه کرده و باعث راحتی شما بوده است . اما session چگونه ایجاد و استفاده می شوند . نحوه تعریف session بر روی سرور : سرور سایت ، در لحظه ورود کاربر به سایت و وارد نمودن اطلاعات کاربری ، یک seesion با یک شناسه خاص ( unique ID - UID ) برای وی ساخته و اطلاعات وی را در آن session ذخیره می کند . این اطلاعات تا زمانی که کاربر در سایت است و یا اعتبار session از بین نرفته ، بر روی سرور ذخیره شده و در مرورگر به صورت کوکی تعریف شده اند . session ها موقتی هستند و پس از اینکه کاربر سایت را ترک کرد و یا مثلا برای مدتی ، صفحه جدیدی باز نکرد ، از بین می روند . بنابراین در مراجعه بعدی ، در صورت فعال نبودن کوکی برای آن سایت ، باید اطلاعات را مجددا وارد نمایید . معمولا عمر session را کوتاه تعریف می کنند تا امنیت اطلاعات کاربر بالا برود . تا حالا حتما به چنین موردی برخورد کرده اید . هنگامی که وارد یک سایت شده و اطلاعات خود را وارد نموده اید ، زمانی که صفحه سایت را در مرورگر به صورت باز رها کرده و پس از مدتی دوباره به سایت برگشته اید ، متوجه شده اید که اطلاعات شما از سرور پاک شده و باید مجددا وارد شوند . در این حالت می گوییم session ، منقضی یا expire شده است . اکنون پس از تعریف مفهوم seesion ، قصد داریم تا شما را با نحوه تعریف و استفاده از session در PHP ، آشنا نماییم . [HR][/HR] نحوه تعریف session در PHP : برای ایجاد session در یک صفحه PHP ، ابتدا باید تابع ( ) session_startup را قبل از تگ < head > در صفحه ، تعریف نمایید . به صورتی که در جدول زیر نمایش داده ایم : این کد session کاربر را در سرور ثبت کرده ، به شما اجازه می دهد که عملیات session را شروع نموده و یک UID برای شما ایجاد می کند . [TABLE="class: ex"] [TR] [TD="class: prname"] Syntax [/TD] [TD="class: prdes, align: left"] < ? php session_start( ) ; ? > < html > < head > < /head > < body > < /body > < /html > [/TD] [/TR] [/TABLE] پس از آماده نمودن مقدمات ، نحوه دستوری مقداردهی و سپس خواندن یک session در PHP را در جدول زیر در قالب یک مثال نمایش داده ایم . این روش روش استاندارد مقدار دهی و خواندن یک session در PHP است . در مثال زیر یک session به نام views ، ابتدا مقدار دهی شده و سپس در درون صفحه بازخوانی شده است : [TABLE="class: ex"] [TR] [TD="class: prname"] مثال [/TD] [TD="class: prdes, align: left"] < ? php session_start( ) ; // را مقدار دهی می کند session کد زیر یک $_SESSION [ 'views' ] = 1 ; ? > < html > < head > < /head > < body > < ?php // را می خواند session کد زیر مقدار echo " Pageviews = " . $_SESSION [ 'views' ] ; ? > < /body > < /html > [/TD] [/TR] [TR] [TD="class: prname"] خروجی مثال [/TD] [TD="class: prdes, align: left"] Pageviews = 1 [/TD] [/TR] [/TABLE] مثال : در مثال دوم کدی طراحی شده است که به وسیله متغیر session به نام views ، تعداد دفعات مشاهده یک صفحه را نمایش می دهد . این دستود ابتدا مقدار این session را بررسی کرده و در صورتی که مقدار دهی نشده باشد ( یعنی کاربر اولین بار وارد صفحه شده است ) ، مقدار آن را برابر با 1 قرار می دهد . اما اگر از قبل مقدار دهی شده باشد ، یعنی کاربر قبلا به صفحه سر زده است . بنابراین یک واحد به مقدار آن اضافه می کند : [TABLE="class: ex"] [TR] [TD="class: header, colspan: 2"] Example [/TD] [/TR] [TR] [TD="class: body"] < ? php session_start( ) ; if ( isset ( $_SESSION [ 'views '] ) ) $_SESSION [ 'views' ] = $_SESSION [ 'views' ] + 1 ; else $_SESSION [ 'views' ] = 1 ; echo "Views = " . $_SESSION [ 'views' ] ; ? > [/TD] [TD="class: header"] کد [/TD] [/TR] [TR] [TD="class: body, align: center"] مشاهده خروجی مثال [/TD] [TD="class: header"] خروجی [/TD] [/TR] [/TABLE]
پاسخ : آموزش PHP [h=2]آموزش PHP - ساخت مستر پیج Master Page تابع های ( ) include و ( ) require[/h] مقدمه : به وسیله تابع های ( ) include و ( ) require ، می توانید محتویات یک صفحه را درون یک صفحه دیگر وارد نمایید . در این حالت سرور PHP ، در هنگام اجرای صفحه ، محتویات صفحه وارد شده را با صفحه اصلی ادغام کرده و به صورت یکجا نمایش می دهد . اما این کار چه فایده ای دارد ؟ با یک مثال توضیح می دهیم . فرض کنید که یک سایت ساده دارید که طراحی هر صفحه آن به صورت زیر است : یک بخش ثابت هدر و یک بخش ثابت منو در سمت راست ، که در تمام صفحات تکرار می شوند . به علاوه یک بخش محتویات صفحه در وسط و سمت چپ صفحه ، که برای هر صفحه دارای محتویات متفاوتی است . تقریبا شبیه طراحی سایت خود ما !! در این حالت شما برای طراحی این سایت 2 راه حل دارید : کد هدر و منو را در هر صفحه با copy و paste کردن و به صورت تکراری در کنار سایر محتویات در هر صفحه قرار دهید . کدر هدر را در یک فایل PHP به نام هدر و کد منو را در یک فایل دیگر PHP به نام منو قرار دهید . همچنین محتویات هر صفحه را در خود آن صفحه قرار دهید . سپس محتویات هدر و منو را با به کار بردن تابع ( ) include و یا ( ) require و اشاره به نام فایل کد آنها ، در درون هر صفحه وارد نمایید . در این حالت سرور PHP در هنگام اجرای هر صفحه ، محتویات فایل های هدر و منو را با محتویات خود صفحه ترکیب کرده و خروجی را تولید می کند . این کار باعث صرفه جویی وقت و انرژی زیادی در هنگام طراحی صفحات وب می شود . زیرا دیگر نیازی ندارید کد بخش های تکراری را در درون هر صفحه قرار داده و فقط با یک دستور ساده ، آنها را فراخوانی می کنید . اما فایده دوم و بسیار مهم تر این ترفند ، که کار شما را برای به روز رسانی سایتتان فوق العاده ساده خواهد کرد . با استفاده از این راهکار هر زمان که بخواهید کد هدر و یا منوی سایت خود که اجزاء تکراری سایت محسوب می شدند ،را تغییر دهید ، به جای اینکه لازم باشد کد آنها را به صورت تک تک در هر صفحه تغییر دهید ، فقط یکبار کد فایل های منو یا هدر را تغییر داده و این تغییر در تمام صحفات سایت اعمال خواهند شد . به این شیوه در PHP و یا در ASP.Net ، ساخت مستر پیچ یا صفحات مادر گفته می شود . از صفحات مادر می توان برای طراحی سریع سایر صفحات استفاده نمود . در یک سایت شما می توانید به تعداد دلخواه و مورد نیاز و برای هر بخش ، یک صفحه مادر مخصوص طراحی نمایید . [HR][/HR] تفاوت تابع های ( ) include و ( ) require : گفتیم که از تابع های ( ) include و یا ( ) require برای ساخت مستر پیچ ها استفاده می شود . اما این دو تابع با هم چه تفاوتی دارند . این دو تابع در هر حالت با هم یکسان هستند ، به جز مورد زیر : اگر در هنگام کار با تابع include مشکلی برای اجرای صفحه پیش آید ، سرور یک پیام هشدار معمولی صادر کرده ، ولی صفحه را لود و اجرا می کند . اما چنانچه برای پردازش صفحه در هنگام کار با تابع ( ) require مشکلی پیش بیاید ، سرور پردازش را متوقف کرده و صفحه دیگر اجرا نمی شود . [HR][/HR] کار با تابع های ( ) include و ( ) require : [TABLE="width: 90%"] [TR] [TD] نحوه کار با تابع ( ) include [/TD] [TD] نحوه کار با تابع ( ) require [/TD] [/TR] [/TABLE]
پاسخ : آموزش PHP [h=2]اعتبار سنجی داده های ورودی در PHP :[/h] مقدمه : اعتبار سنجی داده های ورودی که کاربر یا برنامه در صفحات وب وارد می نمایند ، یکی از مهمترین مسائل در زمینه طراحی صفحات وب امن می باشد . برای روشن شدن مسئله به چند مثال اشاره می کنم . فرض کنید که شما یک فرم ثبت نام در سایت خود ایجاد کرده اید . کاربر در زمان ثبت نام باید یکسری اطلاعات خواسته شده را در فرم وارد نماید . مسلما اطلاعات ورودی باید با شرایط و معیارهای مورد نظر شما ، تطابق داشته باشد . برای مثال نام ورودی کاربر بایستی حداکثر 15 کاراکتر باشد . یا مثلا رمز عبور در دو کادر به صورت یکسان بوده و یا در نهایت باید ایمیلی که توسط وی وارد می شود ،، فرمت یک ایمیل واقعی را داشته باشد و ... . یک طراح وب باید این قابلیت و توانایی را داشته باشد که بتواند داده های ورودی را با معیارهای مورد نظر خود سنجیده و سپس در صورت صحیح بودن آنها ، اطلاعات را به سرور ارسال نماید . به این کار در PHP ، اعتبار سنجی اطلاعات یا فیلتر کردن می گویند . در این بخش قصد داریم تا شما را نحوه انجام این عملیات آشنا سازیم . [HR][/HR] چه اطلاعاتی را باید اعتبار سنجی نمود : کلیه اطلاعاتی که از سوی کاربر یا برنامه به سرور ارسال می شوند ، بایستی اعتبار سنجی شوند . سپس در صورت صحیح بودن مورد استفاده قرار بگیرند . در لیست زیر ، انواع داده های ورودی به یک صفحه وب را بررسی کرده ایم . عموما شما باید این اطلاعات را اعتبار سنجی نمایید : داده های که کاربر در فرم های وب وارد می نماید . کوکی هایی که مرورگر می فرستد . داده های سرویس های وب . نتایج جستجو در پایگاه داده های سرور ( Query Results ) . [HR][/HR] معرفی تابع های اصلی در عملیات اعتبار سنجی در PHP : در لیست زیر چهار تابع اصلی ، در عملیات اعتبار سنجی متغیر ها و کادر های ورود اطلاعات در PHP را به شما معرفی کرده ایم . این تابع ها دارای بیشترین کاربرد در عملیات اعتبار سنجی هستند . در ادامه به توضیح کامل این توابع خواهیم پرداخت : تابع ( ) filter_var : این تابع یک متغیر را با یک فیلتر اعتبار سنج خاص ، اعتبار سنجی می کند . تابع ( ) filter_var_array : این تابع آرایه ای از متغیرها را با یک یا چند فیلتر اعتبار سنج خاص ، اعتبار سنجی می کند . تابع ( ) filter_input-Get : این تابع مقدار یک کادر دریافت داده را با یک فیلتر اعتبار سنج خاص ، اعتبار سنجی می کند . تابع ( ) filter_input_array : این تابع مقدار چندین کادر دریافت داده را با یک یا چند فیلتر اعتبار سنج خاص ، اعتبار سنجی می کند . [HR][/HR] یک مثال ساده و ابتدایی از اعتبار سنجی داده : مثال : در مثال ساده زیر یک عملیات اعتبار سنجی ساده را انجام داده ایم . این مثال برای آشنایی کلی و ابتدایی شما با نحوه اعتبار سنجی داده در PHP است و در بخش های بعد ، مثال های کامل تری را به شما نشان خواهیم داد . در این مثال ابتدا یک متغیر معمولی تعریف شده است . سپس توسط یک دستور با استفاده از تابع "FILTER_VALIDATE_INT" که یکی از تابع های اعتبار سنج پیش فرض در PHP است ، این مسئله بررسی شده است که آیا متغیر تعریف شده ، عدد است یا خیر . در صورت عدد بودن آن عبارت "Integer is valid" و در صورت عدد نبودن آن عبارت "Integer is not valid" در خروجی چاپ خواهد شد : [TABLE="class: ex"] [TR] [TD="class: prname"] مثال [/TD] [TD="class: prdes, align: left"] < ? php $int = 123; if ( filter_var ( $int , FILTER_VALIDATE_INT ) ) { echo ( " Integer is not valid " ) ; } else { echo ( " Integer is valid " ) ; } ?> [/TD] [/TR] [/TABLE] [HR][/HR] [HR][/HR]