免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: qks5201314
打印 上一主题 下一主题

CGI的问题 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2008-12-16 15:58 |只看该作者
6楼的代码是CGIC中来生成静态HTML页面

始终不理解你说的"用CGIC来调用HTML静态页面的方法"

我所理解的也就是19楼所写的了

论坛徽章:
0
22 [报告]
发表于 2008-12-16 16:50 |只看该作者

回复 #21 bitmilong 的帖子

BZ,我们现在用CGIC库中的一个测试程序为例来讨论吧,测试程序代码如下:
/*capture.c*/
#include "cgic.h"

int cgiMain() {
        cgiWriteEnvironment("/CHANGE/THIS/PATH/capcgi.dat");
        cgiHeaderContentType("text/html");
        fprintf(cgiOut, "<title>Captured</title>\n");
        fprintf(cgiOut, "<h1>Captured</h1>\n");
        fprintf(cgiOut, "Your form submission was captured for use in\n\r");
        fprintf(cgiOut, "debugging CGI code.\n\r");       
               
        return 0;
}
此程序依赖CGIC库,编译后将产生一个capture的可执行文件,然后在ARM+LINUX下面运行web server后,在IE的
地址栏上输入http://192.168.0.79/cgi-bin/capture 后回车就可以打开一个网页,网页内容当然是上面测试程序例的内容了;

然后现在有一个静态页面文件jtcg.html在ARM上的/var/www/目录下,现在想实现在capture的程序中把jtcg.html网页包含进去,这样要求能够在使用http://192.168.0.79/cgi-bin/capture 访问web server的时候不仅能显示刚才测试程序网页的内容,还要能弹出另外一个网页窗口,显示的内容当然是刚才提到的jtcg.html中的内容了;

不知道这样解释是否清楚?

论坛徽章:
0
23 [报告]
发表于 2008-12-16 19:28 |只看该作者
原帖由 qks5201314 于 2008-12-16 16:50 发表
BZ,我们现在用CGIC库中的一个测试程序为例来讨论吧,测试程序代码如下:
/*capture.c*/
#include "cgic.h"

int cgiMain() {
        cgiWriteEnvironment("/CHANGE/THIS/PATH/capcgi.dat");
        cgiHeaderContentT ...




/*capture.c*/
#include "cgic.h"

int cgiMain() {
        cgiWriteEnvironment("/CHANGE/THIS/PATH/capcgi.dat");
        cgiHeaderContentType("text/html");
        fprintf(cgiOut, "<title>Captured</title>\n");

        fprintf(cgiOut, "<SCRIPT LANGUAGE="javascript">\n");
        fprintf(cgiOut, "<!--\n");
        fprintf(cgiOut, "window.open (\'http://192.168.0.79/jtcg.html\')\n");
        fprintf(cgiOut, "-->\n");
        fprintf(cgiOut, "</SCRIPT>\n");


        fprintf(cgiOut, "<h1>Captured</h1>\n");
        fprintf(cgiOut, "Your form submission was captured for use in\n\r");
        fprintf(cgiOut, "debugging CGI code.\n\r");      
               
        return 0;
}

论坛徽章:
0
24 [报告]
发表于 2008-12-16 19:46 |只看该作者

回复 #23 bitmilong 的帖子

BZ,我试了一下,按照您这样的写法是可以的,非常感谢您的帮助;
还有一点小问题,就是如果我的ARM设备IP地址变了,这条语句
fprintf(cgiOut, "window.open (\'http://192.168.0.79/jtcg.html\')\n");
怎么写才能自适应呢?

论坛徽章:
0
25 [报告]
发表于 2008-12-16 19:51 |只看该作者

回复 #24 qks5201314 的帖子

根据你的目录结构用个相对地址就可以了,比如:

fprintf(cgiOut, "window.open (\'../www/jtcg.html\')\n");

论坛徽章:
0
26 [报告]
发表于 2008-12-17 07:42 |只看该作者

回复 #25 bitmilong 的帖子

好的,谢谢BZ;

论坛徽章:
0
27 [报告]
发表于 2008-12-17 22:34 |只看该作者
楼主概念不清。这个问题应该是很简单的,在cgic输出的html里包含自动弹出另外一个网页的javascript代码即可。另外一个网页的URL使用相对路径。

评分

参与人数 1可用积分 +15 收起 理由
bitmilong + 15 我很赞同

查看全部评分

论坛徽章:
0
28 [报告]
发表于 2008-12-18 07:34 |只看该作者

回复 #27 pilgrim_kevin 的帖子

恩,谢谢两位的指点。

论坛徽章:
0
29 [报告]
发表于 2008-12-19 20:43 |只看该作者
libcgi 中提供了cgi_include,以及cgi_redirect,还有session,比较方便。

论坛徽章:
0
30 [报告]
发表于 2008-12-19 23:11 |只看该作者
我原来曾经用cgic自己编写了一套包含html templete和session机制的简单web框架,可以比较方便地使用内嵌我自己定义的标签的html模版文件。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP