- From: <dba@althingi.is>
- Date: Thu, 7 Mar 1996 15:23:56 GMT
- To: www-html@w3.org
Nobody has yet responded to my earlier query.
I have however noticed a way in which I can pass parameters
through a html document to the script that it invokes at least
using Netscape and Mosaic but not HotJava
there are environment variables:
HTTP_REFERER
REFERER_URl
both contain the link reference that the browser came from
(but in Mosaic this is lost upon Reload)
I have therefore changed the cgi-lib.pl function
it has solved my inhouse problem
and I would like to have comments on this:
sub ReadParse {
local (*in) = @_ if @_;
##local ($i, $key, $val); # replaced by new code line
local ($i, $key, $val, $ex, $x);
# Read in text
if (&MethGet) {
$in = $ENV{'QUERY_STRING'};
} elsif ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN,$in,$ENV{'CONTENT_LENGTH'});
}
@in = split(/&/,$in);
############################### new code insert start
$ex = $ENV{'REFERER_URL'};
if ($ex) {
($x,$ex) = split(/#/,$ex);
if ($ex) {
push(@in,split(/&/,$ex));
}
}
############################### new code insert end
foreach $i (0 .. $#in) {
# Convert plus's to spaces
$in[$i] =~ s/\+/ /g;
# Split into key and value.
($key, $val) = split(/=/,$in[$i],2); # splits on the first =.
# Convert %XX from hex numbers to alphanumeric
$key =~ s/%(..)/pack("c",hex($1))/ge;
$val =~ s/%(..)/pack("c",hex($1))/ge;
# Associate key and value
$in{$key} .= "\0" if (defined($in{$key})); # \0 is the multiple separator
$in{$key} .= $val;
}
##return length($in); # replaced by new code line
return length($in)+length($ex);
}
> From root Mon Mar 4 11:15 PST 1996
> >Received: from www19.w3.org
> by muninn.althingi.is (SMI-8.6/ISnet/11-02-92); Mon, 4 Mar 1996 11:15:33 GMT
> Resent-Date: Mon, 4 Mar 1996 05:53:08 -0500
> Resent-Message-Id: <199603041053.FAA06992@www19.w3.org>
> From: dba@althingi.is
> Date: Mon, 4 Mar 1996 10:51:18 GMT
> To: www-html@w3.org
> Subject: passing parameters through html documents
> X-Sun-Charset: US-ASCII
> Resent-From: www-html@w3.org
> X-Mailing-List: <www-html@w3.org> archive/latest/2697
> X-Loop: www-html@w3.org
> Sender: www-html-request@w3.org
> Resent-Sender: www-html-request@w3.org
> Content-Type: text
> Content-Length: 1029
>
> I would like to be able to have a link in my document-1 like:
>
> <a href="document-2.html#field1=value1">...
>
> Document-2 might be a form or contain a reference
> to a cgi script like:
>
> <a href="myscript.pl&field2=value2">...
>
> but the script would actually receive:
>
> QUERY_STRING=feild1=value1&field2=value2
>
> In this way the input data could be accumulated
> from several list choices. I frequently have a general
> script to look up a database but find my self
> in a position where I either have to have several
> different forms all with a different hidden field value
> or I can use a single form but have to ask the user
> to fill in a field which only has one logical value
> in the situation.
>
> Sorry if this idea has already been discussed
> or if there is a more elegant solution
> I would be greatful if somebody pointed me to it.
>
--
Thorvaldur Gunnlaugsson \ The Parliament of Iceland
thg@althingi.is \ comp. departm. Vonarstr 8
voice:3554-5630655 fax:5630670 \ 150 REYKJAVIK
Received on Thursday, 7 March 1996 10:25:09 UTC