Home > APEX_UTIL > PREPARE_URL Function
Previous |
Next |
The PREPARE_URL function serves two purposes:
To return an f?p URL with the Session State Protection checksum argument (&cs=) if one is required.
To return an f?p URL with the session ID component replaced with zero (0) if the zero session ID feature is in use and other criteria are met.
Note: ThePREPARE_URL functions returns the f?p URL with &cs=<large hex value> appended. If you use this returned value, for example in JavaScript, it may be necessary to escape the ampersand in the URL in order to conform with syntax rules of the particular context. One place you may encounter this is in SVG chart SQL queries which might include PREPARE_URL calls. |
Syntax
APEX_UTIL.PREPARE_URL ( p_url IN VARCHAR2, p_url_charset IN VARCHAR2 default null, p_checksum_type IN VARCHAR2 default null) RETURN VARCHAR2;
Parameters
Table: PREPARE_URL Parameters describes the parameters available in the PREPARE_URL function.
PREPARE_URL Parameters
Parameter | Description |
---|---|
p_url |
An f?p relative URL with all substitutions resolved |
p_url_charset |
The character set name (for example, |
p_checksum type |
Null or any of the following six values, |
Example 1
The following example shows how to use the PREPARE_URL
function to return a URL with a valid 'SESSION' level checksum argument. This URL sets the value of P1_ITEM
page item to xyz
.
DECLARE l_url varchar2(2000); l_app number := v('APP_ID'); l_session number := v('APP_SESSION'); BEGIN l_url := APEX_UTIL.PREPARE_URL( p_url => 'f?p=' || l_app || ':1:'||l_session||'::NO::P1_ITEM:xyz', p_checksum_type => 'SESSION'); END;
Example 2
The following example shows how to use the PREPARE_URL
function to return a URL with a zero session ID. In a PL/SQL Dynamic Content region that generates f?p
URLs (anchors), call PREPARE_URL
to ensure that the session ID will set to zero when the zero session ID feature is in use, when the user is a public user (not authenticated), and when the target page is a public page in the current application:
htp.p(APEX_UTIL.PREPARE_URL(p_url => 'f?p=' || :APP_ID || ':10:'|| :APP_SESSION ||'::NO::P10_ITEM:ABC');
When using PREPARE_URL
for this purpose, the p_url_charset
and p_checksum_type
arguments can be omitted. However, it is permissible to use them when both the Session State Protection and Zero Session ID features are applicable.