Forums / Developer / Best practice when dealing with session variables?

Best practice when dealing with session variables?

Author Message

Helge Silset

Tuesday 25 January 2011 7:28:11 am

Hi,

We had this line of code throwing errors to our log when the session variable is not set:
{def $my_var=ezhttp( 'my_session_var', 'session' )}
I've replaced it with these lines to stop the errors:
{def $my_var=false()}
{if is_set(ezhttp( 'my_session_var', 'session' ))}
{set $my_var=ezhttp( 'my_session_var', 'session' )}
{/if}
I'm not sure if this is the right way to do it though. Is there a better way?
Any input appreciated!

Gaetano Giunta

Tuesday 25 January 2011 8:33:30 am

It's verbose but correct

Principal Consultant International Business
Member of the Community Project Board

Franck Magnan

Tuesday 25 January 2011 11:48:09 am

Hello Helge,
in your second example, error is throwing any way.
To avoid it, you can use this syntax:

{def $my_var=false()}
   {if ezhttp_hasvariable( 'my_session_var', 'session' )}
      {set $my_var=ezhttp( 'my_session_var', 'session' )}
   {if}
{undef $my_var}

or, if you prefer have it in one line:

{def $my_var=cond(ezhttp_hasvariable( 'my_session_var', 'session' ), ezhttp( 'my_session_var', 'session' ), false())}

--
Developer at Open Wide

eZ debug

Timing: Jan 30 2025 19:34:43
Script start
Timing: Jan 30 2025 19:34:43
Module start 'content'
Timing: Jan 30 2025 19:34:44
Module end 'content'
Timing: Jan 30 2025 19:34:44
Script end

Main resources:

Total runtime0.2331 sec
Peak memory usage8,192.0000 KB
Database Queries141

Timing points:

CheckpointStart (sec)Duration (sec)Memory at start (KB)Memory used (KB)
Script start 0.00000.0077 588.0781370.2813
Module start 'content' 0.00770.0141 958.35941,001.7188
Module end 'content' 0.02180.2112 1,960.07813,890.5234
Script end 0.2330  5,850.6016 

Time accumulators:

 Accumulator Duration (sec) Duration (%) Count Average (sec)
Ini load
Load cache0.00451.9495200.0002
Check MTime0.00140.6045200.0001
Mysql Total
Database connection0.00090.370710.0009
Mysqli_queries0.140560.27411410.0010
Looping result0.00140.60341390.0000
Template Total0.210890.410.2108
Template load0.00080.330710.0008
Template processing0.210090.116010.2100
Override
Cache load0.00060.242310.0006
Sytem overhead
Fetch class attribute can translate value0.00170.735810.0017
XML
Image XML parsing0.00020.106010.0002
General
dbfile0.00823.5007200.0004
String conversion0.00000.002630.0000
Note: percentages do not add up to 100% because some accumulators overlap

CSS/JS files loaded with "ezjscPacker" during request:

CacheTypePacklevelSourceFiles
CSS0extension/community/design/community/stylesheets/ext/jquery.autocomplete.css
extension/community_design/design/suncana/stylesheets/scrollbars.css
extension/community_design/design/suncana/stylesheets/tabs.css
extension/community_design/design/suncana/stylesheets/roadmap.css
extension/community_design/design/suncana/stylesheets/content.css
extension/community_design/design/suncana/stylesheets/star-rating.css
extension/community_design/design/suncana/stylesheets/syntax_and_custom_tags.css
extension/community_design/design/suncana/stylesheets/buttons.css
extension/community_design/design/suncana/stylesheets/tweetbox.css
extension/community_design/design/suncana/stylesheets/jquery.fancybox-1.3.4.css
extension/bcsmoothgallery/design/standard/stylesheets/magnific-popup.css
extension/sevenx/design/simple/stylesheets/star_rating.css
extension/sevenx/design/simple/stylesheets/libs/fontawesome/css/all.min.css
extension/sevenx/design/simple/stylesheets/main.v02.css
extension/sevenx/design/simple/stylesheets/main.v02.res.css
JS0extension/ezjscore/design/standard/lib/yui/3.17.2/build/yui/yui-min.js
extension/ezjscore/design/standard/javascript/jquery-3.7.0.min.js
extension/community_design/design/suncana/javascript/jquery.ui.core.min.js
extension/community_design/design/suncana/javascript/jquery.ui.widget.min.js
extension/community_design/design/suncana/javascript/jquery.easing.1.3.js
extension/community_design/design/suncana/javascript/jquery.ui.tabs.js
extension/community_design/design/suncana/javascript/jquery.hoverIntent.min.js
extension/community_design/design/suncana/javascript/jquery.popmenu.js
extension/community_design/design/suncana/javascript/jScrollPane.js
extension/community_design/design/suncana/javascript/jquery.mousewheel.js
extension/community_design/design/suncana/javascript/jquery.cycle.all.js
extension/sevenx/design/simple/javascript/jquery.scrollTo.js
extension/community_design/design/suncana/javascript/jquery.cookie.js
extension/community_design/design/suncana/javascript/ezstarrating_jquery.js
extension/community_design/design/suncana/javascript/jquery.initboxes.js
extension/community_design/design/suncana/javascript/app.js
extension/community_design/design/suncana/javascript/twitterwidget.js
extension/community_design/design/suncana/javascript/community.js
extension/community_design/design/suncana/javascript/roadmap.js
extension/community_design/design/suncana/javascript/ez.js
extension/community_design/design/suncana/javascript/ezshareevents.js
extension/sevenx/design/simple/javascript/main.js

Templates used to render the page:

UsageRequested templateTemplateTemplate loadedEditOverride
1pagelayout.tpl<No override>extension/sevenx/design/simple/templates/pagelayout.tplEdit templateOverride template
 Number of times templates used: 1
 Number of unique templates used: 1

Time used to render debug report: 0.0001 secs