Passing an argument through a A HREF tag.

Greetings,
      I want to run a Perl script using an A HREF tag, and be able to pass a variable along with it as well.
example:
<A href = "Smessage.pl Username" target ="Frame5">Send</a>
The script would recieve "Username" as an argument (I'm using perl and would like to use $ARGV).  If it's not possible to do this with an argument how would I do this as a get/post action?  I've seen it done on the web before.  Much like a banner advertisement sending the page owners name to the cgi script.
Thanks in Advance.
cideAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

ozoCommented:
<A href = "Smessage.pl?Username">
Would pass Username in $ENV{QUERY_STRING}
0
cideAuthor Commented:
Yeah, I know how to do that.  I was wondering if it was possible through the $ARGV.  I don't really want to use the QUERY_STRING but maybe I'll have to.
0
icdCommented:
You only have two options. The method that ozo gave uses the GET method which puts the data in the QUERY_STRING. With a form (but not with a HREF) you can use the POST method which puts the data in stdin. There is no other way.

0
Exploring ASP.NET Core: Fundamentals

Learn to build web apps and services, IoT apps, and mobile backends by covering the fundamentals of ASP.NET Core and  exploring the core foundations for app libraries.

cideAuthor Commented:
Ok, thanks anyways.
0
Michel PlungjanIT ExpertCommented:
Try this:

<FORM NAME="msgform" ACTION="Smessage.pl" METHOD="POST" TARGET="Frame5">
<INPUT NAME="USERNAME" TYPE="HIDDEN" VALUE="">
</FORM>
<A HREF="javascript:document.msgform.USERNAME.value='username1';document.msgform.submit();">User name 1</A>

Michel
0
cideAuthor Commented:
That's not an argument.  It's still form data.
0
Michel PlungjanIT ExpertCommented:
But it is not via QUERY_STRING

Last attempts:
Use a stub and call your program that needs the argv as a subroutine
0
jakedCommented:
Actually, the CGI spec says that if the query string is of the form ?foo+bar+baz, rather than ?foo=bar&baz=quux, it gets split on the pluses and passed in as the arglist to the script. So ozo's example passes Username as argv[1] as well as in the QUERY_STRING environment variable.

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
ozoCommented:
Actually, in Perl that would be $ARGV[0]
0
jakedCommented:
You are right sir.
0
ozoCommented:
Even so, I'd hesitate to recommend using $ARGV[0] rather than $ENV{QUERY_STRING}
If you ever did get an = there, you could lose the @ARGV parameters
(You'd have to use something like ?foo%3dbar&baz%3dquux in that case)
0
Michel PlungjanIT ExpertCommented:
When I needed to have a program running as a cgi AND standalone, I would test the arguments passed and if empty I would look at the environment variables.

Michel
0
ozoCommented:
But as jaked points out, you can't rely on @ARGV being empty when running as a CGI.
Also, you omit the case of parameters being passed in STDIN.
BTW, with
 use CGI.pm;
all the arg parsing is done for you as a CGI, and you can also
pass arguments on the command line or in STDIN for stand alone testin.

0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Scripting Languages

From novice to tech pro — start learning today.