shell 写的CGI脚本的不能正常运行的问题

来源:互联网 发布:淘宝直播在线观看 编辑:程序博客网 时间:2024/06/03 15:06

http://blog.csdn.net/zg_hover/archive/2006/11/17/1389650.aspx

1、由于头部写错了

(1)头部必须加上:

echo "Content-type: text/html"   的下面是跟正确的html网页格式,另外记住,此代码后要加一个空格,要不然头部就会错,应为shell是依次输出的。

(2)echo "Content-type: text/plain" 后面可以是任意格式,但也是要记住,其后面必须要有换行符,或是空格和要显示的内容隔开

2、没有赋予脚本正确的权限

用shell写的脚本正确的权限应该是755 即: -rwxr-xr-x 

 

一个例程

#!/bin/bash

#echo "Location: /test1.htm" echo "content-type:text/html" echo ""

function ParamParse() {

   LINE=`echo $1 | sed 's/&/ /g'`   

for LOOP in $LINE   

do       NAME=`echo $LOOP | sed 's/=/ /g' | awk '{print $1}'`

      TYPE=`echo $LOOP | sed 's/=/ /g' | awk '{print $2}'|/ 

      sed -e 's/%/(/)////x/g' | sed 's/+/ /g'`       #printf "${NAME}=${TYPE}/n"

       VARS=`printf "${NAME}=${TYPE}/n"`

       #echo $VARS

       eval `printf $VARS`

   done

}

#echo "REQUEST_METHOD=$REQUEST_METHOD"

 if [ "$REQUEST_METHOD" = "POST" ];

then    QUERY_STRING=`cat -` fi

#echo $QUERY_STRING

 ParamParse $QUERY_STRING

#这是把传递的参数已经解析出来了,可以通过$参数名来使用,例如有一个input的name=usrname,

#则其value为$usrname

echo "<br>name=$usrname;password=$pwd<br>"

原创粉丝点击