网页CGI问题

网页CGI问题

我要实现以下功能:
用户单击一个链接,打开一个网页,网页里的表格获取服务器的数据填入相应的字段内,表格中的字段怎么与相应的数据对应呢?另外,实现整个功能的过程是怎样的,目前我的一种思路是一开网页就运行个cgi程序获取数据,然后使用printf一行一行的打印,请问还有其它的办法吗,比如使用location,然后传递参数给该网页,如果可以这样,那参数该怎么传递呢?
这个……说起来比较复杂,还是自己先看看资料吧

http://www.programfan.com/article/2858.html
或者 google CGI
多谢回复,但是你提供的那个与我的问题的关系不大,举个例子:假如有个IP的文本框,通过CGI程序获取了server的IP后,这个IP怎么输出到IP文本框内,当然,如果使用printf一行一行的输出可以实现,但是假如输出的网页HTML代码比较多,这种方式输出太不方便了,我想是否有什么办法,cgi程序只需通过printf location 或href,然后传递IP的参数给已经弄好的网页,然后网页IP文本框内会显示传递的参数
HTML::Template


QUOTE:
原帖由 cobrawgl 于 2008-11-10 10:34 发表
HTML::Template

同意。简单的用这个就挺好。
更复杂的可以用 tt。
功能已实现
我的办法是:CGI程序通过location显示相应的网页,然后再URL后面带参数(比如:url?ip=192.168.1.200),
printf("Moved Temporarily - 302\n");
sprintf(buf, "Location: http://%s/ip.html?ip=%s&mask=%s&gateway=%s&mac=%s\n\n",
        ip, ip, netmask, gateway, mac);
printf("%s", buf);
然后显示的网页中通过javascript语句获取url中的参数,再赋值给form表单中对应的字段即可

网页中的javascript部分如下:

[Copy to clipboard] [ - ]
CODE:
<script type="text/javascript">
<!-- Hide
function $G(){
        var Url=window.location.href;//如果想获取框架顶部的url可以用 top.window.location.href
        var u,g,StrBack='';
        if(arguments[arguments.length-1]=="#")
                u=Url.split("#");
        else
                u=Url.split("?");
        if (u.length==1) g='';
        else g=u[1];

        if(g!=''){
                gg=g.split("&");
                var MaxI=gg.length;
                str = arguments[0]+"=";
                for(xm=0;xm<MaxI;xm++){
                        if(gg[xm].indexOf(str)==0) {
                                StrBack=gg[xm].replace(str,"");
                        break;
                        }
                }
        }
        return StrBack;
}
// End Hiding -->
</script>

然后在网页的<body></body>中,再加入如下代码,ipconfig为表单的名字

[Copy to clipboard] [ - ]
CODE:
<script type="text/javascript">
        var ip=$G("ip");
        var mask=$G("mask");
        var gate=$G("gateway");
        var mac=$G("mac");
        ipconfig.ip.value=ip;
        ipconfig.mask.value=mask;
        ipconfig.gateway.value=gate;
        ipconfig.mac.value=mac;
</script>