RE: [PHP] Session Array Disappears
| From: | Brady Mitchell | Date: | Mon, 24 Apr 2006 19:55:14 +0000 |
| Subject: | RE: [PHP] Session Array Disappears | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-234636@lists.php.net to get a copy of this message | ||
You're missing the session_start() call at the beginning of your code.
I'm surprised it works at all without that..
http://www.php.net/manual/en/ref.session.php
http://www.php.net/manual/en/function.session-start.php
Brady
> -----Original Message-----
> From: Webmaster [mailto:webmaster@gypsydev.us]
> Sent: Monday, April 24, 2006 1:49 PM
> To: php-general@lists.php.net
> Subject: [PHP] Session Array Disappears
>
> Hello,
>
> The site I'm working on works like this...
> Requires a login that uses sessions to remember username and email
> address. Upon being verified, the user is presented with a page that
> displays several questions regarding their background. Upon
> submitting
> the background page, a script checks to make sure all background
> questions were answered. If not, the page is redisplayed
> with a warning
> to answer all questions. If they are all present, a second page is
> displayed asking about a specific topic. Submitting the second page
> calls up the code provided below.
>
> In reading the www.php.net/manual/en/ref.session.php page,
> I'd like to
> point out we do not use cookies. The session id is propagated in the
> URL (although it's not visible in the URL bar). Also,
> session.gc_maxlifetime is set to 5400. We are using PHP 4.3.4.
>
> Not very often, but once in a while, I'll get an email
> warning me that a
> submission was denied because $_SESSION['Q'] is empty. I'm
> wondering,
> hoping and/or praying that someone out there can look at this small
> script and let me know if I'm doing something wrong with the built in
> function array_pop, perhaps I don't understand sessions at all or
> perhaps it is a server issue. It's very confusing because
> other session
> variables (name and email from the login page) are not emptied, just
> $_SESSION['Q'].
>
> Here's my code with some documentation:
> <?php
> /*
> $_SESSION['startQA'] contains 11 elements and is generated by
> a previous
> page in the site.
> Once the visitor clicks the page two submit button, the above SESSION
> variable comes into play again.
>
> This script takes that array of elements and does the following:
> 1. Assign session array to local array
> 2. Removes the last elemental value using array_pop
> 3. Removes the last elemental value using array_pop
> 4. Assign local variable the value of the a POST element
> 4a. Create a new session array and populates the first
> element equal to
> POST element
> 5. Runs through and populates the remaining 9 elements
> 5a. Total of 10 elements are now populated, 0 thru 9
> 6. Double checks the existence of each element
> 6a. if an element is missing, email me a warning and end program
> */
>
> //Assign Session array to local variable
> // Step 1
> $thisQarray = $_SESSION['startQA'];
>
> //Remove the last element of the original array
> // Step 2
> $area = array_pop($thisQarray);
>
> //Remove last element of bgq array and assign to taking_test_at
> // Step 3
> $from_location = array_pop($thisQarray);
>
> //Assign test version to variable
> // Step 4
> $testVersion = $_POST['version'];
>
> //Start building the final Session Array
> // Step 4a
> $_SESSION['Q'] = array($testVersion);
>
> //Populate rest of Session Array
> // Step 5
> for ($newBGQCounter=0; $newBGQCounter<count($thisQarray);
> $newBGQCounter++)
> {
> $_SESSION['Q'][$newBGQCounter+1] = $thisQarray[$newBGQCounter];
> }
>
> //test for existense of session array elements
> if ( ($_SESSION['Q'][0] == "") OR ($_SESSION['Q'][1] ==
> "") OR
> ($_SESSION['Q'][2] == "") OR ($_SESSION['Q'][3] == "")
> OR
> ($_SESSION['Q'][4] == "") OR ($_SESSION['Q'][5] == "")
> OR
> ($_SESSION['Q'][6] == "") OR ($_SESSION['Q'][7] == "")
> OR
> ($_SESSION['Q'][8] == "") OR ($_SESSION['Q'][9] == "")
> )
> {
> SEND ME AN ERROR EMAIL
> END PROGRAM
> }
> ?>
>
> Thank you all very much,
> R
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>