X-Git-Url: https://git.p6c8.net/selfforum.git/blobdiff_plain/504ff3f8ee5e277c2b1bf12a7a630098eaf55f0a..ba659b53059e637777865e646f0f2a6fb7f2988e:/selfforum-cgi/shared/Template/_query.pm diff --git a/selfforum-cgi/shared/Template/_query.pm b/selfforum-cgi/shared/Template/_query.pm new file mode 100644 index 0000000..606f4f3 --- /dev/null +++ b/selfforum-cgi/shared/Template/_query.pm @@ -0,0 +1,71 @@ +# Template/_query.pm + +# ==================================================== +# Autor: n.d.p. / 2000-12-30 +# lm : n.d.p. / 2001-02-04 +# ==================================================== +# Funktion: +# Erzeugen eines Querystrings +# ==================================================== + +use strict; + +package Template::_query; + +use vars qw(@ISA @EXPORT); + +# ==================================================== +# Funktionsexport +# ==================================================== + +require Exporter; +@ISA = qw(Exporter); +@EXPORT = qw(query_string); + +################################ +# sub query_string +# +# Querystring erzeugen +################################ + +sub query_string ($) { + my $parlist=shift; + + my $string = '?'.join ('&', + map {(ref)?map{&url_encode ($_).'='.&url_encode ($parlist -> {$_})} @{$parlist -> {$_}}: + &url_encode ($_).'='.&url_encode ($parlist -> {$_})} + keys %$parlist); + + # return + $string; +} + +# ==================================================== +# Private Funktionen +# ==================================================== + +################################ +# sub url_encode +# +# URL-Codierung +# (mehr oder weniger aus +# CGI.pm geklaut...) +################################ + +sub url_encode ($) { + my $string = shift; + $string=~s/([^a-zA-Z\d_.-])/uc sprintf('%%%02x',ord($1))/eg; + + $string; +} + +# ==================================================== +# Modulinitialisierung +# ==================================================== + +# making require happy +1; + +# ==================================================== +# end of Template::_query +# ==================================================== \ No newline at end of file