Re: Open Session Variables [message #171263 is a reply to message #171259] |
Wed, 29 December 2010 22:12 |
me
Messages: 192 Registered: September 2010
Karma:
|
Senior Member |
|
|
On 12/29/2010 4:53 PM, Denis McMahon wrote:
> On 29/12/10 21:24, Bill Braun wrote:
>> On 12/29/2010 9:55 AM, Captain Paralytic wrote:
>>> On Dec 29, 2:48 pm, Denis McMahon<denis.m.f.mcma...@googlemail.com>
>>> wrote:
>>>> On 29/12/10 13:33, Bill Braun wrote:
>>>>
>>>> > I am new to PHP coding. At the end of a series of scripts (the series
>>>> > being a function of a number of header and include calls) is there a
>>>> > way
>>>> > to know what session variables are still set? I am running into an
>>>> > intermittent error "Warning: session_start() [function.session-start]:
>>>> > Node no longer exists in file.php on line X" and I suspect that I am
>>>> > failing to destroy or unset some session variables.
>>>>
>>>> > I think I have the variables properly destroy()'d and/or unset() but
>>>> > the
>>>> > error make me suspicious I've overlooked something.
>>>>
>>>> try googling "php Node no longer exists"
>>>>
>>>> It's a good start. In fact, for any programming language these days,
>>>> googling "<language> <error message text>" will usually throw up
>>>> something helpful.
>>>
>>> I made the generous assumption that, despite being new to php coding,
>>> the OP nevertheless had enough intelligence to put the error message
>>> into Google and to have noted that all the popular hits stated this
>>> being a problem with SimpleXML. If he did not then maybe programming
>>> simply isn't for him.
>>
>> The PHP error can be avoided if the browser is closed then reloaded
>> between running the scripts. That suggested to me, for what I know, that
>> there is is something in the session might be unset or destroyed within
>> the script, doing away with the need to close and reload the browser,
>> and avoid the error.
>
> This is because doing so destroys the session cookie, and hence the
> session record.
>
>> I had, as you rightly suggested, done some research before posting here.
>> I knew of the SimpleXML explanation. What I had not yet learned was if
>> there was some way to unset the session or destroy variables in such
>> fashion that the error would not occur. Thus my desire to see a list of
>> the session variables that were still set at the end of the script.
>
> There's very little point using sessions if you destroy all the session
> variables at the end of each script.
>
> unset($_SESSION);
>
> will do the job, if that's what you really want.
>
> However, the real problem seems to be that you are storing raw simpleXML
> objects in the $_SESSION array, when you should cast those objects to eg
> string before storing them, and it would be better to fix that problem.
>
> Or, possibly even better given that you're talking about destroying the
> offending data items anyway, if you don't want to pass the offending
> data items using the session mechanism, don't store them in the
> $_SESSION array in the first place.
>
> Rgds
>
> Denis McMahon
Thank you Denis. You are right, I was not actually going down the path
of destroying session variables, or even unsetting the session. I was
exploring those somewhat at the level of neophite desperation.
Can I search on "eg string" to fond more information about that.
I am using an inhereted script for making API calls to a website,
written by the people at the website. So I am clearly out of my league,
and this is the first I've heard/read there is an alternative to storing
the SimpleXML objects in a session variable.
It may be pertinent (it did not occur to me before to mention it) that a
cURL session is also involved in the script.
Many thanks.
Bill B
|
|
|