![]() |
|
|
#1 |
|
Moderator
Регистрация: 19.10.2013
Сообщений: 479
Вес репутации: 601 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
При создании страницы вылазит баг, который не могу исправить.
Создав область, в которую можно вводить текст с последующим сохранением в файле, bash скрипте. Обработчик этот текст сохраняет в файл, но он не запускается как скрипт. Расширение 755 изменял с winscp, и командой с putty и в самом обработчике прописал. Запуска нет. Но вот ничего не меняя в самом файле открыв в winscp акелпадом или блокнотом и просто нажав сохранить, скрипт запускается. Пока не нажму в страничке кнопку Save (сохранить). И снова он не запускается, до пересохранения акелпадом или блокнотом. Вот часть с файла страницы в #!/bin/sh Код HTML:
echo "<td align=center><b>name script </b> <form action="Save.cgi" method="post"> <p><textarea rows="10" cols="72" name="text" >" vcvc="Skripttest" # имя файла ktlog=$'/var/' # размещение файла в /var cat $ktlog$vcvc echo "</textarea> <br><input type="submit" value="Save" name=></p> </form> </td>" Код HTML:
if($1 == "text")
{
print unescape($2) > "/var/Skripttest"
system("chmod 755 /var/Skripttest")
print "<br>Save OK 1."
}
Или как изменить в обработчике? |
|
|
|
|
|
#2 |
|
Senior Member
Регистрация: 20.01.2015
Сообщений: 312
Вес репутации: 444 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Нужно смотреть не на права скрипта, а на его владельца.
Посмотрите кто владелец скрипта, и дайте ему разрешение на запуск скриптов в /etc/passwd по аналогии с root |
|
|
|
|
|
#3 |
|
Senior Member
Регистрация: 20.01.2015
Сообщений: 312
Вес репутации: 444 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Как только вы откроете скрипт и сохраните его, то владельцем его автоматически становится root
Попробуйте запустить ваш скрипт из крона. Запустится или нет? Покажите вывод ls -lh папки в которой создается скрипт И еще что-то не увидел у вас команды chmod +x Последний раз редактировалось solalex; 23.01.2015 в 10:53. |
|
|
|
|
|
#4 |
|
Moderator
Регистрация: 19.10.2013
Сообщений: 479
Вес репутации: 601 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Почему не запускается скрипт сохраненный через веб стрницу нашел.
Файл сохраняется в таком формате как и после сохранения виндосовским notepad-ом, что то дописывается. Пересохранив его akelpad или winscp Text Editor скрипт запускается, и немного уменьшается в размере. Как по другому написать скрипт обработчика для сохранения файла? |
|
|
|
|
|
#5 |
|
Senior Member
|
Скопировать аналогичный работающий скрипт из другой папки, доработать его редактором под себя.
__________________
Россия навсегда! |
|
|
|
|
|
#6 |
|
Senior Member
Регистрация: 20.01.2015
Сообщений: 312
Вес репутации: 444 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
сохраните оба файла, до и после открытия, сравните в winhex
|
|
|
|
|
|
#7 | |
|
Moderator
Регистрация: 19.10.2013
Сообщений: 479
Вес репутации: 601 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Просматривая фаил windows-notepadom, после сохранения через веб: Текст написан как будто верно но в конце одна иногда две строки с квадратиком. Скрипт не запускается А просматривая фаил windows-notepadom, после сохранения akelpad-ом: весь текст в одну строку. Но квадратики разделяли где должны быть новые строки. Скрипт запускается Akelpad-ом оба варианта при просмотре одинаковы но в размере разные. Вот скрипт обработчика. Где здесь символ кодировки строк? Может в этом и есть ? Код HTML:
#!/usr/bin/awk -f
#Copyright (C) 2013 cyberwrt.ru, duino.ru, cyber-place.ru, mp3car.ru
function unescape(s)
{
gsub(/\+/," ",s)
res = ""
do {
p = match(s,/%[0-9a-fA-F]{2}/)
if(p>0) {
res = res substr(s,0,p-1) sprintf("%c",0+("0x" substr(s,p+1,2)))
s = substr(s,p+3)
}
} while(p>0)
return res s
}
BEGIN
{
RS = "&"
FS = "="
print "Content-type: text/html; charset=utf-8"
print ""
}
{
######################################
if($1 == "text")
{
print unescape($2) > "/var/TEST2"
system("chmod +x 755 /var/TEST2")
print "<br>Save OK 1."
}
######################################
}
END
{
print "<br><tr><td align=center><a href=/cgi-bin/modules/TTESTT/mein.cgi><input title=Вернуться_назад class=submit type=submit value=Return_to_settings name=></a></td></tr>"
}
После сохранениея через веб в файле прописалось перед каждой строкой x0D (x0d) Последний раз редактировалось melsem; 23.01.2015 в 14:15. |
|
|
|
|
|
|
#8 | |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
После пересохранения скрипта в формате "UTF-8 без BOM" скрипт сразу запускается |
|
|
|
|
|
|
#9 |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Это символ переноса строки
|
|
|
|
|
|
#10 |
|
Moderator
Регистрация: 19.10.2013
Сообщений: 479
Вес репутации: 601 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|
|
|
|
![]() |
| Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|