プライマリ・コンテンツに移動

Oracle® Application Express APIリファレンス リリース5.1 E85937-02 |
| 目次 | 索引

前 | 次 |

# 28.91 PREPARE_URLファンクション

PREPARE_URLファンクションは、次の2つの目的で使用されます。

1. 「セッション・ステート保護」チェックサム引数(&cs=)が指定されたf?p URLを戻すため(このf?p URLが必要な場合)

2. セッションIDコンポーネントが0 (ゼロ)に置換されたf?p URLを戻すため(ゼロ・セッションID機能が使用され、他の条件が満たされている場合)

注意:

`PREPARE_URL`ファンクションは、`&cs=<large hex value>`を追加したf?p URLを戻します。たとえば、この戻り値をJavaScriptで使用する場合、特定のコンテキストの構文規則に従うため、URLのアンパサンドをエスケープする必要があります。`PREPARE_URL`のコールを含むSVGチャートのSQL問合せでは、このエスケープが必要な場合があります。

構文

    APEX_UTIL.PREPARE_URL (
        p_url           IN VARCHAR2,
        p_url_charset   IN VARCHAR2 default null,
        p_checksum_type IN VARCHAR2 default null,
        p_triggering_element IN VARCHAR2 default 'this')
    RETURN VARCHAR2;

パラメータ

表28-75 PREPARE_URLのパラメータ

パラメータ | 説明
--- | ---
`p_url` | すべての置換が解決されているf?p相対URL
`p_url_charset` | 引数値に含まれている特殊文字をエスケープする場合に使用するキャラクタ・セット名(`UTF-8`など)
`p_checksum_type` | NULL、あるいは6つの値(`SESSION`または`3`、 `PRIVATE_BOOKMARK`または`2`、あるいは`PUBLIC_BOOKMARK`または`1`)のいずれか
`p_triggering_element` | ダイアログのトリガーに使用する要素を特定するjQueryセレクタ(たとえば`#my_button`。`my_button`はボタン要素の静的ID)。これは、モーダル・ダイアログのサポートに必要です。

例1

次の例に、`PREPARE_URL`ファンクションを使用して、有効なSESSIONレベルのチェックサム引数が指定されたURLを戻す方法を示します。このURLによって、`P1_ITEM`ページ・アイテムの値が`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;

例2

次の例に、`PREPARE_URL`ファンクションを使用して、セッションIDが0 (ゼロ)のURLを戻す方法を示します。`f?p` URL (アンカー)を生成する「PL/SQL動的コンテンツ」リージョンでは、`PREPARE_URL`をコールして、ゼロ・セッションID機能が使用されている場合、ユーザーが(認証されていない)パブリック・ユーザーの場合およびターゲット・ページがカレント・アプリケーションのパブリック・ページである場合にセッションIDが0 (ゼロ)に設定されることを確認します。

    htp.p(APEX_UTIL.PREPARE_URL(p_url => 'f?p=' || :APP_ID || ':10:'|| :APP_SESSION
    ||'::NO::P10_ITEM:ABC');

この目的で`PREPARE_URL`を使用する場合は、`p_url_charset`および`p_checksum_type`引数を省略できます。ただし、セッション・ステート保護機能とゼロ・セッションID機能の両方を適用できる場合は、これらの引数を使用できます。

参照:

「セッションIDにゼロを使用したブックマークの容易化」