جلسه ها (session) ، در PHP
با استفاده از جلسه ها (session) در PHP ، می توانیم یک سری اطلاعات را به صورت قابل دسترس در صفحات دلخواه PHP در بیاوریم. یعنی شما مثلا یک متغیر و یک مقدار را با استفاده از جلسه ها (session) در یک صفحه PHP ، تعریف می کنید، آنگاه آن متغیر و مقدار آن، می تواند در تمامی صفحات دیگر که بخواهیم، مورد استفاده قرار بگیرد. ما قبلا روش های ارسال اطلاعاتی مثل روش POST ، روش GET و استفاده از کوکی ها (cookie) ها را توضیح دادیم، بد نیست که شرح بدهیم که جلسه ها، چه قابلیت هایی فراتر از آن روش ها دارند. در دو روش GET و POST ، تفاوت کاملا آشکار است. ما در این دو روش، باید صفحه مقصد که اطلاعات را دریافت می کند را مشخص کنیم، اما در مورد جلسه ها (session)، نیازی به تعیین صفحه دریافت کننده اطلاعات نیست و هر صفحه ای که بخواهیم را می توانیم به طور مناسب برای دریافت اطلاعات جلسه ها (session)، طراحی کنیم. اما تفاوت جلسه ها (session) با کوکی ها (cookie)، مهم است. همان طور که می دانید، با کوکی ها می توانیم یک سری اطلاعات را در کامپیوتر کاربر ذخیره کنیم تا توسط صفحات مختلف سایت، مورد استفاده قرار گیرد، اما کوکی ها یک مشکل بزرگ دارند و آن این است که کاربر می تواند آنها را در مرورگر اینترنت خود بیابد و حتی با روش هایی، آنها را تغییر بدهد. حتی امکان دارد که کامپیوتر کاربر، به دست شخص دیگری بیفتد و اطلاعاتی که نباید دیگران ببینند، در دسترس آن شخص قرار بگیرد. بنابراین ذخیره کردن اطلاعات مهم کاربر و سایت، در کوکی ها، اصلا امن نیست. راه حل این مشکل، استفاده از جلسه ها (session) می باشد که روشی امن تر برای ذخیره اطلاعات، برای دستیابی صفحات مختلف سایت به آن اطلاعات، می باشد.
دلیل امن بودن استفاده از جلسه ها (session) در PHP این است که اطلاعات جلسه ها، بر روی سرور حاوی سایت ذخیره می شود (بر خلاف کوکی که اطلاعات ذخیره شده در آن، بر روی کامپیوتر کاربر قرار می گیرد). همچنین، برای اینکه PHP تشخیص بدهد که کدام جلسه مربوط به کاربر فعلی است، یک id را در کامپیوتر کاربر، ذخیره می کند. بنابراین اگر در صفحه ای از جلسه ها استفاده کرده باشیم، ابتدا PHP ، به دنبال id در کامپیوتر کاربر می گردد و پس از یافتن آن، جلسه مربوط به آن، که بر روی سرور قرار گرفته است را پیدا می کند تا از آن استفاده کند. از بابت id ها نباید نگران بود زیرا طولانی و پیچیده می باشند و این روش، روشی امن است.
برای استفاده از جلسه ها (برای ساخت مقادیر جدید یا استفاده از مقدارهایی که قبلا ذخیره کرده ایم)، باید ابتدا تابع session_start را در فایل PHP بنویسیم. نکته بسیار مهمی که در این زمینه وجود دارد، این است که کد مربوط به تابع session_start را باید حتما در ابتدایی ترین خط ها از کدهای صفحه PHP بنویسیم. مثلا می توانید، در ابتدای فایل PHP ، کدهای زیر را بنویسید و سپس کدهای HTML و PHP صفحه را پس از آن قرار دهید :
اکنون با یک مثال شرح می دهیم که چگونه می توان یک متغیر و مقدار مربوط به آن را در یک جلسه (session) ذخیره کرده و سپس توسط یک صفحه دیگر، آن متغیر و مقدارش را بخوانیم. کدهای صفحه اول را به صورت زیر می نویسیم :
صفحه بالا را اجرا می کنیم (اجرای صفحه در مرورگر اینترنت). با اجرای این صفحه، متغیر مورد نظر، در متغیر فوق سراسری (superglobal) با نام $_SESSION قرار می گیرد و بنابراین از سایر صفحات، می توانیم به آن دسترسی داشته باشیم.
صفحه فوق را در مرورگر می بندیم، سپس صفحه ای دیگر که دارای کدهای زیر است را اجرا می کنیم :
با اجرای صفحه فوق، خروجی به صورت زیر است :
نتیجه :
بنابراین توانستیم توسط جلسه ها (session) در PHP ، مقدار مربوط به یک متغیر را به گونه ای ذخیره کنیم که در صفحات مختلف، در دسترس باشد.
دمت گرم
به این صورت که شما توضیح دادید
اگه یه بچه 12 ساله هم اینا رو بخونه برنامه نویس میشه
برو نویسنده شو
نخند
بی شوخی میگم
با سلام
خیلی خوب بود
سلام.
من یه سوال داشتم در مورد session . در مبحث وب از session استفاده میشه ولی تو نرم افزار موبایلی چیکار میشه کرد؟
من با فلاتر کار میکنم و از روش http و api اطلاعات با php میفرستم سمت سرور و برعکس.
الان مشکلی که دارم قسمت لاگین شدن کاربر هستش که هر کاربر وارد صفحه خودش بشه ولی کلا یا همه کاربرا دریافت میکنم یا اخرین کاربر.
واسه اینکه هر کاربر بتونه لاگین کنه دیتابیس یه id بهش میده ولی چطوری این ایدی میشه دریافت کرد که فقط مخصوص همین کاربر باشه؟