feign3
asked on
Session Vars not working after server migration
I just moved my site to a Linux VPS and am having an issue with Session variables. Session vars are not getting passed from page to page. I used the following simple test to check the setup:
FIRST PAGE:
<?php session_start();
$_SESSION['userid'] = "foo";
print "Session id is: " . session_id() . $_SESSION['userid'];
print "<a href=secondpage.php'> go to next page </a>";
?>
SECOND PAGE:
<?php session_start();
print "Welcome" . $_SESSION['userid'] . "<br />";
print "You have got to page 2 with these information stored in the session: " . $_SESSION['userid'] . " and your session is still: " ;
echo session_id();
?>
When testing this, I get a different Session ID on the second page and no 'userid' printed.
I have made several changes to my php.ini file including:
1. enabled register_globals
2. set session.save_path and confirmed the path exists and is writable
Here is my php.ini Session info:
Session Support enabled
Registered save handlers files user mm
Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 100 100
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /home/mydomain/tmp/session _files /home/mydomain/tmp/session _files
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid Off Off
I'm not sure what else I could be missing.
FIRST PAGE:
<?php session_start();
$_SESSION['userid'] = "foo";
print "Session id is: " . session_id() . $_SESSION['userid'];
print "<a href=secondpage.php'> go to next page </a>";
?>
SECOND PAGE:
<?php session_start();
print "Welcome" . $_SESSION['userid'] . "<br />";
print "You have got to page 2 with these information stored in the session: " . $_SESSION['userid'] . " and your session is still: " ;
echo session_id();
?>
When testing this, I get a different Session ID on the second page and no 'userid' printed.
I have made several changes to my php.ini file including:
1. enabled register_globals
2. set session.save_path and confirmed the path exists and is writable
Here is my php.ini Session info:
Session Support enabled
Registered save handlers files user mm
Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 On On
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 100 100
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /home/mydomain/tmp/session
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid Off Off
I'm not sure what else I could be missing.
Have you checked whether session files are saved (and have proper chmods) in session.save_path ? (in your cfg it is /home/mydomain/tmp/session _files )
ASKER
Yes, session files are being created properly. I was able to open and read both of them (one was created for each page). I replaced my actual domain name in the text above with mydomain for privacy.
ASKER
Found the problem.
My link to the second page was going to http://domainname.com/secondpage.php while the originating page had the www prefix to the domain. The cookie domains did not match - thus the problem.
My link to the second page was going to http://domainname.com/secondpage.php while the originating page had the www prefix to the domain. The cookie domains did not match - thus the problem.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.