Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:3
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:7
Форум » starterkit.ru » Embedded Linux
www cgi microperl
rw9uao
Добавлено 29.11.2010 13:18
0
Сообщение: 1
rw9uao
Ранг
5

Группа: Клиенты
Пункты: 6973
Регистрация: 26.03.2009
для таржета собрал микроперл, поднял в бизибоксе web демона с поддержкой CGI.
цги вроде работает. башевые скрипты не работают на парсинге, но прекрасно работают на вывод. бинарники на С и выводят и парсят, все хорошо.
микроперл не работает с парсингом. не видит переменную $ENV.
Код
print $ENV{'QUERY_STRING'};

отдает "", т.е. нифига.
куда копать?
Спуститься к концу Подняться к началу
Персональная информация
rw9uao
Добавлено 29.11.2010 13:19 Сообщение: 2
rw9uao
Ранг
5

Группа: Клиенты
Пункты: 6973
Регистрация: 26.03.2009
оформление в виде
Код
#!/usr/bin/microperl

print "Content-type: text/html\n\n";
print "<HTML><BODY>\n";
print "=========================================================<BR>\n";

и
Код
print "</BODY></HTML>\n";

естественно есть.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 29.11.2010 17:19 Редактировалось 29.11.2010 17:21 Сообщение: 3
sasamy
4.71

Пункты: 83542
Регистрация: 14.08.2009
А нужен ли тебе перл ? :) Есть такой проект замечательный
http://haserl.sourceforge.net/
в буилдруте для него цель для сборки есть, позволяет встраивать скрипты шелл в html в стиле php. Как раз недавно стояла у меня задача - сделать вебинтрфейс.
Спуститься к концу Подняться к началу
Персональная информация
rw9uao
Добавлено 02.12.2010 13:05 Сообщение: 4
rw9uao
Ранг
5

Группа: Клиенты
Пункты: 6973
Регистрация: 26.03.2009
видимо нужен.
или я совсем дурак. но у меня даже в башевых скриптах CASE не работает.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 02.12.2010 13:38 Сообщение: 5
sasamy
4.71

Пункты: 83542
Регистрация: 14.08.2009
case в шелл не работает ?? как же тогда все загрузочные скрипты работают :)

case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
restart
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac

Если тебе не CMS писать а для удаленного управления - haserl просто идеален :) там и парсить уже ничего не надо - он тебе все переменные из форм на блюдечке выкладывает, а в общем если тебе нужен перл - компиляй перл :)
Спуститься к концу Подняться к началу
Персональная информация
rw9uao
Добавлено 06.12.2010 11:34 Сообщение: 6
rw9uao
Ранг
5

Группа: Клиенты
Пункты: 6973
Регистрация: 26.03.2009
Сань, размести тут, плс, исходник своих хасерл скриптов.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 06.12.2010 12:22 Редактировалось 06.12.2010 12:27 Сообщение: 7
sasamy
4.71

Пункты: 83542
Регистрация: 14.08.2009
Цитата
Сань, размести тут, плс, исходник своих хасерл скриптов.


cgi-bin/has

Код

#!/usr/bin/haserl --upload-limit=10240 --upload-target=/tmp
Content-type: text/html


<html lang="ru">

<head>
<title><% cat /etc/hostname %></title>
<link rel="stylesheet" type="text/css" href="/radio.css">
<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
</head>

<body>

<!-- generate menu -->

<h2><font color=#FF0000><% cat /etc/hostname %></font></h2>

<div id="menu">
<a href="/cgi-bin/has?page=index">Status</a>
&middot;
<a href="/cgi-bin/has?page=log">Log</a>
&middot;
<a href="/cgi-bin/has?page=config">Config</a>
&middot;
<a href="/cgi-bin/has?page=update">Update</a>
&middot;
<a href="/cgi-bin/has?page=control">Control</a>
</div>

<!-- main page -->

<% if test "$FORM_page" = "index"; then %>

<pre>
<b>Version</b>
<% uname -a %>
<% cat /etc/radio.ver %>

<b>Status</b>
<% date %>
<% mpc status %>

<b>Uptime</b>
<% uptime %>

<b>Process list</b>
<% ps %>
</pre>

<% fi %>

<!-- page Log -->

<% if echo "$FORM_page" | grep -q log; then %>

<ul>
<li><a href="/cgi-bin/has?page=log_messages">/var/log/messages</a></li>
<li><a href="/cgi-bin/has?page=log_mpd">/var/log/mpd.log</a></li>
</ul>

<% fi %>

<% if test "$FORM_page" = "log_messages"; then %>

<form action="<% echo -n $SCRIPT_NAME %>" method="POST">
<textarea name="log" wrap="virtual" cols="100" rows="20"><% cat /var/log/messages %></textarea>
</form>

<% fi %>

<% if test "$FORM_page" = "log_mpd"; then %>

<form action="<% echo -n $SCRIPT_NAME %>" method="POST">
<textarea name="log" wrap="virtual" cols="100" rows="20"><% cat /var/log/mpd.log %></textarea>
</form>

<% fi %>

<!-- page Config -->

<% if echo "$FORM_page" | grep -q config; then %>

<ul>
<li><a href="/cgi-bin/has?page=config_radio">/etc/radio.conf</a></li>
<li><a href="/cgi-bin/has?page=config_shed">/etc/radio.shed</a></li>
</ul>

<% fi %>

<% if test "$FORM_page" = "config_radio"; then %>

<form action="<% echo -n $SCRIPT_NAME %>" method="POST">
<textarea name="radioconf" wrap="virtual" cols="100" rows="20"><% cat /etc/radio.conf %></textarea>
<p>Password:</p>
<input type="password" width="10" name="pass_radio">
<input type="submit" value="Save">
</form>

<% fi %>

<% if test -n "$FORM_pass_radio"; then %>

<% salt=`cat /etc/shadow | grep root | cut -d: -f2 | cut -d$ -f3` %>
<% if test "`mkpasswd -m md5 "$FORM_pass_radio" "$salt"`" = "`cat /etc/shadow | grep root | cut -d: -f2`"; then %>

<% echo "$FORM_radioconf" > /etc/radio.conf %>
<p>/etc/radio.conf is changed</p>

<% else %>

<p>incorrect password</p>

<% fi %>
<% fi %>


<% if test "$FORM_page" = "config_shed"; then %>

<form action="<% echo -n $SCRIPT_NAME %>" method="POST">
<textarea name="shedconf" wrap="virtual" cols="100" rows="20"><% cat /etc/radio.shed %></textarea>
<p>Password:</p>
<input type="password" width="10" name="pass_shed">
<input type="submit" value="Save">
</form>

<% fi %>

<% if test -n "$FORM_pass_shed"; then %>

<% salt=`cat /etc/shadow | grep root | cut -d: -f2 | cut -d$ -f3` %>
<% if test "`mkpasswd -m md5 "$FORM_pass_shed" "$salt"`" = "`cat /etc/shadow | grep root | cut -d: -f2`"; then %>

<% echo "$FORM_shedconf" > /etc/radio.shed %>
<p>/etc/radio.shed is changed</p>

<% else %>

<p>incorrect password</p>

<% fi %>
<% fi %>

<!-- page Update -->

<% if test "$FORM_page" = "update"; then %>

<p>
<form action="<% echo -n $SCRIPT_NAME %>" method=POST enctype="multipart/form-data">
<input type=file name=uploadfile>
<p>Password:</p>
<input type="password" width="10" name="pass_update">
<input type=submit value=Update>
</form>
</p>

<% fi %>

<% if test -n "$FORM_pass_update"; then %>

<% salt=`cat /etc/shadow | grep root | cut -d: -f2 | cut -d$ -f3` %>
<% if test "`mkpasswd -m md5 "$FORM_pass_update" "$salt"`" = "`cat /etc/shadow | grep root | cut -d: -f2`"; then %>

<p>The file was <% cat $FORM_uploadfile | wc -c %> bytes long</p>

<% if test "$FORM_uploadfile_name" = "linux.sb"; then %>

<p>Writing kernel...</p>
<% kobs-ng $FORM_uploadfile %>
<p>kernel update complete</p>

<% else if test "$FORM_uploadfile_name" = "rootfs.tgz"; then %>

<p>Writing rootfs...</p>
<% tar xf $FORM_uploadfile -C / %>
<p>rootfs update complete</p>

<% else %>

<p>incorrect file name</p>

<% fi %>
<% fi %>

<% rm $FORM_uploadfile %>

<% else %>

<p>incorrect password</p>

<% fi %>
<% fi %>

<!-- page Control -->

<% if test "$FORM_page" = "control"; then %>

<p>
<form action="<% echo -n $SCRIPT_NAME %>" method=POST>
<input type="radio" name="system" value="audio_vol">Playback Volume (min=0,max=127)
<input type="text" name="volume" value="<% amixer cget numid=3 | grep ": values" | cut -d, -f2 %>" size="3" maxlength="3"><br>

<input type="radio" name="system" value="audio_on">Speaker ON<br>
<input type="radio" name="system" value="audio_off">Speaker OFF<br>

<input type="radio" name="system" value="reboot">Reboot<br>
</p>
<p>Password:</p>
<input type="password" width="10" name="pass_control">
<input type=submit value=Apply>
</form>
</p>

<% fi %>

<% if test -n "$FORM_pass_control"; then %>

<% salt=`cat /etc/shadow | grep root | cut -d: -f2 | cut -d$ -f3` %>
<% if test "`mkpasswd -m md5 "$FORM_pass_control" "$salt"`" = "`cat /etc/shadow | grep root | cut -d: -f2`"; then %>

<% if test "$FORM_system" = "audio_vol"; then %>

<pre>
<% amixer cset numid=3 "$FORM_volume","$FORM_volume" %>
</pre>

<% fi %>

<% if test "$FORM_system" = "audio_on"; then %>

<% echo "1" > /sys/class/gpio/gpio50/value %>
<p>Speaker GPIO state = <% cat /sys/class/gpio/gpio50/value %></p>

<% fi %>

<% if test "$FORM_system" = "audio_off"; then %>

<% echo "0" > /sys/class/gpio/gpio50/value %>
<p>Speaker GPIO state = <% cat /sys/class/gpio/gpio50/value %></p>

<% fi %>

<% if test "$FORM_system" = "reboot"; then %>

<p>Rebooting system...</p>
<% echo "0" > /sys/class/gpio/gpio50/value %>
<% /sbin/reboot %>

<% fi %>

<% else %>

<p>incorrect password</p>

<% fi %>
<% fi %>

<!-- bottom text -->

<hr>
<small>
Copyright &copy; 2010 A. Kudjashev | Content generated by <a href="http://haserl.sourceforge.net">Haserl</a>
</small>

</body>
</html>



index.html

Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
<meta http-equiv='Cache-Control' content='no-cache' />
<Meta http-equiv='Pragma' content='no-cache' />
<meta http-equiv='refresh' content='0; url=/cgi-bin/has?page=index'>
</head>

<body>
</body>



radio.css

Код

body {
color: #000000 ;
background-color: #FFFFFF ;
font-family: sans-serif ;
text-align: justify ;
margin-right: 20px ;
margin-left: 20px ;
}

h1, h2, h3, h4 {
font-weight: bold ;
font-style: normal ;
}

#menu {
padding-top: 0.2em ;
padding-bottom: 0.2em ;
padding-left: 20px ;
margin-left: -20px ;
background-color: #CCCCCC ;
}

#menu a {
color: #000000 ;
font-weight: bold ;
text-decoration: none;
}

#menu a:hover {
color: #FFFFFF ;
}

a:link, a:visited {
color: #FF0000 ;
background-color: inherit ;
text-decoration: none ;
}

a:link:hover, a:visited:hover {
text-decoration: underline ;
}

a:link:active, a:visited:active {
color: #FF0000 ;
}

hr {
border: 0 ;
height: 1px ;
color: #000000 ;
background-color: #000000 ;
}



Прекрасно работает с httpd из состава busybox
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux