مفهوم session در php

computer127

عضو جدید
سلام دوستان.
می خواستم بدونم session به چه معنی هست؟ و توی php چه کاربردی داره؟
لطفا راهنمایی کنیید؟
 

Sharif_

مدیر بازنشسته
به صورت خلاصه اگر بخوام اشاره کنم همان کوکی هستند اما ذخیره شده در سرور
نحوه کار هم به این شکل هست که وقتی فردی برای اولین بار از یک سایت دیدن میکنه PHP یک جلسه با یک شناسه منحصر به فرد به صورت هش شده در سرور ایجاد میکنه
و اطلاعات مورد نیاز برای مراحل بعدی رو در داخل همین جلسه نگه داری میکنه
این شناسه ایجاد شده توسط یک کوکی به نام PHPSESSID به مرورگر فرستاده میشه و در سیستم مشتری ذخیره میشه و در بار دوم که فرد از سایت دیدن میکنه کوکی به سرور ارسال میشه و اطلاعات در جلسه خوانده میشه
کاربرد هم خیلی زیاد هست
یکی نمونه بارز اینجاست که وقتی شما در صفحه Login وارد میشد تا اخرین لحظه که مرورگر باز هست شما رو در تمامی صفحات می شناسه و در هر Page نیاز به ورود مجدد نیست
 

computer127

عضو جدید
ممنون از توضیحاتتون.
یعنی حتما لازم نیست عضو سایت باشیم تا بشه با session اطلاعات کسی و خوند؟
یه چیز دیگه اینکه این اطلاعات تا چقدر در سرور میمونه؟ یعنی بعد از اینکه logout کردم دیگه این اطلاعات حذف میشن؟؟
 

Sharif_

مدیر بازنشسته
اصلا بحث عضو شدن نیست
شما session id رو از طریق مرورگر ارسال میکنید که به صورت کوکی در سیستمتون ذخیره شده
سرور از با استفاده از id شما جلسه رو می خونه
به این شکل هم نیست که هرکسی خواست یه id بفرسته و دست در اطلاعات دیگران ببره
در جاهایی که امنیت داده مهم هست id هم راه با ip و نام کاربری شخص ترکیب و سپس hash میشه
درمورد تاریخ انقضا هم مثل کوکی هست یه پیش فرضی داره که در فایل php.ini سرور تعریف شده(پیشفرض 180 دقیقه) ولی برنامه نویس هم می تونه حین کد نویسی تغییرش بده
به طور مثال با تابع session_set_cookie_params پارامتر های جلسه رو مقدار میدی که به صورت چند ریختی هست و تک ریختی تابع عمر جلسه به ثانیه هست با این تابع حتی می تونی مسیر و دامنه و چند مورد دیگه جلسه رو Set کنی
و توسط تابع session_get_cookie_params یک ارایه پس میگیری که خانه اولش عمر جلسه تنظیم شده ات است.
اگر هم بخوای مثل در log out کردن جلسه تخریب بشه از تابع session_destroy استفاده میکنی
برای خود جلسه خیلی توابع تعریف شده می تونی از خود سایت php.com لیست و کاربردشون رو بگیری
 
آخرین ویرایش:

me.fatima

عضو جدید
کاربر ممتاز
سلام

session رو باید چه جوری ایجاد کرد؟
فرض کنید یه سایت داریم که این صفحات رو داره :
login.php
checkpass.php
main.php
changepassword.php
savepassword

الان می خواهیم یه متغیر session ایجاد کنیم برای ذخیره user name...

یعنی :

PHP:
<?php

               session_start();
        
        $_session["mys"]=$_POST["tname"];

?>

الان این کد درسته ؟
و بعد چنین کدی رو تو کدوم صفحه باید قرار داد ؟
( tname اسم نام کاربری هست که کاربر در صفحه login وارد میکنه )
 

hoseng

کاربر بیش فعال
سلام

session رو باید چه جوری ایجاد کرد؟
فرض کنید یه سایت داریم که این صفحات رو داره :
login.php
checkpass.php
main.php
changepassword.php
savepassword

الان می خواهیم یه متغیر session ایجاد کنیم برای ذخیره user name...

یعنی :

PHP:
<?php

               session_start();
        
        $_session["mys"]=$_POST["tname"];

?>

الان این کد درسته ؟
و بعد چنین کدی رو تو کدوم صفحه باید قرار داد ؟
( tname اسم نام کاربری هست که کاربر در صفحه login وارد میکنه )
سلام آره این کد درست هست اما چند تا نکته وجود داره
یکی اینکه عبارت Session_Start() باید قبل از html نوشته بشه
دوم شما این کد رو باید بعد از صفحه login یعنی جایی که یوزر پسورد درسته و شخص وارد سایت میشه جای بدین
و در آخر در صفحاتی که لازمه کاربر عضو باشه از این Session که قبلا Set شده استفاده میشه
 

me.fatima

عضو جدید
کاربر ممتاز
سلام آره این کد درست هست اما چند تا نکته وجود داره
یکی اینکه عبارت Session_Start() باید قبل از html نوشته بشه
دوم شما این کد رو باید بعد از صفحه login یعنی جایی که یوزر پسورد درسته و شخص وارد سایت میشه جای بدین
و در آخر در صفحاتی که لازمه کاربر عضو باشه از این Session که قبلا Set شده استفاده میشه

سلام

ممنون از جوابتون .

الان برنامه م اجرا شد. من کد رو قبل html مینوشتم . تو صفحه ی checkpass.php هم قرار داده بودم.
ولی تو صفحات بعد که میخواست username رو چک کنه نمیشناخت ..
که دلیلش هم این بود که $_SESSION رو با حروف کوچیک می نوشتم ..

ولی چون از اول به کدم شک داشتم فکر میکردم که کد مشکل داره ...

در هر صورت ممنون از اینکه راهنمایی کردید .:gol:
 

rezasprit

عضو جدید
salam
ba tevajoh be inke ba har bar refresh shodan safehat web tamam variable ha dobare taarif va meghdar dehi mishan
va ettelaate ghabli variable ha az bein miran ;
barye inke betavan variable ro taarif va ta payan az an estefade nemood , an ra be soorate SESSION taarif mikonim
SESSION dar hafeze server mimone ke mitoonan har zaman az oon estefade konan
.......
 
Similar threads

Similar threads

بالا