zoukankan      html  css  js  c++  java
  • shell脚本--CGI获取请求数据(GET / POST)

      Case 1: 获取地址栏传递的参数(即通过GET方式)

      CGI的环境变量中有个QUERY_STRING,可以获取地址栏传递的参数,该参数可以是手动加上的,也可以是通过表单的get方式提交的,比如下面的例子:

    #!/bin/bash
    #index.cgi
    
    echo "Content-Type:text/html;charset=utf-8"
    echo
    
    cat << AAA
        <html>
        <head>
            <title>hello world</title>
        </head>
        <body>
        <form method="get">
            data:<input type="text" name="data">
            <input type="submit" value="submit">
        </form>
    AAA
    echo $QUERY_STRING
    cat << AAA
        </body>
        </html>
    AAA
    

      浏览器运行结果如下:

      

      Case 2:获取post方式提交的数据

      因为环境变量QUERY_STRING只能获取地址栏和get方式提交的数据,而不能获取post的数据,但是可以通过REQUEST_METHOD(即请求方式)来判断是否为post,如果为post方式,那么就直接接收数据即可,接收数据使用tee,或者cat即可。

    #!/bin/bash
    #index.cgi
    
    echo "Content-Type:text/html;charset=utf-8"
    echo
    
    cat << AAA
        <html>
        <head>
            <title>hello world</title>
        </head>
        <body>
        <form method="post">
            编号:<input type="text" name="id"><br>
            姓名:<input type="text" name="uname"><br>
            <input type="submit">
        </form>
    AAA
    if [ $REQUEST_METHOD = "POST" ];then
        #使用cat或者tee接受post的方法
        #query_string=`cat`
        query_string=`tee`
    fi
    echo $query_string
    cat << AAA
        </body>
        </html>
    AAA
    

      运行结果如下:

      可以发现:上面两种方法提交的数据,只要中间有空格,那么就会被替换为+号,接收到的数据和php程序接收到的数据格式不同,需要我们自己运用awk或则sed来对收到的数据进行字符替换、分割,最终得到便于使用的格式

  • 相关阅读:
    android应用中增加权限判断
    android接收短信——framework处理流程(android 5.1)
    Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例
    Java 集合系列02之 Collection架构
    Java 集合系列01之 总体框架
    远离职场中的舒适区
    中国式父母,到底缺少些什么?
    孙悟空:越风光,越可怜
    Android学习—RecyclerView的使用(2)
    Android学习—RecyclerView的使用(1)
  • 原文地址:https://www.cnblogs.com/-beyond/p/8566938.html
Copyright © 2011-2022 走看看