By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
454,718 Members | 1,438 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 454,718 IT Pros & Developers. It's quick & easy.

Problem with SESSION variables...

P: n/a
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

Jul 17 '05 #1
Share this Question
Share on Google+
18 Replies


P: n/a
ZoombyWoof wrote:
[...]
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....


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.
Jul 17 '05 #2

P: n/a
On Tue, 04 Nov 2003 15:32:14 +0000, Pedro wrote:
ZoombyWoof wrote:
[...]
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....


What do you have for "session.save_path" in php.ini?
Does the webserver have write- permissions are

rwxrwxrwxt owned by root, so that shouldnt be a problem, or ?

/ZW

Jul 17 '05 #3

P: n/a
ZoombyWoof <zo**************@thishotmail.com> wrote:
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>';


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.
Jul 17 '05 #4

P: n/a
On Tue, 04 Nov 2003 15:35:08 +0000, Jon Kraft wrote:
ZoombyWoof <zo**************@thishotmail.com> wrote:
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>';


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

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

Jul 17 '05 #5

P: n/a
ZoombyWoof <zo**************@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.

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

Jul 17 '05 #6

P: n/a
On Tue, 04 Nov 2003 18:15:12 +0000, Jon Kraft wrote:
ZoombyWoof <zo**************@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.

JOn

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

Jul 17 '05 #7

P: n/a
ZoombyWoof wrote:
On Tue, 04 Nov 2003 15:35:08 +0000, Jon Kraft wrote:

ZoombyWoof <zo**************@thishotmail.com> wrote:

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>';
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


I have tried all of what you suggested above, setting use_trans_sid to 1
didnt help.


Did you restart the webserver after editing php.ini? That's a commonly
overlooked step...
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.


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 - sp**@koivi.com
PHP POSTERS: Please use comp.lang.php for PHP related questions,
alt.php* groups are not recommended.

Jul 17 '05 #8

P: n/a
ZoombyWoof wrote:
On Tue, 04 Nov 2003 18:15:12 +0000, Jon Kraft wrote:
ZoombyWoof <zo**************@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.


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...?


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 - sp**@koivi.com
PHP POSTERS: Please use comp.lang.php for PHP related questions,
alt.php* groups are not recommended.

Jul 17 '05 #9

P: n/a
On Tue, 04 Nov 2003 18:27:23 +0000, Justin Koivisto wrote:
ZoombyWoof wrote:
*snip*

Did you restart the webserver after editing php.ini? That's a commonly
overlooked step... Oh yes I did. *snip*
Be sure that session.auto_start is off. It is
session.save_handler needs to be set to files for session.save_path to
be used. It is
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. Cookies is on
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.)

Default values

/ZW

Jul 17 '05 #10

P: n/a
On Tue, 04 Nov 2003 18:29:44 +0000, Justin Koivisto wrote:
ZoombyWoof wrote:
On Tue, 04 Nov 2003 18:15:12 +0000, Jon Kraft wrote:
ZoombyWoof <zo**************@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.


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...?


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.

It did not say --disable_session and I edit the right file.

THis is really weird...

/ZW

Jul 17 '05 #11

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

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

Jul 17 '05 #12

P: n/a
On Tue, 04 Nov 2003 19:39:25 +0000, Justin Koivisto wrote:
At this point, I say post a link to a phpinfo() call so we can better
see what is going on.

THis wull be opened a couple of hours, then I close it again.

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

Thanx

/ZW

Jul 17 '05 #13

P: n/a
ZoombyWoof wrote:
THis wull be opened a couple of hours, then I close it again.

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


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.
Jul 17 '05 #14

P: n/a
I wrote, way too fast:
session_cookie_path = /

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.
Jul 17 '05 #15

P: n/a
On Tue, 04 Nov 2003 20:18:12 +0000, Pedro wrote:
I wrote, way too fast:
session_cookie_path = /

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 had it set to /, I just tried and changed, it didnt do any difference.
I'll change it back.

/ZW

Jul 17 '05 #16

P: n/a
ZoombyWoof wrote:
I'll change it back.


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.
Jul 17 '05 #17

P: n/a
On Tue, 04 Nov 2003 22:54:58 +0000, Pedro wrote:
ZoombyWoof wrote:
I'll change it back.


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 :)


:-)))))) 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
Jul 17 '05 #18

P: n/a
On Wed, 05 Nov 2003 00:05:42 +0100, ZoombyWoof wrote:
On Tue, 04 Nov 2003 22:54:58 +0000, Pedro wrote:
ZoombyWoof wrote:
I'll change it back.


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 :)


:-)))))) 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

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

Jul 17 '05 #19

This discussion thread is closed

Replies have been disabled for this discussion.