Connecting Tech Pros Worldwide Help | Site Map

Problem with SESSION variables...

ZoombyWoof
Guest
 
Posts: n/a
#1: Jul 17 '05
Hi. Im very new to php, and I have a problem here that I cant find the
solution for. I have problems with session variables, I want some
variables to maintain their value between different php script that is
being called. I have read the online manual, and here is an example from
it that doesnt work for me, it illustrates very well my problem.

File 1, index.php

<?php
// index.php

session_start();

echo '<br />Welcome to page #1';

$_SESSION['favcolor'] = 'green';
$_SESSION['animal'] = 'cat';
$_SESSION['time'] = time();


// Works if session cookie was accepted
echo '<br /><a href="page2.php">page 2</a>';

// Or maybe pass along the session id, if needed
echo '<br /><a href="page2.php?' . SID . '">page 2</a>';
?>

File 2, page2.php

<?php
// page2.php

session_start();

echo '<br />Welcome to page #2<br />';

echo $_SESSION['favcolor']; // green
echo $_SESSION['animal']; // cat
echo date('Y m d H:i:s', $_SESSION['time']);

// You may want to use SID here, like we did in page1.php
echo '<br /><a href="index.php">page 1</a>';
?>

I get no output, except the date which shows 1970 bla bla

I have apache 2.0.48, PHP 4.3.3 running on a Redhat 9.0 box. I have not
touched the register_globals in php.ini, it's Off. What can be the problem
here ? Any help would be much appreciated, I'm stuck....

Thanx

/ZoombyWoof

Pedro
Guest
 
Posts: n/a
#2: Jul 17 '05

re: Problem with SESSION variables...


ZoombyWoof wrote:
[...][color=blue]
> I get no output, except the date which shows 1970 bla bla
>
> I have apache 2.0.48, PHP 4.3.3 running on a Redhat 9.0 box. I have not
> touched the register_globals in php.ini, it's Off. What can be the problem
> here ? Any help would be much appreciated, I'm stuck....[/color]

What do you have for "session.save_path" in php.ini?
Does the webserver have write-access to that directory?

--
I have a spam filter working.
To mail me include "urkxvq" (with or without the quotes)
in the subject line, or your mail will be ruthlessly discarded.
ZoombyWoof
Guest
 
Posts: n/a
#3: Jul 17 '05

re: Problem with SESSION variables...


On Tue, 04 Nov 2003 15:32:14 +0000, Pedro wrote:
[color=blue]
> ZoombyWoof wrote:
> [...][color=green]
>> I get no output, except the date which shows 1970 bla bla
>>
>> I have apache 2.0.48, PHP 4.3.3 running on a Redhat 9.0 box. I have not
>> touched the register_globals in php.ini, it's Off. What can be the problem
>> here ? Any help would be much appreciated, I'm stuck....[/color]
>
> What do you have for "session.save_path" in php.ini?
> Does the webserver have write- permissions are[/color]
rwxrwxrwxt owned by root, so that shouldnt be a problem, or ?

/ZW

Jon Kraft
Guest
 
Posts: n/a
#4: Jul 17 '05

re: Problem with SESSION variables...


ZoombyWoof <zoombywoofremove@thishotmail.com> wrote:
[color=blue]
> Hi. Im very new to php, and I have a problem here that I cant find the
> solution for. I have problems with session variables, I want some
> variables to maintain their value between different php script that is
> being called. I have read the online manual, and here is an example from
> it that doesnt work for me, it illustrates very well my problem.
>
> // Or maybe pass along the session id, if needed
> echo '<br /><a href="page2.php?' . SID . '">page 2</a>';[/color]

The above will only work if you set session.use_trans_sid in php.ini to 1.
Furthermore cookies must be accepted by your browser in order to work.

Alternatively you could use:

echo '<br /><a href="page2.php?'.session_name().'='.session_id(). '">page
2</a>';

Check the session cookie on page 2 with session_get_cookie_params() .. if
that's empty, the cookie hasn't been set.

http://uk.php.net/manual/en/function...kie-params.php

HTH;
JOn

--
Begathon, n.:
A multi-day event on public television, used to raise money so
you won't have to watch commercials.
ZoombyWoof
Guest
 
Posts: n/a
#5: Jul 17 '05

re: Problem with SESSION variables...


On Tue, 04 Nov 2003 15:35:08 +0000, Jon Kraft wrote:
[color=blue]
> ZoombyWoof <zoombywoofremove@thishotmail.com> wrote:
>[color=green]
>> Hi. Im very new to php, and I have a problem here that I cant find the
>> solution for. I have problems with session variables, I want some
>> variables to maintain their value between different php script that is
>> being called. I have read the online manual, and here is an example from
>> it that doesnt work for me, it illustrates very well my problem.
>>
>> // Or maybe pass along the session id, if needed
>> echo '<br /><a href="page2.php?' . SID . '">page 2</a>';[/color]
>
> The above will only work if you set session.use_trans_sid in php.ini to 1.
> Furthermore cookies must be accepted by your browser in order to work.
>
> Alternatively you could use:
>
> echo '<br /><a href="page2.php?'.session_name().'='.session_id(). '">page
> 2</a>';
>
> Check the session cookie on page 2 with session_get_cookie_params() .. if
> that's empty, the cookie hasn't been set.
>
> http://uk.php.net/manual/en/function...kie-params.php
>
> HTH;
> JOn[/color]
I have tried all of what you suggested above, setting use_trans_sid to 1
didnt help. I used the link with session_name=session_id, didnt help. I
have changed session.save_path to /usr/local/apache2/sessions, apache owns
that directory, apache is the user who runs the server, but nothing goes
in that directory. I have checked the cookie_params, and it doesnt contain
anything else from what is set as default in php.ini.
I dont understand this....*HELP* :-)

Thanx

/ZW

Jon Kraft
Guest
 
Posts: n/a
#6: Jul 17 '05

re: Problem with SESSION variables...


ZoombyWoof <zoombywoofremove@thishotmail.com> wrote:
[color=blue]
> I have tried all of what you suggested above, setting use_trans_sid to 1
> didnt help. I used the link with session_name=session_id, didnt help. I
> have changed session.save_path to /usr/local/apache2/sessions, apache owns
> that directory, apache is the user who runs the server, but nothing goes
> in that directory. I have checked the cookie_params, and it doesnt contain
> anything else from what is set as default in php.ini.
> I dont understand this....*HELP* :-)[/color]

Hm, strange, are you sure you are editing the php.ini PHP uses? Check with
phpinfo(). That will also tell you whether PHP was compiled with
--disable-session.

JOn

--
He only knew his iron spine held up the sky -- he didn't realize his brain
had fallen to the ground.
-- The Book of Serenity

ZoombyWoof
Guest
 
Posts: n/a
#7: Jul 17 '05

re: Problem with SESSION variables...


On Tue, 04 Nov 2003 18:15:12 +0000, Jon Kraft wrote:
[color=blue]
> ZoombyWoof <zoombywoofremove@thishotmail.com> wrote:
>[color=green]
>> I have tried all of what you suggested above, setting use_trans_sid to 1
>> didnt help. I used the link with session_name=session_id, didnt help. I
>> have changed session.save_path to /usr/local/apache2/sessions, apache owns
>> that directory, apache is the user who runs the server, but nothing goes
>> in that directory. I have checked the cookie_params, and it doesnt contain
>> anything else from what is set as default in php.ini.
>> I dont understand this....*HELP* :-)[/color]
>
> Hm, strange, are you sure you are editing the php.ini PHP uses? Check with
> phpinfo(). That will also tell you whether PHP was compiled with
> --disable-session.
>
> JOn[/color]
Yes, I'm editing the one PHP is using, it's /etc/php.ini, however, if you
mean that it should say --disable-session under configure command at the
top, it doesnt. Do I have to have disable-session compiled in ? Why is
this not the default, if it's necessary to get session to work...?

Thanx

/ZW

Justin Koivisto
Guest
 
Posts: n/a
#8: Jul 17 '05

re: Problem with SESSION variables...


ZoombyWoof wrote:
[color=blue]
> On Tue, 04 Nov 2003 15:35:08 +0000, Jon Kraft wrote:
>
>[color=green]
>>ZoombyWoof <zoombywoofremove@thishotmail.com> wrote:
>>
>>[color=darkred]
>>>Hi. Im very new to php, and I have a problem here that I cant find the
>>>solution for. I have problems with session variables, I want some
>>>variables to maintain their value between different php script that is
>>>being called. I have read the online manual, and here is an example from
>>>it that doesnt work for me, it illustrates very well my problem.
>>>
>>>// Or maybe pass along the session id, if needed
>>>echo '<br /><a href="page2.php?' . SID . '">page 2</a>';[/color]
>>
>>The above will only work if you set session.use_trans_sid in php.ini to 1.
>>Furthermore cookies must be accepted by your browser in order to work.
>>
>>Alternatively you could use:
>>
>>echo '<br /><a href="page2.php?'.session_name().'='.session_id(). '">page
>>2</a>';
>>
>>Check the session cookie on page 2 with session_get_cookie_params() .. if
>>that's empty, the cookie hasn't been set.
>>
>>http://uk.php.net/manual/en/function...kie-params.php
>>
>>HTH;
>>JOn[/color]
>
> I have tried all of what you suggested above, setting use_trans_sid to 1
> didnt help.[/color]

Did you restart the webserver after editing php.ini? That's a commonly
overlooked step...
[color=blue]
> I used the link with session_name=session_id, didnt help. I
> have changed session.save_path to /usr/local/apache2/sessions, apache owns
> that directory, apache is the user who runs the server, but nothing goes
> in that directory. I have checked the cookie_params, and it doesnt contain
> anything else from what is set as default in php.ini.[/color]

Be sure that session.auto_start is off.

session.save_handler needs to be set to files for session.save_path to
be used.

session.use_cookies should be on if you want to use cookies. If you want
to use *only* cookies, then session.use_only_cookies should be on as well.

Make sure that session.gc_maxlifetime isn't set really low (default is
1440 seconds, or 24 minutes). Same with session.cookie_lifetime, but 0
is no exipre in this case. (Watch for session.cache_expire as well.)

--
Justin Koivisto - spam@koivi.com
PHP POSTERS: Please use comp.lang.php for PHP related questions,
alt.php* groups are not recommended.

Justin Koivisto
Guest
 
Posts: n/a
#9: Jul 17 '05

re: Problem with SESSION variables...


ZoombyWoof wrote:
[color=blue]
> On Tue, 04 Nov 2003 18:15:12 +0000, Jon Kraft wrote:
>[color=green]
>>ZoombyWoof <zoombywoofremove@thishotmail.com> wrote:
>>[color=darkred]
>>>I have tried all of what you suggested above, setting use_trans_sid to 1
>>>didnt help. I used the link with session_name=session_id, didnt help. I
>>>have changed session.save_path to /usr/local/apache2/sessions, apache owns
>>>that directory, apache is the user who runs the server, but nothing goes
>>>in that directory. I have checked the cookie_params, and it doesnt contain
>>>anything else from what is set as default in php.ini.
>>>I dont understand this....*HELP* :-)[/color]
>>
>>Hm, strange, are you sure you are editing the php.ini PHP uses? Check with
>>phpinfo(). That will also tell you whether PHP was compiled with
>>--disable-session.[/color]
>
> Yes, I'm editing the one PHP is using, it's /etc/php.ini, however, if you
> mean that it should say --disable-session under configure command at the
> top, it doesnt. Do I have to have disable-session compiled in ? Why is
> this not the default, if it's necessary to get session to work...?[/color]

If id did say --disable-session, then sessions would be disabled and not
available on the server.

Check the under phpinfo() for "Configuration File (php.ini) Path" and be
sure that it is set to /etc/php.ini, otherwise all your edits will do
nothing. Also be sure to restart apache after editing.

--
Justin Koivisto - spam@koivi.com
PHP POSTERS: Please use comp.lang.php for PHP related questions,
alt.php* groups are not recommended.

ZoombyWoof
Guest
 
Posts: n/a
#10: Jul 17 '05

re: Problem with SESSION variables...


On Tue, 04 Nov 2003 18:27:23 +0000, Justin Koivisto wrote:
[color=blue]
> ZoombyWoof wrote:
>[/color]
*snip*
[color=blue]
>
> Did you restart the webserver after editing php.ini? That's a commonly
> overlooked step...[/color]
Oh yes I did.[color=blue]
>[/color]
*snip*[color=blue]
>
> Be sure that session.auto_start is off.[/color]
It is[color=blue]
>
> session.save_handler needs to be set to files for session.save_path to
> be used.[/color]
It is[color=blue]
>
> session.use_cookies should be on if you want to use cookies. If you want
> to use *only* cookies, then session.use_only_cookies should be on as well.[/color]
Cookies is on[color=blue]
>
> Make sure that session.gc_maxlifetime isn't set really low (default is
> 1440 seconds, or 24 minutes). Same with session.cookie_lifetime, but 0
> is no exipre in this case. (Watch for session.cache_expire as well.)[/color]
Default values

/ZW

ZoombyWoof
Guest
 
Posts: n/a
#11: Jul 17 '05

re: Problem with SESSION variables...


On Tue, 04 Nov 2003 18:29:44 +0000, Justin Koivisto wrote:
[color=blue]
> ZoombyWoof wrote:
>[color=green]
>> On Tue, 04 Nov 2003 18:15:12 +0000, Jon Kraft wrote:
>>[color=darkred]
>>>ZoombyWoof <zoombywoofremove@thishotmail.com> wrote:
>>>
>>>>I have tried all of what you suggested above, setting use_trans_sid to 1
>>>>didnt help. I used the link with session_name=session_id, didnt help. I
>>>>have changed session.save_path to /usr/local/apache2/sessions, apache owns
>>>>that directory, apache is the user who runs the server, but nothing goes
>>>>in that directory. I have checked the cookie_params, and it doesnt contain
>>>>anything else from what is set as default in php.ini.
>>>>I dont understand this....*HELP* :-)
>>>
>>>Hm, strange, are you sure you are editing the php.ini PHP uses? Check with
>>>phpinfo(). That will also tell you whether PHP was compiled with
>>>--disable-session.[/color]
>>
>> Yes, I'm editing the one PHP is using, it's /etc/php.ini, however, if you
>> mean that it should say --disable-session under configure command at the
>> top, it doesnt. Do I have to have disable-session compiled in ? Why is
>> this not the default, if it's necessary to get session to work...?[/color]
>
> If id did say --disable-session, then sessions would be disabled and not
> available on the server.
>
> Check the under phpinfo() for "Configuration File (php.ini) Path" and be
> sure that it is set to /etc/php.ini, otherwise all your edits will do
> nothing. Also be sure to restart apache after editing.[/color]
It did not say --disable_session and I edit the right file.

THis is really weird...

/ZW

Justin Koivisto
Guest
 
Posts: n/a
#12: Jul 17 '05

re: Problem with SESSION variables...


At this point, I say post a link to a phpinfo() call so we can better
see what is going on.

--
Justin Koivisto - spam@koivi.com
PHP POSTERS: Please use comp.lang.php for PHP related questions,
alt.php* groups are not recommended.

ZoombyWoof
Guest
 
Posts: n/a
#13: Jul 17 '05

re: Problem with SESSION variables...


On Tue, 04 Nov 2003 19:39:25 +0000, Justin Koivisto wrote:
[color=blue]
> At this point, I say post a link to a phpinfo() call so we can better
> see what is going on.[/color]
THis wull be opened a couple of hours, then I close it again.

http://zoombywoof.dns2go.com:8029/phpinfo.php

Thanx

/ZW

Pedro
Guest
 
Posts: n/a
#14: Jul 17 '05

re: Problem with SESSION variables...


ZoombyWoof wrote:[color=blue]
> THis wull be opened a couple of hours, then I close it again.
>
> http://zoombywoof.dns2go.com:8029/phpinfo.php[/color]

session_cookie_path = /

--
I have a spam filter working.
To mail me include "urkxvq" (with or without the quotes)
in the subject line, or your mail will be ruthlessly discarded.
Pedro
Guest
 
Posts: n/a
#15: Jul 17 '05

re: Problem with SESSION variables...


I wrote, way too fast:[color=blue]
> session_cookie_path = /[/color]
session.cookie_path = /


session.save_path is local to the webserver filesystem.

session.cookie_path is the HTTP path sent to the client in the cookie.

--
I have a spam filter working.
To mail me include "urkxvq" (with or without the quotes)
in the subject line, or your mail will be ruthlessly discarded.
ZoombyWoof
Guest
 
Posts: n/a
#16: Jul 17 '05

re: Problem with SESSION variables...


On Tue, 04 Nov 2003 20:18:12 +0000, Pedro wrote:
[color=blue]
> I wrote, way too fast:[color=green]
>> session_cookie_path = /[/color]
> session.cookie_path = /
>
>
> session.save_path is local to the webserver filesystem.
>
> session.cookie_path is the HTTP path sent to the client in the cookie.[/color]
I had it set to /, I just tried and changed, it didnt do any difference.
I'll change it back.

/ZW

Pedro
Guest
 
Posts: n/a
#17: Jul 17 '05

re: Problem with SESSION variables...


ZoombyWoof wrote:[color=blue]
> I'll change it back.[/color]

Is it working now?

I just noticed -- at the locally cached phpinfo -- you did not have

session.save_handler = files

Maybe you have already changed that too :)

--
I have a spam filter working.
To mail me include "urkxvq" (with or without the quotes)
in the subject line, or your mail will be ruthlessly discarded.
ZoombyWoof
Guest
 
Posts: n/a
#18: Jul 17 '05

re: Problem with SESSION variables...


On Tue, 04 Nov 2003 22:54:58 +0000, Pedro wrote:
[color=blue]
> ZoombyWoof wrote:[color=green]
>> I'll change it back.[/color]
>
> Is it working now?
>
> I just noticed -- at the locally cached phpinfo -- you did not have
>
> session.save_handler = files
>
> Maybe you have already changed that too :)[/color]

:-)))))) Its working now! You were right, I had session.save_handler =
file instead of session.save_handler = files (pluralis)

The script works, the variables are echoed correctly in page2.php But, I
get this warning :

Warning: session_start(): Cannot send session cookie - headers already
sent by (output started at /usr/local/apache2/htdocs/phptest/page2.php:4)
in /usr/local/apache2/htdocs/phptest/page2.php on line 7

Warning: session_start(): Cannot send session cache limiter - headers
already sent (output started at
/usr/local/apache2/htdocs/phptest/page2.php:4) in
/usr/local/apache2/htdocs/phptest/page2.php on line 7

What does this mean ?

Thanx for the help.

/ZW
ZoombyWoof
Guest
 
Posts: n/a
#19: Jul 17 '05

re: Problem with SESSION variables...


On Wed, 05 Nov 2003 00:05:42 +0100, ZoombyWoof wrote:
[color=blue]
> On Tue, 04 Nov 2003 22:54:58 +0000, Pedro wrote:
>[color=green]
>> ZoombyWoof wrote:[color=darkred]
>>> I'll change it back.[/color]
>>
>> Is it working now?
>>
>> I just noticed -- at the locally cached phpinfo -- you did not have
>>
>> session.save_handler = files
>>
>> Maybe you have already changed that too :)[/color]
>
> :-)))))) Its working now! You were right, I had session.save_handler =
> file instead of session.save_handler = files (pluralis)
>
> The script works, the variables are echoed correctly in page2.php But, I
> get this warning :
>
> Warning: session_start(): Cannot send session cookie - headers already
> sent by (output started at /usr/local/apache2/htdocs/phptest/page2.php:4)
> in /usr/local/apache2/htdocs/phptest/page2.php on line 7
>
> Warning: session_start(): Cannot send session cache limiter - headers
> already sent (output started at
> /usr/local/apache2/htdocs/phptest/page2.php:4) in
> /usr/local/apache2/htdocs/phptest/page2.php on line 7
>
> What does this mean ?
>
> Thanx for the help.
>
> /ZW[/color]
I solved it. I had an echo line before session_start, which according to
the php manual is Not allowed. Not everything is HunkyDory :-))

Thanx again everyone that answered me and tried to help me.

/ZoombyWoof

Closed Thread