CGI脚本练习

CGI脚本练习

html初始如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>test</title>
</head>
<body>
    Hello World.
</body>
</html>

点击链接,执行cgi脚本

链接,指向cgi脚本程序

<A HREF="http://192.168.3.16/cgi-bin/date">Display the Date</A>

在这里插入图片描述
在这里插入图片描述

判断用户登录

<A HREF="http://192.168.3.16/cgi-bin/pinglaura">Is Laura Logged in?</A>

pinglaura脚本:

#!/bin/bash
echo -e "Content-type: text/html"
echo
echo -e "<HTML><HEAD>"
echo -e "<TITLE>Is Laura There?</TITLE>"
echo -e "</HEAD><BODY>"
ison=`who | grep Laura`
if [ ! -z "$ison" ]; then
        echo -e "<P>Laura is logged in"
else
        echo -e "<P>Laura isn't logged in"
fi
echo -e "</BODY></HTML>"

在这里插入图片描述
在这里插入图片描述

带参数脚本

为了传递一个参数给脚本,可以在URL中使用 (?) 插入脚本名词和参数之间, 用加号(+) 表示每个单一的参数, 如:

<A HREF="http://192.168.3.16/cgi-bin/pinggeneric?john">Is John Logged in?</A>

也可以直接修改路径信息

http://myhost/cgi-bin/myscript/remaining_path_info?arg1+arg2

pinggeneric脚本:

#!/bin/bash
echo -e "Content-type: text/html"
echo
echo -e "<HTML><HEAD>"
echo -e "<TITLE>Is Laura There?</TITLE>"
echo -e "</HEAD><BODY>"
ison=`who | grep "${1}"`
if [ ! -z "$ison" ]; then
        echo -e "<P>$1 is logged in"
else
        echo -e "<P>$1 isn't logged in"
fi
echo -e "</BODY></HTML>"

创建一个特殊的脚本输出

用调用另一个文本作为响应

CGI输出不是非得一个数据流,有时可以告诉浏览器是存在服务器上的一个页

Location: ../docs/final.html

不能Content-type 和 Location两个输出同时使用。

No Response

只是要从用户那儿收集点信息,什么都不改变。

echo Status: 204 No Response
echo

表单

大多数表单有两个部分: HTML的表单格式;处理表单数据的CGI脚本. 这个CGI脚本使用标签属性调用

表单形式和表单脚本
<FORM ACTION="http://http://192.168.3.16/cgi-bin/processorscript">
GET 和 POST

表单从浏览器发给服务器有两种方法. GET 和 POST。
上面谈论的方法,实际是GET,它将数据打包放置在环境变量QUERY_STRING中作为URL整体的一部分传递给服务器。

URL 编码
theName=Ichabod+Crane&gender=male&status=missing&headless=yes

因为表单输入是用这个URL编码传递给你的脚本的,在你用这些参数之前必须解码,因为解码是个很普遍的工作,可以有很多工具做这个工作 . 你没有必要自己写这个解码程序。
uncgi的解码程序, 你可以从http://www.hyperion.com/~koreth/uncgi.html. 得到原码,安装在你自己的cgi-bin目录下。

表单脚本(未测试成功)

<FORM METHOD=POST ACTION="http://192.168.3.16/cgi-bin/form-name">

</FORM>
#!/bin/bash
echo -e "Content-type: text/html"
echo
echo -e "<HTML><HEAD>"
echo -e "<TITLE>Hello</TITLE>"
echo -e "</HEAD><BODY>"
echo -e "<P>"
if [ ! -z "$WWW_theName" ]; then
    echo -e "Hello, "
    echo -e $WWW_theName
else
    echo -e  "You don't have a name?"
fi
echo "</P><P><A HREF="../index.html">Go Back</A></P>"
echo "</BODY></HTML>"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值