不错的一篇学习CGI脚本(脚本)

2019-10-01 15:43:31于海丽
在上面的例子中, 下一步应该是测试我是否登陆,在这里我们用参数${1}代替我的名字lemay,  ${1}作为第一个参数, ${2}作为第二个, ${3}作为第三个.
ison='who | grep "${1}"'


剩下的所有修改如下:

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


        echo "<P>$1 is logged in"


else


        echo "<P>$1 isn't logged in"


fi
echo "</BODY></HTML>"
好了,让我们修改HTML页中的连接吧!原来是这样:
<A HREF="http://www.lne.com/cgi-bin/pinglaura">Is Laura Logged in?</A>
修改为通用查询功能后是这样,比如查询名字叫john的人是否登陆:
<A HREF="http://www.lne.com/cgi-bin/pinggeneric?john">Is John Logged in?</A>
在你的服务器上试试,看是否有结果。

传递其他信息给脚本

有第二种方法传递信息给CGI脚本. 它叫作路径信息path information 用作那些在脚本调用是不用变更的参数, 象一个临时文件名或调用脚本自己的文件名. 正如你看到的,在上面的例子问号后面的参数是因用户表单的输入而改变的. 路径信息Path info用作其他信息传递给脚本,实际上,你可以用它作任何事情.

路径信息Path information是一种不象通常参数脚本那样频繁传递信息的方法. 路径Path information通常是指Web服务器上的那些比如配置文件、临时文件或者被脚本因问题调用的文件等等此类文件.  

看下面一个路径信息path information例子, :

http://myhost/cgi-bin/myscript/remaining_path_info?arg1+arg2
当脚本运行时,在路径中的信息将被放置于环境参数PATH_INFO. 你能在你的脚本内容中使用这些信息.

比如说, 让我们假设你在多页上已有多个连接到同一个脚本. 你能用这个路径信息显示那个有连接的HTML文件名. 这样, 在你完成处理你的脚本之后, 当你发回一个HTML文件时, 你能在这个文件里包含一个连接,发回用户一开始那个页。

你会在下一章节学到更多路径信息:有用的表单和脚本. 待后来登出

创建一个特殊的脚本输出

现在你已经学习了诸如输出数据 一般地HTML数据 发给浏览器解释显示的数据. 但是如果你不想把脚本结果作为一个数据流形式发回浏览器,而是想把一个存在的页发回,怎么办? 如果你只是要脚本做一些事而不让任何结果回答给浏览器,怎么办?

不用怕, 这里开始解释这些情况.

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

CGI输出不是非得一个数据流,有时可以告诉浏览器是存在服务器上的一个页,为了发出这个信息,看下面的例子:
Location: ../docs/final.html
这个Location行用作通常的输出位置,也就是说,如果你用了Location, 你就不必再用象Content-type这样的数据输出(实际上,你也不能). 正如Content-type, 你也必须在这一行后面跟一个空行.