Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PHP session is not working

I am working with wamp2.0 - PHP 5.3, apache 2.2.11 but my sessions are not storing data.

I have a page that accepts a parameter, which (simplified version) I wanna store in a session, so when I come to

http://www.example.com/home.php?sessid=db_session_id

The script looks like:

session_start();

$sessid = @$_GET['sessid'];
if ($sessid) {
  $_SESSION['sessid'] = $sessid;
}
var_dump($_SESSION);

and outputs:

array(1) { [0]=> string(13) "db_session_id" } 

which is fine, but then, when I go to link (without the sessid parameter) the $_SESSION array is empty. I've event tried to comment the $_SESSION['sessid'] = $sessid; line before going to the page without the parameter, but still it didin't work.

I've checked the session_id() output and the session id remains the same.

Session settings from phpinfo()

Session Support enabled
Registered save handlers    files user
Registered serializer handlers  php php_binary wddx

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_httponly Off Off
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  1000    1000
session.gc_maxlifetime  1440    1440
session.gc_probability  1   1
session.hash_bits_per_character 5   5
session.hash_function   0   0
session.name    PHPSESSID   PHPSESSID
session.referer_check   no value    no value
session.save_handler    files   files
session.save_path   c:/wamp/tmp c:/wamp/tmp
session.serialize_handler   php php
session.use_cookies On  On
session.use_only_cookies    On  On
session.use_trans_sid   0   0

EDIT:

The sessions are deleted by an iframe. I don't know why, but when commented, the sessions work fine. Thing is, the iframe has to stay there (which of course is bad, but I can't do anything about it). Well...do you know about any workarounds to get the sessions working with an iframe?

like image 315
Elwhis Avatar asked Jan 06 '11 11:01

Elwhis


2 Answers

It is an old question, but I came here with the same problem. As the question was not answered, here it comes what I've found.

I had a similar problem and in my case the problem was I was not calling session_start() in all the pages where the session was used. I thought I should call it only in the "login" page, but this is not true.

Besides, remember that session_start() must be called before the <html> tag.

like image 186
Juliano Avatar answered Oct 10 '22 01:10

Juliano


You must call the command session_start(); in each page. It worked for me. You must also call this before any output (html, output, even whitespace) is sent to the user.

like image 26
JMendoza Avatar answered Oct 10 '22 00:10

JMendoza