Get,Post,Putで渡されたパラメータを取得するBourne ShellによるCGI
設定ファイルはcgi.configに記入しておく。
受け取るパラメータは18~19行目のように取得する。
Apacheからのデータは以下の環境変数を介して受け取る。
- REQUEST_METHOD:GET,PUT,POST,DELETEが入る
- QUERY_STRING:GETの場合のパラメータ
- CONTENT_LENGTH:PUTの場合のパラメータの長さ
31行目はヒアドキュメント内でのコマンド例として無駄にechoしています。
#! /bin/sh BASE_DIR=`dirname $0` BASE_DIR=`cd ${BASE_DIR} && pwd` # Change to full path BASENAME=`basename $0 | sed -e "s/\.[^.]*$//"` #Except extension CONFIG="${BASE_DIR}/cgi.config" if [ ! -f "${CONFIG}" ]; then echo "Content-type: text/html" echo "" echo "<html><body>${CONFIG} is not found.</body></html>" exit fi . "${CONFIG}" PARMS=`echo ${QUERY_STRING} | tr \& "\n"` if [ "${REQUEST_METHOD}" = "POST" -o "${REQUEST_METHOD}" = "PUT" ]; then PARMS=`dd bs=${CONTENT_LENGTH} | tr \& "\n"` fi USER=`echo "${PARMS}" | grep user | cut -d= -f 2 | nkf --url-input` DATE=`echo "${PARMS}" | grep date | cut -d= -f 2 | nkf --url-input` cat <<END Content-type: text/html <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>${CONFIG_TITL}E</title> </head> <body> <div>Input parameters <div>`echo "${PARMS}"`</div> <div>User:${USER}</div> <div>Date:${DATE}</div> </body> </html> END
定義ファイルcgi.configには以下のように設定。
CONFIG_TITLE="CGI Sheel Test"
0 件のコメント:
コメントを投稿