I'll try and explain what I'm hoping to do. Thank you in advance for your help.
I need to know how to create a form which once submitted:
1. remains in the same window
2. creates a frame set
3. the top frame is very small only enough for a top header - which will have a link back to the main site and a frame canceler
4. the bottom and larger frame shows the user's landing page (which is already created)
I've been searching all over to find a form that works. I found one but it's not showing the bottom frame.
here is the example code
Code:#!/usr/bin/perl ################################################################### # Variables - Change these to match your site. ################################################################### $home = 'http://www.example.com'; $title = 'Test'; $body = 'TEXT=000000 LINK=DD8613 VLINK=DD8613 ALINK=DD8613 topmargin=0 leftmargin=0 toppadding=12'; ################################################################### # Do not touch these this part of the script. ################################################################### if ($ENV{'REQUEST_METHOD'} eq 'GET') { $buffer = $ENV{'QUERY_STRING'}; } else { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); } @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $FORM{$name} = $value; } if ($FORM{'source'}) { $source = $FORM{'source'}; } if ($FORM{'target'}) { $target = $FORM{'target'}; } print "Content-type: text/html\n\n"; &ReadParse; ##################################################################### # This is the frame part, be careful if you want to change anything. ##################################################################### if ($in{'action'} eq '') { $in{'action'} = "main"; } # End if if ($in{'action'} eq 'main') { print "<HTML><HEAD><TITLE>$title - Visiting a link</TITLE></HEAD>\n"; print "<FRAMESET rows=\"30,*\" marginwidth=0 marginheight=0 framespacing=0 frameborder=no border=0>\n"; print "<FRAME marginwidth=0 marginheight=0 src=\"$home/cgi-bin/main.cgi?action=top&source=$source&target=$target\" scrollbars=no scrolling=no framespacing=0 frameborder=no border=0>\n"; print "<FRAME marginwidth=0 marginheight=0 src=\"http://$target\" framespacing=0 frameborder=no border=0>\n"; print "</FRAMESET>\n"; print "<NOFRAMES>\n"; print "<h1 align=center>Ops!</h1>\n"; print "This document is designed to be viewed using Frame features. If you are seeing this message, please consider upgrading to a frames-compatible browser."; print "</NOFRAMES></HTML>\n"; } ##################################################################### # This is the top part, be careful if you want to change anything. ##################################################################### elsif ($in{'action'} eq 'top') { print "<HTML><HEAD><TITLE>$title - Visiting a link</TITLE></HEAD>\n"; print "<body $body>\n"; print "<left><a href=\"$home/$source\" target=\"_top\"><font size=2 face=\"Arial, Helvetica, sans-serif\">Return</font></a>\n"; print " | <a href=\"http://$target\" target=\"_top\"><font size=2 face=\"Arial, Helvetica, sans-serif\">Remove This Frame</font></a>\n"; print "</left>\n"; print "</body></html>\n"; } ############################################### # READPARSE FUNCTION DO NOT TOUCH ############################################### sub ReadParse { local (*in) = @_ if @_; local ($i, $key, $val); if ( $ENV{'REQUEST_METHOD'} eq "GET" ) { $in = $ENV{'QUERY_STRING'}; } elsif ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN,$in,$ENV{'CONTENT_LENGTH'}); } else { # Added for command line debugging # Supply name/value form data as a command line argument # Format: name1=value1\&name2=value2\&... # (need to escape & for shell) # Find the first argument that's not a switch (-) $in = ( grep( !/^-/, @ARGV )) [0]; $in =~ s/\\&/&/g; } @in = split(/&/,$in); 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. \0 is the multiple separator $in{$key} .= "\0" if (defined($in{$key})); $in{$key} .= $val; } return length($in); }
The link used to call the cgi script is below:
Thank you for your help!Code:<a href="http://www.example.com/cgi-bin/main.cgi?source=index.html&=www.google.com">Link Text</a>



Reply With Quote
Bookmarks