zoukankan      html  css  js  c++  java
  • CGI编程学习3 加法计算

    现象:

    在表单中输入两个数据.调用CGI返回两个数据相加的和.

    下面我们看一下:htm部分代码

    <html>
    <head>
    <title>CGI:Test add</title>
    </head>

    <body>
    <form action="/cgi-bin/demo2.cgi">
    <p>
    <h1>请输入两个数据:
    <input type="text" name="m" size="5">
    +
    <input type="text" name="n" size="5">
    <br>

    <input type="submit" value="确定">
    </h1>
    </p>
    </form>

    <body>


    </html>

    要点:

    <input type="text" name="m" size="5">

    这里是设定input类型为文本域,变量名为m, size=5表示文本域的显示宽度为5,太长就不美观了.

    界面如下:

    CGI程序:

    #include <stdio.h>
    #include
    <stdlib.h>

    int main(void)
    {
    char *data;
    int a=0, b=0;
    data
    = getenv("QUERY_STRING");
    printf(
    "%s\r\n\r\n","Content-Type:text/html");
    printf(
    "<html>\n<TITLE>CGI2:相加结果</TITLE><br>\n");
    sscanf(data,
    "m=%d&n=%d",&a,&b);
    printf(
    "<H1>相加结果为:%d</H1>",a+b);
    return 0;
    }

    要点:

    1.data = getenv("QUERY_STRING");

    通过getenv函数获得环境变量的指针.

    2.sscanf(data, "m=%d&n=%d",&a,&b);

    格式化字符串输入.

    下面,看一下我们点击"确定"按钮后,浏览器的地址发生了什么变化.

    http://192.168.220.199/cgi-bin/demoadd.cgi?m=4&n=5

    这里的m=4&n=5和sscanf中形式是一样的.他就是QUERY_STRING环境变量中的值.

    所以,我们在html代码中的,m,n的位置不能弄反,否则不会出现现象.

    注意:

      1.CGI和HTML沟通是通过环境变量来实现的.所以只要能获得环境变量的语言都可以用来写CGI程序.

  • 相关阅读:
    yii2框架安装
    RabbitMq简单应用
    PHP扩展开发--编写一个helloWorld扩展
    node 笔记整理
    js 笔记整理
    JavaScript event loop事件循环 macrotask与microtask
    移动端 缩放插件备份
    vue 笔记备份
    echart 打开新世界的大门
    canvas 笔记整理
  • 原文地址:https://www.cnblogs.com/hnrainll/p/2068225.html
Copyright © 2011-2022 走看看