This is a discussion on Sessions not working in Yahoo Small business within the PHP Language forums, part of the PHP Programming Forums category; Hi, I developed web app using Php and used sessions. Everything works on my test server but sessions just dont ...
|
|||||||
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
|
|||
|
Hi,
I developed web app using Php and used sessions. Everything works on my test server but sessions just dont work on the clients server which uses Yahoo Small Business to host their site. For example: <?php session_start(); if (!$_SESSION['count']) { echo "Not registered<BR>"; $_SESSION['count'] = 1; $count = 1; } else { $count = $_SESSION['count']++; } echo "count is '$count'"; ?> Always shows count as 1. The yahoo site uses PHP Version 4.3.6. The only difference relevant I can see in the two sites is session.use_trans_sid which is off on Yahoo. Enabling this with ini_set didnt help. Saving session information in the DB using custome session handlers didnt help either. Any ideas as to why this may be happenning? Thanks in advance! Other relevant php info is pasted below: Session Support enabled Registered save handlers files user 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 /tmp /tmp session.serialize_handler php php session.use_cookies On On session.use_only_cookies Off Off session.use_trans_sid Off Off |
|
|||
|
phpvial wrote:
> > I developed web app using Php and used sessions. Everything > works on my test server but sessions just dont work on the > clients server which uses Yahoo Small Business to host their > site. I have a site hosted there. Sessions work correctly. > For example: > <?php > session_start(); > if (!$_SESSION['count']) { > echo "Not registered<BR>"; > $_SESSION['count'] = 1; > $count = 1; > } else { > $count = $_SESSION['count']++; > } > echo "count is '$count'"; > ?> > > Always shows count as 1. I have encountered this behavior before. What happens here is a typing issue. PHP seems to think that every variable in the predefined variables is a string. So the ++ operator has no effect on any of those variables. What you should do is to give PHP a hint that $_SESSION['count'] should be treated as an integer: $count = $_SESSION['count'] + 1; This will solve your problem. Cheers, NC |
|
|||
|
Hi NC,
Thanks for your reply. Its not just that the count is never incremented, no session variables seem to be saved at all. I was just using the above as an example (because of the underlying problem even changing it to "$count = $_SESSION['count'] + 1;" didnt work for me). Any other possibility? Do I need to initialize anything else? Any per user config options? Thanks! |
|
|||
|
I found the solution to this problem and wanted to share it with the
group in case anyone else has it too. Yahoo Small Business requires a tmp directory to be created at the root of the users home directory. This is where sessions information is stored. |
|
|||
|
DOOD. I figured it out
http://help.yahoo.com/help/us/webhosting/php/php-29.htm All you have to do is create a /tmp directory on your site. It wil all work after that SWEEET Jaso http://eye.cc -php- web design |