MSFN Forum: [Perl/CGI] How to POST from within a CGI script? - MSFN Forum

Jump to content



Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

[Perl/CGI] How to POST from within a CGI script? Rate Topic: -----

#1 User is offline   Nilfred 

  • Member
  • PipPip
  • Group: Members
  • Posts: 210
  • Joined: 18-September 04

  Posted 06 October 2004 - 10:37 PM

I got a router and a http server in the same subnet. I need the server configures the router from within a CGI script.
The router uses CGI also (hardcoded). Simple http/form only works from local subnet as shown below:
<HTML>
<HEAD>
<TITLE>DI-604</TITLE>
<META HTTP-EQUIV=Content-Type CONTENT="text/html; charset=iso-8859-1">
<script language="JavaScript">
function SetTime(m){
	var f = document.getElementById("frmRule")
	var MinMilli = 1000 * 60
	var HrMilli = MinMilli * 60
	var DyMilli = HrMilli * 24
	var d = new Date()

    f.hour1.selectedIndex = d.getHours() % 12
    f.min1.selectedIndex = Math.floor(d.getMinutes() / 5)
    f.am1.selectedIndex = Math.floor(d.getHours() / 12)
    f.day1.selectedIndex = d.getDay()

	m = m + 4
	d.setTime(d.getTime() + MinMilli * m)

    f.hour2.selectedIndex = d.getHours() % 12
    f.min2.selectedIndex = Math.floor(d.getMinutes() / 5)
    f.am2.selectedIndex = Math.floor(d.getHours() / 12)
    f.day2.selectedIndex = d.getDay()
}
</script>
</HEAD>
<BODY BGCOLOR=#FFFFFF leftmargin="0" topmargin="0" onLoad="SetTime(60)">
<!-- http://192.168.0.1/rule.cgi?
enable=1&serial=6&priorList=&editRow=10&delrow=0&name=Slabo&
action=0&srcIface=0&srcIP1=192.168.0.102&srcIP2=&dstIface=1&
dstIP1=%2A&dstIP2=&proto=0&port1=%2A&port2=&schd=1&
hour1=7&min1=20&am1=1&
hour2=8&min2=40&am2=1&
day1=4&day2=4
-->
<form action="http://admin:xxxxx@192.168.0.1/rule.cgi" method="post" id="frmRule">
	<input type="radio" name="enable" value="1" checked="checked">
	Enabled
	<input type="radio" name="enable" value="0">
	Disabled
	<br>
	<input type="hidden" name="serial" value="6">
	<input type="hidden" name="priorList" value="">
	<input type="hidden" name="editRow" value="10">
	<input type="hidden" name="delrow" value="0">
	<input type="text" name="name" size="20" maxlength="31" value="Slabo">
	<input type="reset" value="Clear" onClick="RuleNew()" name="clear">
	<br>
	<input type="radio" value="0" name="action"  checked="checked">
	Allow
	<input type="radio" name="action" value="1">
	Deny</font></td>
	<br>
	<select size="1" name="srcIface">
   <option value="-1">*</option>
   <option value="0" selected="selected">LAN</option>
   <option value="1">WAN</option>
	</select>
	<input type="text" name="srcIP1" size="12" value="192.168.0.102" maxlength="15">
	<input type="text" name="srcIP2" size="12" value="" maxlength="15">
	<br>
	<select size="1" name="dstIface">
   <option value="-1">*</option>
   <option value="0">LAN</option>
   <option value="1" selected="selected">WAN</option>
	</select>
	<input type="text" name="dstIP1" size="12" maxlength="15" value="*">
	<input type="text" name="dstIP2" size="12" maxlength="15" value="">
	<select size="1" name="proto">
   <option value="6">TCP</option>
   <option value="17">UDP</option>
   <option value="1">ICMP</option>
   <option value="0" selected="selected">*</option>
	</select>
	<input type="text" name="port1" size="2" maxlength="5" value="*">
	-
	<input type="text" name="port2" size="2" maxlength="5" value="">
	<br>
	<input type="radio" name="schd" value="0">
	Always
	<a href="javascript:SetTime(30)">0:30</a>
	<a href="javascript:SetTime(60)">1:00</a>
	<a href="javascript:SetTime(90)">1:30</a>
	<a href="javascript:SetTime(120)">2:00</a>
	<br>
	<input type="radio" name="schd" value="1" checked="checked">
	From
	<select size=1 name=hour1>
   <option value=0>00</option>
   <option value=1>01</option>
   <option value=2>02</option>
   <option value=3>03</option>
   <option value=4>04</option>
   <option value=5>05</option>
   <option value=6>06</option>
   <option value=7>07</option>
   <option value=8>08</option>
   <option value=9>09</option>
   <option value=10>10</option>
   <option value=11>11</option>
	</select>
	:
	<select size=1 name=min1>
   <option value="0">00</option>
   <option value="5">05</option>
   <option value="10">10</option>
   <option value="15">15</option>
   <option value="20">20</option>
   <option value="25">25</option>
   <option value="30">30</option>
   <option value="35">35</option>
   <option value="40">40</option>
   <option value="45">45</option>
   <option value="50">50</option>
   <option value="55">55</option>
	</select>
	<select size=1 name=am1>
   <option value=0>AM</option>
   <option value=1>PM</option>
	</select>
	to
	<select size=1 name=hour2>
   <option value=0>00</option>
   <option value=1>01</option>
   <option value=2>02</option>
   <option value=3>03</option>
   <option value=4>04</option>
   <option value=5>05</option>
   <option value=6>06</option>
   <option value=7>07</option>
   <option value=8>08</option>
   <option value=9>09</option>
   <option value=10>10</option>
   <option value=11>11</option>
	</select>
	:
	<select size=1 name=min2>
   <option value="0">00</option>
   <option value="5">05</option>
   <option value="10">10</option>
   <option value="15">15</option>
   <option value="20">20</option>
   <option value="25">25</option>
   <option value="30">30</option>
   <option value="35">35</option>
   <option value="40">40</option>
   <option value="45">45</option>
   <option value="50">50</option>
   <option value="55">55</option>
	</select>
	<select size=1 name=am2>
   <option value=0>AM</option>
   <option value=1>PM</option>
	</select>
	<br>
	<select size=1 name=day1>
   <option value=0>Sun</option>
   <option value=1>Mon</option>
   <option value=2>Tue</option>
   <option value=3>Wed</option>
   <option value=4>Thr</option>
   <option value=5>Fri</option>
   <option value=6>Sat</option>
	</select>
	to
	<select size=1 name=day2>
   <option value=0>Sun</option>
   <option value=1>Mon</option>
   <option value=2>Tue</option>
   <option value=3>Wed</option>
   <option value=4>Thr</option>
   <option value=5>Fri</option>
   <option value=6>Sat</option>
	</select>
	<br>
	<a href="javascript:document.forms[0].submit()"><img src="apply_p.jpg" width="51" height="52" border="0"></a>
	<a href="javascript:document.forms[0].reset()"><img src="cancel_p.jpg" width="51" height="52" border="0"></a>

</form>
</BODY>
</HTML>

Is there anything simple like a call to other CGI?
NPH- Proxy is the only way?


#2 User is offline   Nilfred 

  • Member
  • PipPip
  • Group: Members
  • Posts: 210
  • Joined: 18-September 04

Posted 17 October 2004 - 08:49 AM

Found my answer here
#!/usr/bin/perl -w 

use strict;
use CGI::Carp qw(fatalsToBrowser);

use LWP::UserAgent;
use HTTP::Request;

my $url = "http://misitio.com/cgi-bin/datos.cgi";
my $query = "nombre=Uriel&apellido=Lizama&Edad=18";


my $ua = LWP::UserAgent->new;
$ua->agent("Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)");

my $req = HTTP::Request->new(POST => $url);
$req->content_type('application/x-www-form-urlencoded');
$req->content($query);

my $response = $ua->request($req);
my $content = $response->content(); #contenido de la respuesta

print "Content-type: text/html\n\n";
print $content;


Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users



All trademarks mentioned on this page are the property of their respective owners
Copyright © 2001 - 2011 msfn.org
Privacy Policy