CGI 带有参数的脚本
为了传递一个参数给脚本,可以在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下的歌曲的名字,去播放我想要播放的歌曲
一定要注意各个文件的路径