Hey all. I have read almost everything about sessions and I am going a bit batty. Have even used some of the sample session scripts to no avail.
My problems are:
1.Session_start creating session but it's not updating the session - after I login or use sample incrementing script
Session_start() does not write a to my tmp file even though I have made the directory completely writeable.
When I run the following script the counter always remains at 1 - and the session keeps changing in the PHP/sessiondata folder. I echo it out.
Here is the sample code:
<? session_start(); // fine...
//header("Cache-control: private"); //up to you
//session_register("SESSION"); //unneeded, take this one out
// note that the array is $_SESSION, not $SESSION!!
// isset occasionally gets confusing, and here's the rub.
//When you called isset and you hadn't yet initialized
//"count" (when it was zero), isset() keeps deciding that
//"count" is not set, so you never get to the increment loop.
//Besides, you didn't increment the variable the first
//time through anyway, so you never added any value to 'count'
//better is this:
if (!$SESSION['count']) {
$SESSION['count']++;
echo "<li>Counter initialized, please reload this page to see it increment";
} else {
//hmm... take a look at "session_id"...
$MyID=session_id();
echo "<li>Waking up session $MyID";
$SESSION['count']++;
}
echo "<li>The counter is now ". $SESSION['count']."<BR>";
print session_id();
?>
I am on a PC running XP - Apache and PHP 4.2.2 (the same thing happens with 4.3.x PHP as well). What am I doing wrong?
The PHP.ini for sessions is set the following way:
[Session]
; Handler used to store/retrieve data.
session.save_handler = files
; Argument passed to save_handler. In the case of files, this is the path
; where data files are stored.
session.save_path = C:\PHP\sessiondata ; argument passed to save_handler
; Whether to use cookies.
session.use_cookies = 1
; Name of the session (used as cookie name).
session.name = PHPSESSID
; Initialize session on request startup.
session.auto_start = 0
; Lifetime in seconds of cookie or, if 0, until browser is restarted.
session.cookie_lifetime = 0
; The path for which the cookie is valid.
session.cookie_path = c:\tmp
; The domain for which the cookie is valid.
session.cookie_domain = 127.0.0.1
; Handler used to serialize data. php is the standard serializer of PHP.
session.serialize_handler = php
; Percentual probability that the 'garbage collection' process is started
; on every session initialization.
session.gc_probability = 1
; After this number of seconds, stored data will be seen as 'garbage' and
; cleaned up by the garbage collection process.
session.gc_maxlifetime = 1440
; Check HTTP Referer to invalidate externally stored URLs containing ids.
session.referer_check =
; How many bytes to read from the file.
session.entropy_length = 0
; Specified here to create the session id.
session.entropy_file =
;session.entropy_length = 16
;session.entropy_file = /dev/urandom
; Set to {nocache,private,public} to determine HTTP caching aspects.
session.cache_limiter = nocache
; Document expires after n minutes.
session.cache_expire = 180
; use transient sid support if enabled by compiling with --enable-trans-sid.
session.use_trans_sid = On
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
Is there something in the INI that is wrong. Or is it simply a Windows issue. The code works completely fine on my linux server.. I have read so many of the posts and I am now at a point where I have to post my own headaches.. Thanks for your time...