Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запись в файл, запуск с cmd и с браузера 
V
    Опции темы
DigitSphinx
Дата 24.6.2010, 02:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 28.4.2007
Где: Москва

Репутация: нет
Всего: 3



Начал на этой неделе по техоньку изучать Perl, поэтому сильно не бейте )) лучше пинать в нужном направлении ))
написал простой код который генерирует страницу HTML и залил этот CGI скрипт на IIS, открываю в браузере 127.0.0.1 отображается именно то что я хотел видеть ! но в конце скрипта я записываю в файл какую-то инфу и проблема в том что запуская этот скрипт из командной строки, файл создается и пишется нормально, но запуская скрипт с браузера файл не пишется ! 

Код

....
print "Your IP address is : ";
print $ENV{REMOTE_ADDR} ;
....
open (MYFILE, '>>SITELOG.txt') or die "ERROR OPENING FILE SITELOG.txt" ;
print MYFILE "$ENV{REMOTE_ADDR}\n";
close (MYFILE);



--------------------
Чтобы пробить стену лбом нужен или большой разбег, или много лбов.
(Альберт Эйнштейн)
Умен ты или глуп, велик ты или мал, не знаем мы, пока ты слова не сказал.
(Альберт Эйнштейн)
user posted image
PM MAIL ICQ   Вверх
krypt3r
Дата 24.6.2010, 06:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 359
Регистрация: 9.6.2009

Репутация: 2
Всего: 16



Ошибку гляньте. Скорее всего, проблемы с правами доступа
Код

open (MYFILE, '>>SITELOG.txt') or die "ERROR: $!" ;

PM MAIL   Вверх
DigitSphinx
Дата 24.6.2010, 08:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 28.4.2007
Где: Москва

Репутация: нет
Всего: 3



Цитата(krypt3r @  24.6.2010,  06:43 Найти цитируемый пост)
Ошибку гляньте. Скорее всего, проблемы с правами доступа

я предположил что проблема с правами, но die и warn не выводят сообщения Оо
Код

open (MYFILE, '>>SITELOG.txt') or print "ERROR: $!" ;
print MYFILE "$Hou:$Min\t$ENV{REMOTE_ADDR}\n";
close (MYFILE);close (MYFILE);

в результате дал 
Код

ERROR: Permission denied


по ходу из cmd у меня есть права а у пользователя с сайта их нет, но как это поправить/обойти ? как добиться того чтобы у меня оставался лог посетителей в формате "когда кто"?


--------------------
Чтобы пробить стену лбом нужен или большой разбег, или много лбов.
(Альберт Эйнштейн)
Умен ты или глуп, велик ты или мал, не знаем мы, пока ты слова не сказал.
(Альберт Эйнштейн)
user posted image
PM MAIL ICQ   Вверх
dva300
Дата 24.6.2010, 08:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 17.2.2010
Где: Москва

Репутация: -1
Всего: 1



Код

ERROR: Permission denied

Цитата

по ходу из cmd у меня есть права а у пользователя с сайта их нет, но как это поправить/обойти ? как добиться того чтобы у меня оставался лог посетителей в формате "когда кто"?


1) use CGI::Carp qw(fatalsToBrowser);
2) зачем обходить ? это нормальная ситуация. это не у пользователя с сайта нет прав писать в папку а у пользователя под которым запускается apache нет прав писать в папку.
только не надо ставить запуск apache от root. для начала пишите в tmp. потом создайте папку с соответствующими провами.
 
Цитата

open (MYFILE, '>>SITELOG.txt') or print "ERROR: $!" ;


вот так делать не надо. лучше уж warn 

Это сообщение отредактировал(а) dva300 - 24.6.2010, 08:31
--------------------
Участник движения Культура Вождения
PM   Вверх
DigitSphinx
Дата 24.6.2010, 08:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 28.4.2007
Где: Москва

Репутация: нет
Всего: 3



Цитата(dva300 @  24.6.2010,  08:29 Найти цитируемый пост)
1) use CGI::Carp qw(fatalsToBrowser);

спасибо, теперь 
Код

die "ERROR: $!"
 выводит сообщение в браузер

Цитата(dva300 @  24.6.2010,  08:29 Найти цитируемый пост)
2) зачем обходить ? это нормальная ситуация. это не у пользователя с сайта нет прав писать в папку а у пользователя под которым запускается apache нет прав писать в папку.только не надо ставить запуск apache от root. для начала пишите в tmp. потом создайте папку с соответствующими провами.

для меня это немного кЭтайский язык )) тем более что я пользуюсь IIS7 встроенный в винду !

Цитата(dva300 @  24.6.2010,  08:29 Найти цитируемый пост)
вот так делать не надо. лучше уж warn 

print выводит хотябы это сообщение
die вырубает прогу и выводит сообщение
warn вообще ничего не вывел

Код

#!C:\Perl\bin\perl
use CGI::Carp qw(fatalsToBrowser);
print "HTTP/1.0 200 OK\n\n";
(undef, $Min, $Hou, @ther) = localtime(time);
$ti = sprintf "<h2><b><center>Current time is  %2d:%2d</center></b></h2>", $Hou,$Min;
open (MYFILE, '>>SITELOG.txt') or die "ERROR: $!" ;
print MYFILE "$Hou:$Min\t$ENV{REMOTE_ADDR}\n";
close (MYFILE);


Код

Status: 500 Content-type: text/html 
Software error:
ERROR: Permission denied at C:\inetpub\wwwroot\T.cgi line 6.

For help, please send mail to this site's webmaster, giving this error message and the time and date of the error.


все еще вопрос актуален, как мне записать (к себе на сервер)  в файл какую-то инфу ?

Это сообщение отредактировал(а) DigitSphinx - 24.6.2010, 08:51


--------------------
Чтобы пробить стену лбом нужен или большой разбег, или много лбов.
(Альберт Эйнштейн)
Умен ты или глуп, велик ты или мал, не знаем мы, пока ты слова не сказал.
(Альберт Эйнштейн)
user posted image
PM MAIL ICQ   Вверх
dva300
Дата 24.6.2010, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 17.2.2010
Где: Москва

Репутация: -1
Всего: 1



Цитата

warn вообще ничего не вывел


warn выводит сообщение в STDERR
так как ошибка есть влияющая на работу программы т.е. без файла там делать нечего то естественно лучше die 

Цитата

Код

Status: 500 Content-type: text/html 
Software error:
ERROR: Permission denied at C:\inetpub\wwwroot\T.cgi line 6.

For help, please send mail to this site's webmaster, giving this error message and the time and date of the error.


все еще вопрос актуален, как мне записать (к себе на сервер)  в файл какую-то инфу ?


ну IIS он же тоже на сервере запускается так что там тоже есть права доступа.
создай новую папку, посмотри права на нее. для начала поставь доступ для всех. потом смотри под каким пользователем пускается IIS и добавь его на запись в эту папку
--------------------
Участник движения Культура Вождения
PM   Вверх
DigitSphinx
Дата 24.6.2010, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 28.4.2007
Где: Москва

Репутация: нет
Всего: 3



создал вложенную папку C:\inetpub\wwwroot\LOGS доступ открыл на всех и все заработало! спасибо ))
теперь одна проблема, читаю перл от нечего делать на работе, теперь палево ... в сетке висит моя папка LOGS если начальство спалит мне влетит ))

dva300, еще раз спасибо !


--------------------
Чтобы пробить стену лбом нужен или большой разбег, или много лбов.
(Альберт Эйнштейн)
Умен ты или глуп, велик ты или мал, не знаем мы, пока ты слова не сказал.
(Альберт Эйнштейн)
user posted image
PM MAIL ICQ   Вверх
dva300
Дата 24.6.2010, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 17.2.2010
Где: Москва

Репутация: -1
Всего: 1



Цитата(DigitSphinx @ 24.6.2010,  09:14)
создал вложенную папку C:\inetpub\wwwroot\LOGS доступ открыл на всех и все заработало! спасибо ))
теперь одна проблема, читаю перл от нечего делать на работе, теперь палево ... в сетке висит моя папка LOGS если начальство спалит мне влетит ))

dva300, еще раз спасибо !

хм.... так надо было открыть ee для группы локальных пользователей IIS а не расшарить ее на весь домен  smile 
или wwwroot расшарен ? тогда в другом месте создай.

ну или скажи что не ты  smile  smile  smile 

Это сообщение отредактировал(а) dva300 - 24.6.2010, 09:26
--------------------
Участник движения Культура Вождения
PM   Вверх
DigitSphinx
Дата 24.6.2010, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 28.4.2007
Где: Москва

Репутация: нет
Всего: 3



Цитата(dva300 @  24.6.2010,  09:20 Найти цитируемый пост)
так надо было открыть ee для группы локальных пользователей IIS

фиг знает как это сделать ))
просто правой кнопкой по LOGS свойства->доступ->общий доступ -> Everyone = соавтор.

Цитата(dva300 @  24.6.2010,  09:20 Найти цитируемый пост)
или wwwroot расшарен

нет только его вложенная папка LOGS

Цитата(dva300 @  24.6.2010,  09:20 Найти цитируемый пост)
ну или скажи что не ты       

лучший вариант  smile  smile 


--------------------
Чтобы пробить стену лбом нужен или большой разбег, или много лбов.
(Альберт Эйнштейн)
Умен ты или глуп, велик ты или мал, не знаем мы, пока ты слова не сказал.
(Альберт Эйнштейн)
user posted image
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0483 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.