/*接收前台传过来的xml数据*/
ULONG Xml_Get(char **ppChXml)
{
CHAR *pcEnvVal;
static CHAR acPostStr[60000];
ULONG ulPostLen = 0;
pcEnvVal = getenv("REQUEST_METHOD");/*获取服务器与CGI的传输方式(post/get)*/
if ( pcEnvVal == NULL )
{
ShowInternalError(-1);
return IPPBX_FAILED;/*找不到环境变量*/
}
/* only process "POST" mathed */
if ( strcmp(pcEnvVal,"POST") ==0 )//post方法
{
memset(acPostStr, 0, sizeof(acPostStr));
if ( IPPBX_OK != process_post(acPostStr, 60000, &ulPostLen) )
{
ShowInternalError(-1);
return IPPBX_FAILED;
}
}
*ppChXml = acPostStr;
return IPPBX_OK;
}
/*接收处理post方法传来的数据*/
ULONG process_post(char *pcPostStr, ULONG ulMaxLen, ULONG *pulLen)
{
USHORT usLength;
int iCL;
char *pcEnv;
pcEnv = getenv("CONTENT_LENGTH");/*获得有效信息长度*/
if ( pcEnv )
{
iCL = atoi(pcEnv);
if ( iCL > (int)ulMaxLen )
{
fprintf(stderr," post buffer over flow!");/*stderr为处理错误信息*/
return IPPBX_FAILED;
}
}
usLength = 0;
while ( !feof(stdin) )/*stdin为定义的文件流,读取stdin*/
{
if ( usLength >= ulMaxLen )
{
fprintf(stderr," post buffer too small!");
return IPPBX_FAILED;
}
pcPostStr[usLength++] = (char)fgetc(stdin);//标准输入读取一定数据
}
/*The last char is illegal*/
usLength--;
pcPostStr[usLength] = 0;
*pulLen = usLength;
return IPPBX_OK;
}
分享到:
相关推荐
1. **CGI原理**:CGI程序充当了Web服务器和客户端之间的一个桥梁,当用户通过浏览器发送HTTP请求时,CGI程序会解析这些请求并生成相应的响应。在GET方式下,参数会被编码在URL中。 2. **C语言编程**:C语言是一种...
- 这种方式使得CGI程序能与Web服务器进行无状态通信。 6. **安全性与性能** - CGI的安全问题:由于每个请求都会启动新的进程,可能导致资源浪费和安全漏洞。防范措施包括正确处理用户输入、限制CGI程序权限等。 ...
总结,文档涉及的CGI与socket通信知识点广泛,适用于了解如何在C语言环境下实现客户端与服务器之间的基本网络通信,并编写能够处理HTTP请求的CGI程序。这要求程序员对网络协议、套接字编程以及HTTP协议有一定的理解...
总的来说,"与读卡器连接的一个cgi程序"涉及到网络编程、串口通信、Web服务器管理、安全编程等多个IT领域的知识,是将硬件设备与Web应用相结合的一个实例。理解并实现这样的程序,有助于提升跨领域技术综合运用的...
本套经典程序结合了CGI与AJAX(Asynchronous JavaScript and XML,异步JavaScript和XML),实现了网页与服务器之间的高效通信。 首先,CGI是Web服务器与应用程序之间的一个标准接口,它允许服务器调用外部程序来...
CGI程序可能需要与开发板上的硬件接口通信,比如通过GPIO(General Purpose Input/Output)接口。 3. **设置开发板时间**:用户可能会看到一个表单,可以输入新的日期和时间。提交表单后,CGI程序会接收到这些值,...
CGI(Common Gateway Interface,公用网关接口)是一种在客户端浏览器和Web服务器之间通信的标准,使得Web服务器能够与外部应用程序交互,从而扩展其功能。在本课程设计中,使用C语言编写CGI程序是为了实现一个特定...
- **通信方式**: 当客户端通过Web浏览器提交数据给Web服务器时,Web服务器根据提交方式的不同(GET或POST)将数据转发给CGI程序。CGI程序处理完毕后,通过标准输出将结果返回给Web服务器,后者再将其发送给客户端。 ...
通过CGI,Web服务器能够调用外部程序(即CGI程序),以处理客户端请求并返回动态内容。这些程序能够接收来自Web浏览器的数据,执行必要的处理后,再将结果发送回浏览器。CGI程序可以由多种编程语言编写,包括Shell...
CGI(Common Gateway Interface)是一种标准,用于定义Web服务器和外部应用程序(CGI程序)之间的通信接口。通过这种方式,Web服务器能够动态生成网页内容,从而实现更为丰富的交互式功能。在CGI程序执行过程中,Web...
CGI是一种标准,允许Web服务器执行客户端请求的外部程序,从而扩展了静态HTML页面的功能,使其能够动态生成内容。在这个特定的案例中,这个计数器程序被设计用于跟踪和显示网站访问者数量,为网站管理员提供访问统计...
9. **部署与配置**:CGI程序需要正确配置在Web服务器上,比如Apache或Nginx,确保服务器知道如何调用CGI脚本,并正确地处理其输出。 10. **用户界面**:良好的用户体验是聊天室成功的关键。界面应该直观易用,允许...
4. CGI与Web服务器的交互:CGI程序通过标准输入(stdin)、标准输出(stdout)和标准错误(stderr)与Web服务器进行通信。Web服务器将用户的HTTP请求传递给CGI程序的标准输入,CGI程序将处理结果输出到标准输出,Web...
4. 安全性:由于CGI程序直接与用户交互,因此必须考虑安全性,避免SQL注入、跨站脚本攻击等常见的安全风险。 5. 性能优化:CGI每次请求都会启动新的进程,这可能导致性能瓶颈。为了提高效率,可以使用FastCGI、mod_...
8. **安全性**:由于CGI程序直接与Web服务器交互,它们必须谨慎处理用户输入,防止SQL注入、跨站脚本攻击(XSS)等安全问题。 9. **资源管理**:CGI程序运行时,需要有效地管理内存和文件句柄,避免资源泄露,确保...
通过学习和使用这些程序,开发者不仅可以了解CGI的基本工作原理,还能深入理解Web服务器与动态内容生成之间的交互,以及如何实现用户间的实时通信。同时,这也是对服务器端编程、数据库管理和网络安全实践的良好锻炼...
CGI的功能是绝大多数的CGI程序被用来解释处理杰自表单的输入信息,并在服务器产生相应的处理,或将相应的信息反馈给浏览器。 CGI的运行环境是UNIX操作系统上CERN或NCSA格式的服务器上运行。在其他操作系统(如:...
- **服务器与CGI程序通信**:通过标准输入输出及环境变量。 - **通信步骤**: 1. **URL指向应用程序**:客户端请求访问特定的URL,该URL指向服务器上的某个CGI程序。 2. **准备执行程序**:服务器根据请求准备执行...