CGI 带有参数的脚本

来源:互联网 发布:mac重装系统保留文件 编辑:程序博客网 时间:2024/05/12 16:42

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

<A HREF="/cgi-bin/myscript?arg1+arg2+arg3">run my script</A>
当服务器接收到这个请求,它传递 arg1, arg2, 和 arg3 参数给脚本. 你然后能在脚本中使用这些参数.

这个方法有时叫查询, 因为早期它用在搜索功能中.


cgi主要内容如下:

struct dirent *dirp;

DIR *dir;

if((dir = opendir("../music")) == NULL)

{

    perror("fail to opendir music");

     return -1;

}

else

    while((dirp = readdir(dir)) != NULL)

    {

      if(dirp->d_name[0] == '.') continue;

      fprintf(cgiOut,"<a href=\"myscript?%s\"></a>",dirp->name);

     }

...........................................................

myscript内容如下:


#!/bin/sh

echo "Content-type: text/html"

echo

echo "<HTML><HEAD>"
echo "<TITLE>Are you here?</TITLE>"

echo "<HEAD><BODY>"

ison=`ls /www/music`
cd /www/music
for file in $ison
do
    if [ $1 = $file ]
    then
        madplay $1
        exit
else
    echo "$1 no found"
fi
done

echo "It is over"



echo "</BODY></HTML>"



这样我的shell脚本会根据cgi传的参数即目录music下的歌曲的名字,去播放我想要播放的歌曲

一定要注意各个文件的路径