www.webdeveloper.com
Results 1 to 5 of 5

Thread: Ussing an Array as a Session Variable

  1. #1
    Join Date
    Jul 2006
    Posts
    249

    Ussing an Array as a Session Variable

    I'm trying to access/use an array as a session variable, but get a parse error. Is this allowed/possible?

    Example:

    PHP Code:
    if($_SESSION["userprefs['time_standard']" == 1)
                { 
    // use 12 hour clock 
                
    $call['start_time'] = date(,$outlook_row['call_start']) .":" date(,$outlook_row['call_start']);
                }
                else
                { 
    // use 24 hour clock
                
    $call['start_time'] = date(,$outlook_row['call_start']) .":" date(,$outlook_row['call_start']);
                } 
    Thanks,

    Nick

  2. #2
    Join Date
    Jun 2006
    Location
    Down at the bottom of the garden
    Posts
    1,239
    PHP Code:
    // Populate the session using the array
    $_SESSION['userprefs'] = serialize($userprefs);

    // Populate the array using the session
    $userprefs unserialize($_SESSION['userprefs']); 

  3. #3
    Join Date
    Dec 2006
    Location
    Escaz˙ (Costa Rica) and Mallorca (Spain)
    Posts
    3,234
    The parse error comes from a missing bracket. To get rid of the parse error, it should be:
    PHP Code:
    if($_SESSION["userprefs['time_standard']"] == 1
    But... this isn't going anywhere, unless you previously really did store the string "userprefs['time_standard']" as a session variable.

    Since your thread is titled "Using an Array as a Session Variable", my guess is that you're after something else.
    PHP Code:
    <?php
    session_start
    ();
    $userprefs['time_standard'] = 1;
    $_SESSION['userprefs']['time_standard'] = $userprefs['time_standard'];
    IF (
    $_SESSION['userprefs']['time_standard'] == 1) :
      echo 
    "Nightshift58 finally go it right";
    ELSE :
      echo 
    "Nightshift58... not again...";
    ENDIF;
    ?>

  4. #4
    Join Date
    Jul 2006
    Posts
    249
    Based on the following assumptions (which may not be true), that is exactly what I'm looking for.

    Assuming:

    1. It is faster to load all of the user preferences into a session variable at log in rather than querying the database each time a preference is needed.

    2. It is more logical to store all of the user preferences in a single (array) variable than to have 30-40 individual session variables floating around.


    Thanks!

    Can you also use that syntax to put an array inside of an array?

    such as:

    PHP Code:
    $my_array['item']['subitem'] = 1

  5. #5
    Join Date
    Dec 2006
    Location
    Escaz˙ (Costa Rica) and Mallorca (Spain)
    Posts
    3,234
    Quote Originally Posted by lightnb
    Based on the following assumptions (which may not be true), that is exactly what I'm looking for. Assuming:

    1. It is faster to load all of the user preferences into a session variable at log in rather than querying the database each time a preference is needed.

    2. It is more logical to store all of the user preferences in a single (array) variable than to have 30-40 individual session variables floating around.
    Considering that there are no session variables as such but a $_SESSION array, I would say that they're not really floating around. You can - as a matter of personal choice and coding comfort - choose to put the user preferences into an array and than store that array in the $_SESSION array. I don't think PHP puts a penalty on that.

    Quote Originally Posted by lightnb
    Can you also use that syntax to put an array inside of an array? such as:
    PHP Code:
    $my_array['item']['subitem'] = 1
    yes, that's one way.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles