MySIte immediately getting logged out for 2nd request

拟墨画扇 提交于 2019-12-12 02:45:38

问题


I am new to php. I am facing problem with sessions. I mean, after I get logged in and I click on any link in the website , its immediately getting logged out. Not sure why.

In chrome console: I entered as : document.cookie , it showing me "", then I got to understand that cookie is somehow getting deleted immediately or some other issue.

This problem exists for below 2 websites.

We have a websites like :

www.mysite.site1.com/folder1
www.mysite.site2.com/folder2

Below is my code of MySite.com/folder1

   function MySession() {
      $params = session_get_cookie_params();
      session_set_cookie_params($params['lifetime'], '/v/folder1');
      session_start();
   }

   function clear()
   {
      $_SESSION=array();
      session_destroy();
   }

Below is my code of MySite.com/folder2

 function MySession() {
      $params = session_get_cookie_params();
      session_set_cookie_params($params['lifetime'], '/v/folder2');
      session_start();
   }

   function clear()
   {
      $_SESSION=array();
      session_destroy();
   }

回答1:


Setting the domain for cookies in session_set_cookie_params() only affects the domain used for the session cookie .

So to make all your cookies be available across all sub-domains of your site you need to set your cookies on root domain.

when setting the path that the cookie is valid for, always remember to have that trailing '/'.

CORRECT:

session_set_cookie_params (0, '/yourpath/');

INCORRECT:

session_set_cookie_params (0, '/yourpath');



回答2:


mysite.site1.com is your base url.

when you switched from www.mysite.site1.com/folder1 to www.mysite.site2.com/folder2

you'll surely be logged out.




回答3:


Well, I am able to find out answer for my query:

since in my case I have 2 folders ie., www.mysite.com/folder1 && www.mysite.com/folder2 , then we MUST keep session_name('folder1') for 'folder1' and session_name('folder2') for 'folder2' , otherwise both folders share the same session ID and so user gets logged in automatically in folder2 (assuming if he already got loggedin folder1)

 function Session() {
      session_name('FOLDER_SID');
      session_start();
   }

Regarding more info about session_name, here: http://stackoverflow.com/a/7551430/4956785



来源:https://stackoverflow.com/questions/32345780/mysite-immediately-getting-logged-out-for-2nd-request

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!