Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2047
  • Last Modified:

PERL CGI Get all GET parameters and put them together

I want to get ALL parameters of GET method and put them together in a single string variable...

ex.

If Test.pl?a=1&b=2&c=3&d=%20Test%20 called

I want to have a=1&b=2&c=3&d=%20Test%20 in a single string variable in same format with & and html encoded.

Thanks from now!
0
CSecurity
Asked:
CSecurity
  • 9
  • 4
  • 2
  • +1
3 Solutions
 
Adam314Commented:
You could just get the $ENV{QUERYSTRING}, and this would be exactly the querystring to your script.
0
 
CSecurityAuthor Commented:
I want URL and parameters all together

I mean:

http://www.mysite.com/test.pl?a=1&b=2&c=3&d=%20Test%20

I want entire URL
0
 
hieloCommented:
$ENV{REQUEST_URI}
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
Adam314Commented:
my $EntireURL = "http://www.mysite.com/test.pl?$ENV{QUERY_STRING}"
0
 
CSecurityAuthor Commented:
There isn't a method to get it dynamically?
0
 
Adam314Commented:
The REQUEST_URI will not contain the protocol (http), or the domain (www.mysite.com).  And if the current page is different from the desired link, it will not be correct.
0
 
hieloCommented:

my $EntireURL = "$ENV{REQUEST_URI}?$ENV{QUERY_STRING}" ;
0
 
Adam314Commented:
What do you want to get?  There are several environment variables that contain different parts of what you are asking for.
0
 
hieloCommented:
I meant SCRIPT_URI
my $EntireURL = "$ENV{SCRIPT_URI}?$ENV{QUERY_STRING}" ;
0
 
Adam314Commented:
SCRIPT_URI?   I don't have this - I am using apache... what webserver are you using?
0
 
Adam314Commented:
Here are some environment variables that might help with what you want:
SCRIPT_NAME   - The name of the script as seen by the web browser (eg: /test.pl)
SERVER_NAME   - The hostname (eg: www.mysite.com)
QUERY_STRING  - The part after the question mark (eg: a=1&b=2&c=3&d=%20Test%20)
SERVER_PORT   - The port, part after the colon of hostname, or 80 if not specified
REQUEST_URI   - "$ENV{SCRIPT_NAME}?$ENV{QUERY_STRING}"
HTTP_HOST     - "$ENV{SERVER_NAME}:$ENV{SERVER_PORT}"

Open in new window

0
 
hieloCommented:
>>SCRIPT_URI?   I don't have this - I am using apache... what webserver are you using?
apache. Not sure what version the webhost is using. It gives me the full url MINUS the querystring!
0
 
Adam314Commented:
I'm using apache 2.2.8, which looks to be the newest release.... wondering if SCRIPT_URI is a non-standard add-on your host is using.
0
 
FishMongerCommented:
Partial quote from http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html
(SCRIPT_URI is probably documented elsewhere, but that was the first google hit)
This module keeps track of two additional (non-standard) CGI/SSI environment variables named SCRIPT_URL  and SCRIPT_URI. These contain the logical Web-view to the current resource, while the standard CGI/SSI variables SCRIPT_NAME and SCRIPT_FILENAME contain the physical  System-view.
 
Notice: These variables hold the URI/URL as they were initially requested, that is, before any rewriting. This is important to note because the rewriting process is primarily used to rewrite logical URLs to physical pathnames.
Example
 
SCRIPT_NAME=/sw/lib/w3s/tree/global/u/rse/.www/index.html
SCRIPT_FILENAME=/u/rse/.www/index.html
SCRIPT_URL=/u/rse/
SCRIPT_URI=http://en1.engelschall.com/u/rse/

Open in new window

0
 
Adam314Commented:
With 2.2.8.... I meant 2.2 is the latest - there is a 2.2.9 released on 2008-06-13, but I doubt this would have changed.
0
 
Adam314Commented:
Thanks FishMonger!
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 9
  • 4
  • 2
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now