LINUX.ORG.RU

Сделать web-форму для поиска данных

 


0

1

Есть задача. Сделать web-форму для поиска данных. Должна исполняться команда и выводиться результат. Например, команда «grep -r „xxx“ /usr/local/rancid/var/», где xxx - то что введёт пользователь в окне ввода, затем, по нажатию кнопки, результат команды должен выводиться в текстовое окно вывода.

В чем проблема?

Решение простое как пять копеек. Если не хочешь сам все делать, смотри готовое решение в интернете или ты ждёшь пока тебе решение на блюдце принесут?

anonymous
()

Элементарно все это делается, хоть на баш-скриптах!

Вот пример моего словарика. index.html:

<html>
<meta http-equiv="Content-Type" content="text/html; charset=koi8-r">
<title>Translator</title>
    <frameset rows="40%,60%" border=0>
	<frame name="main" src="form.html" marginheight=0 marginwidth=0 scrolling=no noresize>
	<frame name="client" src="blank.html" marginheight=0 marginwidth=0 scrolling=no>
    </frameset>	
</html>
 
form.html:
<html>
<title>Dictionary</title>
<body>
<H1 align=center>English-Russian Dictionary</H1>
<br>
<hr>
<form name="main" action="/cgi-bin/dict.cgi" method="POST" target="client">
<br><b>
Please, enter the word you misunderstanding:</b>
<br><br>
<input name="word" size="50">&nbsp;&nbsp;
<br><br><br>
&nbsp;&nbsp; If you know the password, you can edit dictionary &nbsp;
<input type="password" size=10 name="pass">
<input type=submit value="Translate / Edit dictionary">
</form>
<hr>
<br>
<H4 align=right>Edward Emelianoff, 2003</H4>
</body>
blank.html:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=koi8-r">
<link rel="stylesheet" href="/style.css" type="text/css">
</head>
<body>
</body>
</html>
dict.cgi:
#!/bin/sh
addw()
{
    echo "<form  action="/cgi-bin/addaword" method=POST>\
        The translation of &nbsp;<b><input size=20 name="word" value="\"$word\""></b>&nbsp; is &nbsp;<input name="trans" size=50>" 
    echo "<input type=submit value=\"Add the word\"></form>"
}    
ud="../html/Dictionary/userdict.txt"
eval `./convert`

echo -e "Content-type: text/html\n"
cat header.txt
echo "<body>"
if [ "$word" = "" ]; then
    tr="Please, enter a word"
else
    tr=`cat $ud|grep -i " $word "`
    tr1=`cat ../html/Dictionary/Dictionary.txt|grep -i "^$word:"`
    tr2=`cat ../html/Dictionary/Dictionary.txt|grep -i "$word"`
    tr3=`cat ../html/Dictionary/kara4.dic| grep -i "$word"`
fi    

if [ "$pass" = "whatafuck" ]; then
    tmp="/tmp/dic.cgi.$$"
    cat $ud | grep -v " $word " > $tmp
    rm $ud
    cp $tmp $ud
    rm $tmp
    addw
    exit
fi

if [ "$tr" != "" -o "$tr1" != "" -o "$tr2" != "" -o "$tr3" != "" ]; then
    if [ "$tr1" = "" ]; then 
        if [ "$tr2" = "" ]; then
            tr1="The word is absent"
        else
            tr1="$tr2"
        fi
    fi
    if [ "$tr" = "" ]; then tr="The word is absent"; fi
    echo "<div style=\"text-align: center; height: 100%\"><pre>"
    echo "<big><b>Карачаевский:</b></big><hr width=30%>"
    echo "$tr3" | sed "s/$word/<b><font color=red>$word<\/font><\/b>/g"
    echo "<hr size=5px><br><big><b>Английский:</b></big><hr width=30%>"
    echo "$tr1" | sed "s/$word/<b><font color=red>$word<\/font><\/b>/g"
    echo "</pre></div>"
else
    echo "Такого слова я, увы, не знаю..."
fi    

echo "</body>"

anonymous
()
Ответ на: комментарий от anonymous

Скрипт convert:

#!/bin/sh
#Converts Data sent by method Post or Get
# into stdout like param1 name1 param2 name2 etc.

if [ "$REQUEST_METHOD" = "POST" ] ; then
    QUERY_STRING=`sed "s/\\\`/_/g"`
fi

line=`echo $QUERY_STRING|sed 's/&/ /g'`

for pair in $line
do
    name=`echo $pair|sed 's/=/ /g'|awk '{print $1}'`
    type=`echo $pair|sed 's/=/ /g'|awk '{print $2}'|sed -e 's/%\(\)/\\\x/g'|sed 's/+/ /g'`
#    printf "${name}=${type}\n"
    printf "${name}=\"${type}\"\n"
done

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.