Caution: This documentation is for eZ Publish legacy, from version 3.x to 5.x.
For 5.x documentation covering Platform see eZ Documentation Center, for difference between legacy and Platform see 5.x Architecture overview.



Returns GET, POST and session variables.


ezhttp( name [, type [, check_existence ] ] )


name string The HTTP variable that should be fetched. Yes.
type string Source of variable. Default is is HTTP POST. No.
check_existence mixed If the specified directive should be checked for existence. No.


Variable value


This operator makes it possible to inspect the contents of HTTP variables (POST, GET or session variables). The "type" parameter can be used to specify which type of variable that should be extracted. The following options are available:

  • post (POST variable)
  • get (GET variable)
  • session (session variable)

The "check_existence" parameter can be set to TRUE or the string "hasVariable" in order to check if a directive is actually set. In this case, the operator will return either TRUE or FALSE. Note that using the "ezhttp_hasvariable" operator is a better option.


Example 1

{ezhttp( 'search' )}

Returns the "search" POST variable.

Example 2

{ezhttp( 'image', 'get' )}

Returns the "image" GET variable.

Example 3

{ezhttp( 'user_id', 'session' )}

Returns the "user_id" session variable.

Balazs Halasy (05/02/2004 10:33 am)

Balazs Halasy (01/04/2007 4:44 pm)


  • Warnings

    It's a little too bad there's no way to avoid a warning when the variable we're fetching is not set ...
    • Re: Warnings

      You only recieve a warning? I get see an error. Most annoying!
      • Re: Re: Warnings

        using 3.7.4 and getting an error as well. even testing for the existence fo a get/post var throws an error:
        {if ezhttp( 'myvar', 'get' ) } => returns false, but throws error
        the same with {if is_set( ezhttp( 'myvar', 'get' ) )}
        its a bug in my opinion..
    • Re: Warnings

      you can use in 3.9 (trunk) like:
      ezhttp_hasvariable( 'getVar','get' )
      ezhttp( 'getVar','get','hasVariable' )
  • Why not ?

    It would be nice if the ezhttp operator could return all vars in the array specified. ezhttp(GET) would return all $_GET vars for example.
  • ezhttp is not working if caching is turned on.

    i put
    {set-block scope=root variable=cache_ttl}0{/set-block}
    to all templates, because in other way ezhttp will return the same value...
    • Re: ezhttp is not working if caching is turned on.

      Or YOU should rethink your code instead of disable all cache, and recommend others to do so as well..

      If you use view parameters ('') instead of GET parameters, then the cache system will store different cached pages depending on the parameters. So that would be:
      * Better performance (cache is still on)
      * Nicer looking URL
      * Better indexable URL
      • Re: Re: ezhttp is not working if caching is turned on.

        Actually, the cache system unfortunately does not store different cached pages, but returns the first requested version after cache cleaning for each parameter combination. Maybe this has something to do with the overall broken cache system in 3.10, but it does not work as expected and documented here.
  • or null

    Variable value or null

    test for non-existence using
    {if not(ezhttp('test'))}
    {if ezhttp('test')|null()}

  • How to get php $_SERVER['HTTP_REFERER'] in a template ?

    it would be nice if there was something like:
    ezhttp('referer', 'server')

    I tried
    {def $referer=ezhttp('LastAccessesURI','session')}
    as well, but it returns the URL of the active page, not the refering...

    What to do?