عنوان مقاله : یادگیری php : جلسات (Sessions)

یادگیری php : جلسات (Sessions)

یادگیری php : جلسات (Sessions)

 

 

یادگیری php : جلسات (Sessions)

 

 

یادگیری php : جلسات (Sessions)…

یک راه جایگزین برای ایجاد دسترسی به داده ها در صفحات مختلف در کل وب سایت، استفاده از جلسه PHP است.

یک جلسه یک فایل را در یک پوشه موقت در سرور ایجاد می کند که متغیرهای جلسه ثبت شده و مقادیر آنها ذخیره می شوند. این اطلاعات در طول این بازدید برای همه صفحات سایت در دسترس خواهد بود.
محل فایل موقت توسط  تنظیمات در فایل php.ini به نام session.save_path تعیین می شود. قبل از استفاده از هر متغیر session اطمینان حاصل کنید که این مسیر را راه اندازی کرده اید.

پس از شروع یک جلسه، این اتفاقات رخ می دهد:

ابتدا PHP یک شناسه ی منحصر به فرد برای آن جلسه خاص ایجاد می کند که یک رشته تصادفی از ۳۲ عدد هگزادسیمال مانند ۳c7foj34c3jj973hjkop2fc937e3443 است.

یک کوکی به نام PHPSESSID به صورت خودکار به رایانه کاربر ارسال می شود تا یک رشته شناسایی جلسه منحصر به فرد را ذخیره کند.

یک فایل به طور خودکار بر روی سرور در دایرکتوری موقت تعیین شده ایجاد می شود و نام شناسه منحصر به فرد را با پیشوند sess_ یعنی sess_3c7foj34c3jj973hjkop2fc937e3443 نامگذاری می کند.

هنگامی که یک اسکریپت PHP می خواهد ارزش یا value را از یک متغیر session بازیابی کند، PHP به طور خودکار رشته شناسه مصاحبه را از کوکی PHPSESSID می گیرد و سپس در دایرکتوری موقت خود با فایل حاوی این نام ظاهر می شود و با مقایسه دو مقدار می توان اعتبار سنجی را انجام داد.
یک جلسه زمانی به پایان می رسد که کاربر مرورگر را از دست می دهد یا از سایت خارج می شود، سرور پس از یک دوره از زمان تعیین شده، معمولا ۳۰ دقیقه طول می کشد.

 

شروع یک جلسه پی اچ پی

یک جلسه PHP به راحتی با برقراری یک تماس به session_start () آغاز می شود. این تابع ابتدا بررسی می کند که آیا یک جلسه در حال آغاز است و اگر هیچ کدام شروع نشده باشد، شروع می شود. توصیه می شود برای تماس session_start () را در ابتدای صفحه قرار دهید.

متغیرهای جلسه در آرایه associative به نام $ _SESSION [] ذخیره می شوند. این متغیرها را می توان در طول عمر یک جلسه مشاهده کرد.

مثال زیر یک جلسه را شروع می کند و سپس یک متغیر به نام counter می دهد که هر بار که صفحه در طول جلسه بازدید می شود، افزایش می یابد.

از تابع isset () برای بررسی اینکه آیا متغیر جلسه در حال حاضر تنظیم شده است یا نه، استفاده کنید.

این کد را در یک فایل test.php قرار دهید و برای دیدن نتیجه چندین بار بارگذاری یا لود کنید:

که نتایج زیر را تولید می کند:

 

از بین بردن یک جلسه پی اچ پی

یک session PHP می تواند توسط session_destroy () انجام شود. این تابع نیازی به هیچ استدلالی ندارد و یک تماس تنها می تواند تمام متغیرهای جلسه را از بین ببرد. اگر میخواهید یک متغیر session را از بین ببرید، میتوانید از تابع unset () برای تنظیم یک متغیر session استفاده کنید.

مثال زیر برای unset کردن یک متغیر است:

در اینجا تماس است که تمام متغیرهای جلسه را از بین می برد :

 

 

روشن کردن خودکار جلسه

اگر شما می توانید متغیر session.auto_start را به ۱ در فایل php.ini تنظیم کنید، نیازی به تماس با start_session () برای شروع یک جلسه زمانی که یک کاربر به سایت شما می آید نخواهید داشت.

جلسات بدون کوکی

ممکن است یک مورد وجود داشته باشد که کاربر اجازه ذخیره کوکی ها را در دستگاه خود نمی دهد. بنابراین روش دیگری برای ارسال session ID به مرورگر وجود دارد.

متناوبا، شما می توانید از SID ثابت استفاده کنید که در صورت شروع جلسه تعریف شده است. اگر مشتری یک cookie session مناسب ارسال نکند، آن را به فرم session_name = session_id ارسال می کند. در غیر این صورت، آن را به یک رشته خالی گسترش می دهد. بنابراین، شما می توانید آن را  بدون قید و شرط به URL ها بنشانید.

مثال زیر نشان می دهد که چگونه یک متغیر را ثبت و نحوه صحیح پیوند به صفحه دیگری با استفاده از SID را بسازید.

که نتایج زیر را تولید می کند:


 

htmlspecialchars () ممکن است هنگام چاپ SID برای جلوگیری از حملات مربوط به XSS استفاده شود.

گرافیست آشنا به وب ، علاقه مند به تولید محتوا ، مسلط به زبان انگلیسی

پیوستن

مقاله های مرتبط :

دیدگاه خود را بیان کنید :

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *