با سلام خدمت کاربران گرامی سایت پی وی لرن و کاربرانی که دوره آموزش codeigniter را دنبال می کنند. در جلسه قبل مطالبی راجع به اعتبار سنجی فرم در codeigniter آموختیم، در این جلسه با مدیریت جلسات در codeigniter آشنا خواهیم شد. وقتی وب سایتی را می سازیم، اغلب نیاز است که فعالیت های کاربران و یا حالت کاربری را پیگیری و بررسی نماییم؛برای این منظور لازم است که از (session) یا مدیریت جلسات درcodeigniter استفاد نماییم در واقع دلیل ارائه مدیریت جلسات، توسط این فریم ورک نیز همین است.
داده های جلسات یا (Sessions data)، از طریق وب سایت در سرتاسر جهان قابل دسترسی است؛ اما برای استفاده از این داده باید اول اقدام به نصب جلسات (sessions) نماییم. می توان این کار را با اجرای خط زیر در constructor انجام داد:
1 | $this->load->library('session'); |
بعد از بارگذاری کتابخانه جلسات (session library)، می توانید به سادگی همان طور که در زیر می بیند از session object استفاده کنید.
1 | $this->session |
در PHP، برای افزودن داده های جلسات، همان طور که در زیر آمده، تنها کاری که لازم است انجام دهید استفاده از $_SESSION برای تنظیم هر گونه داده در جلسه (session) است.
1 | $_SESSION[‘key’] = value; |
جایی که مقدار ‘key’ آمده است، این مقدار، مقدار کلیدی array و با مقدار تعیین شده در سمت راست برابر است.
در خط زیر می بینید که می توان دقیقاً همین کار را در codeigniter نیز انجام داد.
1 | $this->session->set_userdata('some_name', 'some_value'); |
کارکرد set_userdata() شامل دو استدلال (arguments) است. اولین (arguments) را some_name تشکیل می دهد که نام متغیر جلسه است و تحت عنوان some_value ذخیره می شود.
کارکرد set_userdata() از ساختار دیگری نیز برخوردار است که همانند تصویر زیر، می توان به وسیله آن از array برای ذخیره مقادیر استفاده کرد.
1 2 3 4 5 6 7 | $newdata = array( 'username' => 'johndoe', 'email' => 'johndoe@some-site.com', 'logged_in' => TRUE ); $this->session->set_userdata($newdata); |
در PHP می توان همانند خط زیر، برای حذف جلسات از کارکرد unset() استفاده کرد.
1 | unset($_SESSION[‘some_name’]); |
همان طور که در خط زیر می بینید، حذف داده های جلسات در codeigniter ، بسیار ساده است.
نسخه ارائه شده unset_userdata() زیر می تواند تنها یک متغیر را از session حذف نماید.
1 | $this->session->unset_userdata('some_name'); |
اگر می خواهید که متغیرهای بیشتری را از session حذف کنید، می توانید از نسخه کارکرد unset_userdata() زیر استفاده نمایید:
1 | $this->session->unset_userdata($array_items); |
بعد از تنظیم داده ها در جلسات، می توانیم داده ها همان طور، که در زیر نشان داده شده است بازیابی کنیم.
برای این منظور از کارکرد Userdata () استفاده می شود. اگر داده های مورد نظر شما قابل دسترسی نباشند این کارکرد NULL را برخواهد گرداند.
1 | $name = $this->session->userdata('name'); |
یک کلاس کنترل کننده با عنوان Session_controller.php بسازید و در application/controller/Session_controller.php ذخیره کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <?php class Session_controller extends CI_Controller { public function index() { //loading session library $this->load->library('session'); //adding data to session $this->session->set_userdata('name','virat'); $this->load->view('session_view'); } public function unset_session_data() { //loading session library $this->load->library('session'); //removing session data $this->session->unset_userdata('name'); $this->load->view('session_view'); } } ?> |
یک فایل نمایش با عنوان session_view.php بسازید و در application/views/session_view.php ذخیره کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <!DOCTYPE html> <html lang = "en"> <head> <meta charset = "utf-8"> <title>CodeIgniter Session Example</title> </head> <body> Welcome <?php echo $this->session->userdata('name'); ?> <br> <a href = 'http://localhost:85/CodeIgniter-3.0.1/CodeIgniter3.0.1/index.php/sessionex/unset'> Click Here</a> to unset session data. </body> </html> |
این تغییرات را در فایل routes.php در application/config/routes.php ایجاد کنید و خط زیر را به انتهای فایل اضافه نمایید.
1 | application/config/routes.php |
با استفاده از آدرس زیر، مثال بالا را اجرا کنید. yoursite.com را با URL سایت خود جایگزین کنید.
http://yoursite.com/index.php/sessionex
در این جلسه از جلسات آموزشی codeigniter شما را با مدیریت جلسات در codeigniter آشنا نمودیم. در جلسه بعد قرار است با Flashdata در codeigniter و ویژگی ها و کاربرد های آن آشنا شویم.
با پی وی لرن همراه باشید.