X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Felements%2Fcreate_uri_query;h=4d360b25541665863304ad6933a03d366ef1063b;hb=a8d62307b05d924d3304fd7cf18177e2fc1c91f7;hp=414d53ba494b2fc922ecdc755970754be5781641;hpb=600e9b690d7649e8cde7a9a4cd1089fcb432d238;p=freeside.git diff --git a/httemplate/elements/create_uri_query b/httemplate/elements/create_uri_query index 414d53ba4..4d360b255 100644 --- a/httemplate/elements/create_uri_query +++ b/httemplate/elements/create_uri_query @@ -1,3 +1,24 @@ +<%doc> + +Instead of: + + my $link = $self_url. '?'. $cgi->query_string; + +which will fail when the query string exceeds ~2k (browser-dependent) + + +Usage: + + my $query = $m->scomp('/elements/create_uri_query'); + my $link = $self_url. '?'. $query; + +You can also pass an optional 'secure'=>1 parameter to force handling as +session data, even for short query strings. + + +See also handle_uri_query which needs to be used by the target page. + + <% $query %>\ <%init> @@ -14,11 +35,11 @@ if ( $opt{secure} ) { } -my $query = $cgi->query_string; +my $query = $opt{query} || $cgi->query_string; if ( length($query) > 1920 || $opt{secure} ) { #stupid IE 2083 URL limit - my $session = random_id(9); + my $session = int(rand(4294967296)); #XXX my $pref = new FS::access_user_pref({ 'usernum' => $FS::CurrentUser::CurrentUser->usernum, 'prefname' => "redirect$session",