免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3529 | 回复: 5
打印 上一主题 下一主题

网页CGI问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-10 09:23 |只看该作者 |倒序浏览
我要实现以下功能:
用户单击一个链接,打开一个网页,网页里的表格获取服务器的数据填入相应的字段内,表格中的字段怎么与相应的数据对应呢?另外,实现整个功能的过程是怎样的,目前我的一种思路是一开网页就运行个cgi程序获取数据,然后使用printf一行一行的打印,请问还有其它的办法吗,比如使用location,然后传递参数给该网页,如果可以这样,那参数该怎么传递呢?

论坛徽章:
0
2 [报告]
发表于 2008-11-10 09:47 |只看该作者
这个……说起来比较复杂,还是自己先看看资料吧

http://www.programfan.com/article/2858.html
或者 google CGI

论坛徽章:
0
3 [报告]
发表于 2008-11-10 10:04 |只看该作者
多谢回复,但是你提供的那个与我的问题的关系不大,举个例子:假如有个IP的文本框,通过CGI程序获取了server的IP后,这个IP怎么输出到IP文本框内,当然,如果使用printf一行一行的输出可以实现,但是假如输出的网页HTML代码比较多,这种方式输出太不方便了,我想是否有什么办法,cgi程序只需通过printf location 或href,然后传递IP的参数给已经弄好的网页,然后网页IP文本框内会显示传递的参数

论坛徽章:
0
4 [报告]
发表于 2008-11-10 10:34 |只看该作者
HTML::Template

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
5 [报告]
发表于 2008-11-10 11:55 |只看该作者
原帖由 cobrawgl 于 2008-11-10 10:34 发表
HTML::Template

同意。简单的用这个就挺好。
更复杂的可以用 tt。

论坛徽章:
0
6 [报告]
发表于 2008-11-10 16:55 |只看该作者
功能已实现
我的办法是: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部分如下:

  1. <script type="text/javascript">
  2. <!-- Hide
  3. function $G(){
  4.         var Url=window.location.href;//如果想获取框架顶部的url可以用 top.window.location.href
  5.         var u,g,StrBack='';
  6.         if(arguments[arguments.length-1]=="#")
  7.                 u=Url.split("#");
  8.         else
  9.                 u=Url.split("?");
  10.         if (u.length==1) g='';
  11.         else g=u[1];

  12.         if(g!=''){
  13.                 gg=g.split("&");
  14.                 var MaxI=gg.length;
  15.                 str = arguments[0]+"=";
  16.                 for(xm=0;xm<MaxI;xm++){
  17.                         if(gg[xm].indexOf(str)==0) {
  18.                                 StrBack=gg[xm].replace(str,"");
  19.                         break;
  20.                         }
  21.                 }
  22.         }
  23.         return StrBack;
  24. }
  25. // End Hiding -->
  26. </script>
复制代码


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

  1. <script type="text/javascript">
  2.         var ip=$G("ip");
  3.         var mask=$G("mask");
  4.         var gate=$G("gateway");
  5.         var mac=$G("mac");
  6.         ipconfig.ip.value=ip;
  7.         ipconfig.mask.value=mask;
  8.         ipconfig.gateway.value=gate;
  9.         ipconfig.mac.value=mac;
  10. </script>
复制代码

[ 本帖最后由 xzsxiao213 于 2008-11-10 17:00 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP