首页 > WEB扩展 > CGI > 正文

CGI第9课:CGI练习1

2020-12-15 18:55:05
字体:
来源:转载
供稿:网友
T这是个简单的输出日期的简单脚本,这个CGI脚本还检查看看我是否已经登陆到我的Web服务器,并且报告发现了什么(如在图4).

图4. 脚本的结果

这是个很简单的例子, 他能这样备调用:
<A HREF="http://www.VeVb.com/cgi-bin/pinglaura">Is Laura Logged in?</A>

这是没有输入的脚本,它只运行并且返回数据.

根据前面的阐述,这个脚本内容是这样::
#!/bin/sh
 

echo Content-type: text/html
 

echo "<HTML><HEAD>"
 

echo "<TITLE>Is Laura There?</TITLE>"
 

echo "</HEAD><BODY>"
为了测试我是否已经登陆系统,用who命令(我的登陆名假设为lemay), 储存结果在变量ison中. 如果我登陆, 变量ison将有些内容,否则则是空的.
ison='who | grep lemay'

试验结果及返回相应提示的脚本是这样:
if [ ! -z "$ison" ]; then

        echo "<P>Laura is logged in."</P>

else

        echo "<P>Laura isn't logged in."</P>

fi

最后关闭HTML:
echo "</BODY></HTML>"

现在你通过从命令行运行他,测试一下,你将得到一个结果说我未登陆你的系统,当然不可能的,他的输出是这样的:
Content-type: text/html

<HTML><HEAD>

<TITLE>Are You There?</TITLE>

</HEAD><BODY>

<P>Laura is not logged in.

</BODY></HTML>

这是输出的一个HTML文本,这样你的浏览器能正常显示他,因为他是个HTML文件。

现在将他copy到你的服务器的cgi-bin目录下,去执行,如果你不能达到CGI-bin目录,你必须询问你的服务器管理者,你不能理所当然地自己建立个CGI-bin目录,那没用的。

这个例子完整的脚本如下:
#!/bin/sh

echo "Content-type: text/html"

echo

echo "<HTML><HEAD>"

echo "<TITLE>Is Laura There?</TITLE>"

echo "</HEAD><BODY>"

ison='who | grep lemay'

if [ ! -z "$ison" ]; then

        echo "<P>Laura is logged in"

else

        echo "<P>Laura isn't logged in"

fi

echo "</BODY></HTML>"

带有参数的脚本

为了传递一个参数给脚本,可以在URL中使用 (?) 插入脚本名词和参数之间, 用加号(+) 表示每个单一的参数, 如:
<A HREF="/cgi-bin/myscript?arg1+arg2+arg3">run my script</A>

当服务器接收到这个请求,它传递 arg1, arg2, 和 arg3 参数给脚本. 你然后能在脚本中使用这些参数.
这个方法有时叫查询, 因为早期它用在搜索功能中.
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选