آموزش PHP -مفهوم و کاربرد Session در PHP
مفهوم session :
هنگامی که شما با یک نرم افزار در محیط ویندوز کار می کنید ، آن را باز کرده و تغییراتی
درونش ایجاد نموده و سپس آن را می بندید . به این فرایند یک session یا به بیان فارسی
، جلسه می گویند .
از ابتدای فرایند تا لحظه ای که آن را به اتمام می رسانید ، ویندوز شما را شناخته و
می داند که چه کسی هستید .
اما در دنیای وب و اینترنت اوضاع فرق دارد . وب سرور سایتی که در حال بازدید از آن
هستید ، نمی داند که شما کی هستید . زیرا آدرس HTTP مرورگر به سرور راجع شما اطلاعاتی
نمی دهد . بنابراین تمایز کاربران با یکدیگر غیر ممکن شده و سرور با این وضع برای سرویس
دهی به آنها دچار مشکل می شود . بنابراین باید چه کرد ؟ راه حل کجاست ؟
این مشکل در وب و در زبان PHP به وسیله session حل شده است .
سرور سایتی که وارد آن می شوید ، اطلاعات شما مثل username , pass را در متغیرهایی
به نام session ذخیره می کند . هر بار که صفحه جدیدی از همان سایت را باز می کنید ،
سرور اطلاعات session شما را به همراه درخواست صفحه به مرورگر ارسال کرده و بنابراین
دیگر نیازی ندارید در هر صفحه اطلاعات کاربری خود را مجددا وارد نمایید .
این فرایند را تاکنون بارها تجربه کرده و باعث راحتی شما بوده است . اما session چگونه
ایجاد و استفاده می شوند .
نحوه تعریف session بر روی سرور :
سرور سایت ، در لحظه ورود کاربر به سایت و وارد نمودن اطلاعات کاربری ، یک seesion
با یک شناسه خاص ( unique ID - UID ) برای وی ساخته و اطلاعات وی را در آن session
ذخیره می کند . این اطلاعات تا زمانی که کاربر در سایت است و یا اعتبار session از
بین نرفته ، بر روی سرور ذخیره شده و در مرورگر به صورت
کوکی تعریف شده اند .
session ها موقتی هستند و پس از اینکه کاربر سایت را ترک کرد و یا مثلا برای مدتی ،
صفحه جدیدی باز نکرد ، از بین می روند . بنابراین در مراجعه بعدی ، در صورت فعال نبودن
کوکی برای آن سایت ، باید اطلاعات را مجددا وارد نمایید .
معمولا عمر session را کوتاه تعریف می کنند تا امنیت اطلاعات کاربر بالا برود . تا
حالا حتما به چنین موردی برخورد کرده اید . هنگامی که وارد یک سایت شده و اطلاعات خود
را وارد نموده اید ، زمانی که صفحه سایت را در مرورگر به صورت باز رها کرده و پس از
مدتی دوباره به سایت برگشته اید ، متوجه شده اید که اطلاعات شما از سرور پاک شده و
باید مجددا وارد شوند . در این حالت می گوییم session ، منقضی یا expire شده است .
اکنون پس از تعریف مفهوم seesion ، قصد داریم تا شما را با نحوه تعریف و استفاده از
session در PHP ، آشنا نماییم .
نحوه تعریف session در PHP :
برای ایجاد session در یک صفحه PHP ، ابتدا باید تابع ( ) session_startup را قبل از
تگ < head >
در صفحه ، تعریف نمایید . به صورتی که در جدول زیر نمایش داده ایم :
این کد session کاربر را در سرور ثبت کرده ، به شما اجازه می دهد که عملیات session
را شروع نموده و یک UID برای شما ایجاد می کند .
|
Syntax
|
< ? php session_start( ) ; ?
>
< html >
< head >
< /head >
< body >
< /body >
< /html >
|
پس از آماده نمودن مقدمات ، نحوه دستوری مقداردهی و سپس خواندن یک session در PHP را
در جدول زیر در قالب یک مثال نمایش داده ایم . این روش روش استاندارد مقدار دهی و خواندن
یک session در PHP است .
در مثال زیر یک session به نام views ، ابتدا مقدار دهی شده و سپس در درون صفحه بازخوانی
شده است :
|
مثال
|
< ? php
session_start( ) ;
// را مقدار دهی می کند session کد زیر یک
$_SESSION [ 'views' ] = 1 ;
? >
< html >
< head >
< /head >
< body >
< ?php
// را می خواند session کد زیر مقدار
echo " Pageviews = " . $_SESSION [ 'views' ] ;
? >
< /body >
< /html >
|
|
خروجی مثال
|
Pageviews = 1
|
مثال : در مثال دوم کدی طراحی شده است که به وسیله متغیر session
به نام views ، تعداد دفعات مشاهده یک صفحه را نمایش می دهد . این دستود ابتدا مقدار
این session را بررسی کرده و در صورتی که مقدار دهی نشده باشد ( یعنی کاربر اولین بار
وارد صفحه شده است ) ، مقدار آن را برابر با 1 قرار می دهد . اما اگر از قبل مقدار
دهی شده باشد ، یعنی کاربر قبلا به صفحه سر زده است . بنابراین یک واحد به مقدار آن
اضافه می کند :
< ? php
session_start( ) ;
if ( isset ( $_SESSION [ 'views '] ) )
$_SESSION [ 'views' ] = $_SESSION [ 'views' ] + 1 ;
else
$_SESSION [ 'views' ] = 1 ;
echo "Views = " . $_SESSION [ 'views' ] ;
? >
|
|
مشاهده خروجی مثال
|
راجع این مطلب
سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...
>>>>> ورود به انجمن تخصصی
نطر خودتان درباره این صفحه :