![]() |
![]() |
#1 |
Moderator
Регистрация: 19.10.2013
Сообщений: 479
Вес репутации: 600 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
При создании страницы вылазит баг, который не могу исправить.
Создав область, в которую можно вводить текст с последующим сохранением в файле, 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
Вес репутации: 600 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Почему не запускается скрипт сохраненный через веб стрницу нашел.
Файл сохраняется в таком формате как и после сохранения виндосовским notepad-ом, что то дописывается. Пересохранив его akelpad или winscp Text Editor скрипт запускается, и немного уменьшается в размере. Как по другому написать скрипт обработчика для сохранения файла? |
![]() |
![]() |
![]() |
#5 |
Senior Member
|
![]()
Скопировать аналогичный работающий скрипт из другой папки, доработать его редактором под себя.
__________________
Россия навсегда! |
![]() |
![]() |
![]() |
#6 |
Senior Member
Регистрация: 20.01.2015
Сообщений: 312
Вес репутации: 444 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
сохраните оба файла, до и после открытия, сравните в winhex
|
![]() |
![]() |
![]() |
#7 | |
Moderator
Регистрация: 19.10.2013
Сообщений: 479
Вес репутации: 600 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Цитата:
Просматривая фаил 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
Вес репутации: 600 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
![]() |
![]() |
![]() |
Здесь присутствуют: 5 (пользователей: 0 , гостей: 5) | |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|