469,364 Members | 2,332 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,364 developers. It's quick & easy.

Session variable reading doesn't work

L.S.

I am developing a PHP-login script (on Lycos Tripod) that uses Session to
pass on variables. Below is the entire (stripped) structure that I use. It
opens a page where you can Set and Read the session variable BUT ... It
doesn't work!!! It seems that both set- and readlink open their own private
session.

How can I get the read-link to access the proper session variable?

Below is a full testing environment. It uses frames and should work fine ...
but it doesn't. I use this directory-structure:
testindex.php
testmenu.php
testhome.php
login001 [dir]
-----testsetvar.php
-----testreadvar.php
fb001 [dir]
-----testfb.php
-----testframe1.php
-----testframe2.php

The content of the files is:
***************************************
testindex.php
***************************************
<HTML>
<HEAD>
<title>page</title>
</HEAD>
<FRAMESET BORDER="on" cols="200,*">
<FRAME SRC="testmenu.php" NAME=menu>
<FRAME SRC="testhome.php" NAME=main>
</FRAMESET>
</HTML>

***************************************
testmenu.php
***************************************
<HTML>
<HEAD>
<title>Menu</title>
</HEAD>
<BODY>
<A href='login001/testsetvar.php' target='main'>Set</A> the session
variable<BR><BR>
<A href='fb001/testfb.php' target='main'>Read</A> the session variable
</BODY>
</HTML>

***************************************
testhome.php
***************************************
<HTML>
<HEAD>
<title>Home</title>
</HEAD>
<BODY>
This is the Homepage
</BODY>
</HTML>

***************************************
testsetvar.php
***************************************
<?php
session_start();
session_register('testvar');

$testvar="this is the testvariable";
if(session_is_registered('testvar')):
$reg="the testvariable IS registered";
else:
$reg="the testvariable is NOT registered";
endif;

print("var = ".$testvar."<BR>reg = ".$reg."<BR>session ID =
".session_id()."<BR>");
?>

***************************************
testreadvar.php
***************************************
<?
session_start();

if(session_is_registered('testvar')):
$reg="the testvariable IS registered";
else:
$reg="the testvariable is NOT registered";
endif;
print("var = ".$testvar."<BR>reg = ".$reg."<BR>session ID =
".session_id()."<BR>");
?>

***************************************
testfb.php
***************************************
<HTML>
<HEAD>
<title>page</title>
</HEAD>
<FRAMESET BORDER="on" cols="*,150">
<FRAME SRC="testframe1.php" NAME=frame1>
<FRAME SRC="testframe2.php" NAME=frame2>
</FRAMESET>
</HTML>

***************************************
testframe1.php
***************************************
<?
include("../login001/testreadvar.php");
?>
<HTML>
<HEAD>
<title>Home</title>
</HEAD>
<BODY>
<BR>This is frame1<BR>
</BODY>
</HTML>

***************************************
testframe2.php
***************************************
<HTML>
<HEAD>
<title>Home</title>
</HEAD>
<BODY>
<BR>This is frame2
</BODY>
</HTML>

***************************************

Jul 16 '05 #1
5 6265
Peter say...
session_register('testvar');

$testvar="this is the testvariable";


I might be wrong, but first off is it that you have to register testvar
after you've actually declared it? As I say I may be way off there.

The other thing is to check if you've got register_globals on in your
php.ini file.

If it's off (which is the default IIRC) then the above won't work.
Alternatively, just use $_SESSION["testvar"] = "this is the testvariable";

With the $_SESSION[] array, you do not need to use session_register.

If I used session_register with register_globals off, I got error messages
and things didn't work as planned.

using $_SESSION is quicker anyway, because you can just treat it like you
might $testvar but without having to bother with another function
(session_register) everytime.

--
Nathan.
XBL Gamertag: Cowfield
http://www.cowfields.com
Bow to the Cow!
Jul 16 '05 #2
Monday 28 of July 2003 14:01, Nathan wrote in alt.php:

I might be wrong, but first off is it that you have to register testvar
after you've actually declared it? As I say I may be way off there.


that's the point ... but as you said, it's better to use $_SESSION['var']
anyway ...

--
Robert Jirik
[mailto:robert(at)aristoteles(dot)xhaven(dot)net]
public PGP key: http://xhaven.net/robert/pgp_key.asc
-
"Real programmers don't work from 9 to 5. If any real programmers
are around at 9am it's because they were up all night"

Jul 16 '05 #3
I removed the references to session_start() and session_is_registered() and
replaced them with the $_SESSION way of setting and reading the variable but
.... ALAS it still doesn't work. Any other ideas?

Thanks for your replies anyway, Peter.

Jul 16 '05 #4
I finally got it working. I went back to the original code, using
session_start() etc. Nathan was right!! Apparantly, you must first declare
the variable and then make a call to session_register().

Thank you all for your replies.

Peter.
Jul 16 '05 #5
Peter say...
Nathan was right!!


Yay!

--
Nathan.
XBL Gamertag: Cowfield
http://www.cowfields.com
Bow to the Cow!
Jul 16 '05 #6

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

1 post views Thread by Paul | last post: by
3 posts views Thread by Michael J. Astrauskas | last post: by
9 posts views Thread by Greg Linwood | last post: by
10 posts views Thread by tshad | last post: by
4 posts views Thread by T Ralya | last post: by
2 posts views Thread by fReDiNi | last post: by
5 posts views Thread by Chenky | last post: by
1 post views Thread by CARIGAR | last post: by
reply views Thread by zhoujie | last post: by
reply views Thread by suresh191 | last post: by
1 post views Thread by Marylou17 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.