Jason Wong wrote:

> On Sunday 28 November 2004 22:46, steve wrote:
> 
>> I tried printing out the values before and after each of those lines.
>> After line 53, $ref_page is an array containing precisely the values I
>> expect, so the function is working. After line 54, the session var has
>> been reset, as expected, to match the current page - but $ref_page has
>> also changed and is now equal to $_SESSION['ref_page'], which is what I
>> found very weird - ie, resetting $_SESSION['ref_page'] simultaneously
>> reset $ref_page.
> 
> Is $ref_page getting set to what the _previous_ value of
> $_SESSION['ref_page'] was? If so, it sounds like you have register_globals
> enabled.

No to both. When I arrive at the new page, the sessions vars (as expected)
contain the values set by the previous page. $ref_page is not set. The
values are transferred to $ref_page by the function. That works as planned.
I then reset the value of the session vars, at which point, $ref_page also
gets set. From printing out the values after each line, I find this:

Let's say we've come from the page /community.php and have arrived
at /market.php. Here are the values at each stage:

            $_SESSION['ref_page] = '/community.php'
            $_SESSION['ref_pagequery'] = 'pagemode=index' // as an example
53. $ref_page = get_ref_page();
            $ref_page['name'] =  '/community.php'
            $ref_page['query'] = 'pagemode=index'
            $_SESSION['ref_page] = '/community.php'
            $_SESSION['ref_pagequery'] = 'pagemode=index'
54. $_SESSION['ref_page'] = THIS_PAGE;
            $ref_page =  '/community.php' // now a scalar
            $_SESSION['ref_page] = '/market.php'

register_globals is off (in php.ini and there are no .htaccess files). 

-- 
@+
Steve

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to