跳至內容
MasterDragon
使用者工具
登入
網站工具
搜尋
工具
顯示頁面
舊版
反向連結
最近更新
多媒體管理器
網站地圖
登入
>
最近更新
多媒體管理器
網站地圖
足跡:
•
dokuwiki
program:shellscript:cgi_example
本頁是唯讀的,您可以看到原始碼,但不能更動它。您如果覺得它不應被鎖上,請詢問管理員。
===== 設定 Content-Type ===== 記得, 一定要空一行 <code bash> echo "Content-Type: text/html; charset=utf-8" echo "" </code> ===== Query String ===== 直接使用 ${QUERY_STRING}即可取得 url? 後的字串 ===== 環境變數 ===== 直接 call linux env 可取得所有的環境變數 <code bash> echo "Content-Type: text/html; charset=utf-8" echo "" /usr/bin/env </code> HTML 頁面上的結果: <code bash> GATEWAY_INTERFACE=CGI/1.1 REMOTE_ADDR=192.168.100.25 QUERY_STRING=/Music%2F2013-05-19%20%E6%B1%9F%E8%95%99%20-%20%E9%81%A0%E8%B5%B0%E9%AB%98%E9%A3%9B%2F01.%E9%81%A0%E8%B5%B0%E9%AB%98%E9%A3%9B.mp3&1379934788862 REMOTE_PORT=1970 DOCUMENT_ROOT=/etc_ro/www HTTP_USER_AGENT=Mozilla/5.0 (Windows NT 6.1; rv:23.0) Gecko/20100101 Firefox/23.0 SERVER_SIGNATURE= HTTP_ACCEPT=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 SCRIPT_FILENAME=/etc_ro/www/cgi-bin/get/getFile.cgi HTTP_HOST=192.168.100.208 REQUEST_URI=/cgi-bin/get/getFile.cgi?/Music%2F2013-05-19%20%E6%B1%9F%E8%95%99%20-%20%E9%81%A0%E8%B5%B0%E9%AB%98%E9%A3%9B%2F01.%E9%81%A0%E8%B5%B0%E9%AB%98%E9%A3%9B.mp3&1379934788862 SERVER_SOFTWARE=Apache/2.2.13 (Unix) HTTP_CONNECTION=keep-alive PATH=/sbin:/usr/sbin:/bin:/usr/bin HTTP_ACCEPT_LANGUAGE=zh-tw,zh;q=0.8,en-us;q=0.5,en;q=0.3 HTTP_REFERER=http://192.168.100.208/explorer/explorer.htm SERVER_PROTOCOL=HTTP/1.1 HTTP_ACCEPT_ENCODING=gzip, deflate REQUEST_METHOD=GET SERVER_ADMIN=you@example.com SERVER_ADDR=192.168.100.208 PWD=/media/sdc1/WebUI2/cgi-bin/get SERVER_PORT=80 SCRIPT_NAME=/cgi-bin/get/getFile.cgi SERVER_NAME=192.168.100.208 </code> 上面的變數均可直接使用,如: <code bash> echo "Content-Type: text/html; charset=utf-8" echo "" echo "<br>QUERY_STRING=${QUERY_STRING}<br>" echo "<br>REQUEST_URI=${REQUEST_URI}<br>" echo "<br>HTTP_USER_AGENT=${HTTP_USER_AGENT}<br>" echo "<br>REMOTE_ADDR=${REMOTE_ADDR}<br>" ... </code> HTML 頁面上的結果: <code bash> QUERY_STRING=/Music%2F2013-05-19%20%E6%B1%9F%E8%95%99%20-%20%E9%81%A0%E8%B5%B0%E9%AB%98%E9%A3%9B%2F01.%E9%81%A0%E8%B5%B0%E9%AB%98%E9%A3%9B.mp3&1379934788862 REQUEST_URI=/cgi-bin/get/getFile.cgi?/Music%2F2013-05-19%20%E6%B1%9F%E8%95%99%20-%20%E9%81%A0%E8%B5%B0%E9%AB%98%E9%A3%9B%2F01.%E9%81%A0%E8%B5%B0%E9%AB%98%E9%A3%9B.mp3&1379934788862 HTTP_USER_AGENT=Mozilla/5.0 (Windows NT 6.1; rv:23.0) Gecko/20100101 Firefox/23.0 REMOTE_ADDR=192.168.100.25 </code> ===== URL Decode===== 將 %20... 轉為 \x20... <code bash> # decodeURI echo "url: ${QUERY_STRING}<br>" echo "decode-1: $(echo ${QUERY_STRING} | sed 's/\\/\\\\/g;s/\(%\)\([0-9a-fA-F][0-9a-fA-F]\)/\\x\2/g')<br>" echo "decode-2: $(echo ${QUERY_STRING} | sed 'y/+/ /; s/%/\\x/g')<br>" </code> echo 加上 -e 才會把 \x20... 顯示為 ' '... (UTF-8編碼) 完整的code <code bash> filepath=`echo ${QUERY_STRING} | cut -d'&' -f1` # decodeURI filepath="$(echo ${filepath} | sed 'y/+/ /; s/%/\\x/g')" # 將結果重新指定給 filepath (加 -e 為把 \x20... 顯示為 ' '...) filepath=$(echo -e "${filepath}") </code>
program/shellscript/cgi_example.txt
· 上一次變更: 2019/11/16 08:12 由
127.0.0.1
頁面工具
顯示頁面
舊版
反向連結
回到頁頂