C语言进行网站开发之cgi



  1. 安装Apach
  2. 配置ApacheRuntime

下面的过程中一直点击next

配置CGI,放开配置:AddHandler
cgi-script .cgi

2.添加Option,截图

3.编写CGI代码如下:

#define
_CRT_SECURE_NO_WARNINGS 
//取消安全检查

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

 

void
main()

{

   
//如果想实现在html中也显示,需要加上下面两句

   
printf("Content-type:text/html\n\n");

   
//通过下面的方式实现查询环境变量的字符串

   
printf("%s<br/><br/>",
getenv("QUERY_STRING"));

   
char
szPost[256] = { 0 };

   
//获取输入

   
gets(szPost);

   
//获取输入

   
printf("%s<br/><br/>",
szPost);

   
//这一句是将指针移动到等号位置

   
char *p
= szPost + 8;

   
char *p1
= strchr(szPost,"&");

   
*p1 =
'\0';

 

   
char
cmd[256] = { 0 };

   
//字符串映射

   
sprintf(cmd,
"%s>1.txt",
p);

   
system(cmd);

   
FILE *pf
= fopen("1.txt",
"r");

   
//如果没有到文件末尾就继续

   
while (!feof(pf))

   
{

       
char
ch =
fgetc(pf);

       
if (ch
== '\n')

       
{

           
//换行

           
printf("<br/><br/>");

       
}

       
else

       
{

           
//打印字符

           
putchar(ch);

       
}

   
}

}

4.点击:本地Windows调试器

在文件资源管理器中打开文件,截图如下:

Debug目录如下:

5.将system.exe拷贝到Apach中的cgi-bin,将system.exe修改成system.cgi

6.重启Apache服务器,右击ApachàOpen
Apache Monitor.弹出如下界面:

7.编写以下html

<html>

   <form method="post"action="http://localhost/cgi-bin/system.cgi">

        
    <p>

                  
    <input type="text"id="command" name="command"

                                    
value="tasklist"action=""/>

                  
</p>

                  
<p>

                  
    <input type="submit"name="submit" id="submit" value="提交"/>

                  
</p>

        
</form>

</html>

 

要注意的是如果:发现网页中仍然输出有错误,这时候可能不是程序的问题,而是缓存的问题,这时候应该关闭网页,让后重新打开,这时候就可以了。

时间: 2024-10-23 02:11:21

C语言进行网站开发之cgi的相关文章

个人站长的自学网站开发之路

接触电脑是从1999年开始,那时我们学校开了电脑科,全是486的机器,从哪里在接触到了wt,五笔,dos,wps等软件.可以说是有个入门吧. 2000年,师范毕业,可是那一年起师范不包分配了,于是天天在家里玩,很郁闷的.走在大街上看到电脑培训班上面招网页制作学习,抱着无聊,好奇的心情我就参加了,在里面学习了photoshop,frontpage这两款软件,记得当时花了我七八百大洋.唉仍然还记得叔叔当时听说又要交钱的眼神,唉.从此我就进入了网页制作的世界,记得当时用这两款软件制作了偶的第一个个人网

网站开发之DIV+CSS简单布局网站入门篇(五)

        这篇文章主要介绍如何使用DIV和CSS简单布局一个网站的首页,通常将网站划分为顶部(Logo.导航条).中部(页面主要内容.左右栏目).底部(制作方介绍.超链接).这是非常基础的一篇引入性文章,采用案例的方式进行介绍的,希望对你有所帮助.运行结果如下图所示: main.html主页面代码         主要通过div进行布局的,同时<h2><a></a></h2>用户设置导航条,鼠标悬停时背景颜色切换. <html> <h

JSP网站开发之HTML入门知识及常用标记符 (一)

        最近发生的事情很多,其中一件很重要的事情就是:学生生涯的结束,教学生涯的开始.我准备下个月写一篇总结研究生生涯的文章,包括自己放弃互联网选择回家教书.找工作经历.项目和毕业设计的各种感想.很荣幸XB七月初就给了我第一次大学教学的经历,很享受很珍惜也很感触.尤其是看到学生"秀璋,你好!"的跑马灯欢迎界面.发表"终于会编程了,感觉自己好牛逼"的说说.递给我餐巾纸.和你们打球等等.         言归正传,因为学生是大二升大三的,但是却没有学过网页相关知

基于xmpp openfire smack开发之Android消息推送技术原理分析和实践[4]

前面几篇给大家系统讲解的有关xmpp openfire smack asmack相关的技术和使用,大家如果有所遗忘可以参考 基于xmpp openfire smack开发之openfire介绍和部署[1] 基于xmpp openfire smack开发之smack类库介绍和使用[2] 基于xmpp openfire smack开发之Android客户端开发[3]   顺便也一起回顾下xmpp的历程 xmpp协议起源于著名的Linux即时通讯服务服务器jabber,有时候我们会把xmpp协议也叫j

JavaScript模块化开发之SeaJS_javascript技巧

前言   SeaJS是一个遵循CommonJS规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制.使用SeaJS可以提高JavaScript代码的可读性和清晰度,解决目前JavaScript编程中普遍存在的依赖关系混乱和代码纠缠等问题,方便代码的编写和维护. SeaJS本身遵循KISS(Keep it Simple,Stupid)理念进行开发,后续的几个版本更新也都是吵着这个方向迈进. 如何使用SeaJS 下载及安装在这里不赘述了,不了解的请查询官网. 基

.NET微信开发之PC 端微信扫码注册和登录功能实现_实用技巧

一.前言 先声明一下,本文所注重点为实现思路,代码及数据库设计主要为了展现思路,如果对代码效率有着苛刻要求的项目切勿照搬. 相信做过微信开发的人授权这块都没少做过,但是一般来说我们更多的是为移动端的网站做授权,确切来说是在微信端下做的一个授权.今天遇到的一个问题是,项目支持微信端以及 PC 端,并且开放注册.要求做到无论在 PC 端注册或者是在微信端注册之后都可以在另外一个端进行登录.也就是说无论 PC 或是微信必须做到"你就是你"(通过某种方式关联). 二.寻找解决方案 按传统的方式

Android开发之ProgressBar字体随着进度条的加载而滚动

在网上翻阅了很多关于ProgressBar滚动效果,但是始终没有找到适合项目中的这种效果,故自己写这篇文章,记录一下写作过程,给大家做一个参考.先看下最终效果效果图 我这里用的是LICEcap软件录制的gif图,效果有点掉帧,哪位仁兄有比较好的录制gif的软件烦请相告,小弟在此先行谢过. 首先看下xml代码,只有两个系统控件,一个TextView和一个ProgressBar,Button只是为了方便触发进度条的效果,实际项目中可以根据需求来做.首先看下xml中的代码: <?xml version

php开发之cookie

cookie是一种在浏览器远端存储数据并以此来跟踪和识别用户的机制.简单的说,cookie是web服务器暂时存储在用户硬盘上的一个文件夹,并随时被web浏览器读取.当用户再次访问web网站的时候,网站通过获取cookie记录用户的特定访问信息(如:上次访问的位置,花费的时间,用户名和密码) ,从而迅速做出相应,比如不需要用户输入密码就可以登录. 文本文件的格式如下:用户名@网站地址[数字].txtcookie 的功能主要有以下几个方面: 1,记录访客的某些信息.如可以利用cookie记录用户的访

ASP.NET移动开发之SelectionList控件

asp.net|select|控件 正如前面提及的那样,SelectionList控件适用于呈现较短列表的数据项.尽管它不具备对长列表的分页显示功能,但是它的呈现形式是丰富多样的.只要设备浏览器支持,SelectionList控件可以以下拉列表.单项按钮.多选按钮和复选框等众多形式存在. SelectionList控件的列表中只有一个可视的数据项,其它的数据项只能以隐藏值的形式与可视的数据项进行关联.要在服务器控件语法中指定隐藏值,可以在<Item>元素中使用Value属性,并且将Value属