`
shencanfeng
  • 浏览: 26055 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

与客户端通信的CGI程序

阅读更多
/*接收前台传过来的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;
}
分享到:
评论

相关推荐

    c语言编写的cgi程序

    1. **CGI原理**:CGI程序充当了Web服务器和客户端之间的一个桥梁,当用户通过浏览器发送HTTP请求时,CGI程序会解析这些请求并生成相应的响应。在GET方式下,参数会被编码在URL中。 2. **C语言编程**:C语言是一种...

    CGI程序设计自学通

    - 这种方式使得CGI程序能与Web服务器进行无状态通信。 6. **安全性与性能** - CGI的安全问题:由于每个请求都会启动新的进程,可能导致资源浪费和安全漏洞。防范措施包括正确处理用户输入、限制CGI程序权限等。 ...

    c写cgi与socket通信.pdf

    总结,文档涉及的CGI与socket通信知识点广泛,适用于了解如何在C语言环境下实现客户端与服务器之间的基本网络通信,并编写能够处理HTTP请求的CGI程序。这要求程序员对网络协议、套接字编程以及HTTP协议有一定的理解...

    与读卡器连接的一个cgi程序

    总的来说,"与读卡器连接的一个cgi程序"涉及到网络编程、串口通信、Web服务器管理、安全编程等多个IT领域的知识,是将硬件设备与Web应用相结合的一个实例。理解并实现这样的程序,有助于提升跨领域技术综合运用的...

    一套经典的网页加CGI程序

    本套经典程序结合了CGI与AJAX(Asynchronous JavaScript and XML,异步JavaScript和XML),实现了网页与服务器之间的高效通信。 首先,CGI是Web服务器与应用程序之间的一个标准接口,它允许服务器调用外部程序来...

    html和cgi程序

    CGI程序可能需要与开发板上的硬件接口通信,比如通过GPIO(General Purpose Input/Output)接口。 3. **设置开发板时间**:用户可能会看到一个表单,可以输入新的日期和时间。提交表单后,CGI程序会接收到这些值,...

    用C语言进行CGI程序设计

    CGI(Common Gateway Interface,公用网关接口)是一种在客户端浏览器和Web服务器之间通信的标准,使得Web服务器能够与外部应用程序交互,从而扩展其功能。在本课程设计中,使用C语言编写CGI程序是为了实现一个特定...

    学习用c、c++写cgi程序

    - **通信方式**: 当客户端通过Web浏览器提交数据给Web服务器时,Web服务器根据提交方式的不同(GET或POST)将数据转发给CGI程序。CGI程序处理完毕后,通过标准输出将结果返回给Web服务器,后者再将其发送给客户端。 ...

    用C语言编写CGI程序

    通过CGI,Web服务器能够调用外部程序(即CGI程序),以处理客户端请求并返回动态内容。这些程序能够接收来自Web浏览器的数据,执行必要的处理后,再将结果发送回浏览器。CGI程序可以由多种编程语言编写,包括Shell...

    CGI程序中的环境变量详解.doc

    CGI(Common Gateway Interface)是一种标准,用于定义Web服务器和外部应用程序(CGI程序)之间的通信接口。通过这种方式,Web服务器能够动态生成网页内容,从而实现更为丰富的交互式功能。在CGI程序执行过程中,Web...

    用C++编写的CGI计数器程序

    CGI是一种标准,允许Web服务器执行客户端请求的外部程序,从而扩展了静态HTML页面的功能,使其能够动态生成内容。在这个特定的案例中,这个计数器程序被设计用于跟踪和显示网站访问者数量,为网站管理员提供访问统计...

    CGI聊天室程序

    9. **部署与配置**:CGI程序需要正确配置在Web服务器上,比如Apache或Nginx,确保服务器知道如何调用CGI脚本,并正确地处理其输出。 10. **用户界面**:良好的用户体验是聊天室成功的关键。界面应该直观易用,允许...

    cgi.rar_c cgi_cgi_cgi-web_cgi-webserver_网页 cgi

    4. CGI与Web服务器的交互:CGI程序通过标准输入(stdin)、标准输出(stdout)和标准错误(stderr)与Web服务器进行通信。Web服务器将用户的HTTP请求传递给CGI程序的标准输入,CGI程序将处理结果输出到标准输出,Web...

    精通CGI编程 CGI

    4. 安全性:由于CGI程序直接与用户交互,因此必须考虑安全性,避免SQL注入、跨站脚本攻击等常见的安全风险。 5. 性能优化:CGI每次请求都会启动新的进程,这可能导致性能瓶颈。为了提高效率,可以使用FastCGI、mod_...

    CGI邮件程序源码(3KB)

    8. **安全性**:由于CGI程序直接与Web服务器交互,它们必须谨慎处理用户输入,防止SQL注入、跨站脚本攻击(XSS)等安全问题。 9. **资源管理**:CGI程序运行时,需要有效地管理内存和文件句柄,避免资源泄露,确保...

    cgi信息港聊天程序和留言板二套

    通过学习和使用这些程序,开发者不仅可以了解CGI的基本工作原理,还能深入理解Web服务器与动态内容生成之间的交互,以及如何实现用户间的实时通信。同时,这也是对服务器端编程、数据库管理和网络安全实践的良好锻炼...

    CGI资源详解

    CGI的功能是绝大多数的CGI程序被用来解释处理杰自表单的输入信息,并在服务器产生相应的处理,或将相应的信息反馈给浏览器。 CGI的运行环境是UNIX操作系统上CERN或NCSA格式的服务器上运行。在其他操作系统(如:...

    CGI编程完全手册(个人学习笔记

    - **服务器与CGI程序通信**:通过标准输入输出及环境变量。 - **通信步骤**: 1. **URL指向应用程序**:客户端请求访问特定的URL,该URL指向服务器上的某个CGI程序。 2. **准备执行程序**:服务器根据请求准备执行...

Global site tag (gtag.js) - Google Analytics