www.webdeveloper.com
+ Reply to Thread
Results 1 to 5 of 5
  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)

     

Bookmarks

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