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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос про файлы 
:(
    Опции темы
mcsseifer
Дата 25.1.2007, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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




  Проблема такая...REMOTE_HOST вызывает скрипт, передаёт ему некие параметры ГЕТОМ.

В скрипте функцией open открываю файл и по полученном дискриптору пишу в файл через print.
ПРоблема....данные в файл не пишутся. Вызываю скрипт в консоли всё ок.....объясните причину плиз....
PM MAIL   Вверх
Zuzu
Дата 25.1.2007, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Много чего быть может...
Кусок кода, что пишет в файл, покажи.
--------------------
Проводить эксперименты на живом сервере опасно, а на мертвом - бесполезно.
PM   Вверх
Nab
Дата 25.1.2007, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 8
Всего: 37



А скорее всего прав у HTTP сервера нет на запись, логи сервака смотрите...


--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
mcsseifer
Дата 25.1.2007, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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




  нк часть когда это 3 строки
open (OKLOG, ">>oklog");
print OKLOG "$localtime [$Data]     INSERT Operation OK\n";
close (OKLOG);

логи уж я посмотрелsmile...норм всё...
 не знаю что за трабль такой!
PM MAIL   Вверх
amg
Дата 25.1.2007, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

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



А если так
Код

open (OKLOG, ">>oklog") or die "Can't write to file: $!";
 Что будет?
PM MAIL   Вверх
mcsseifer
Дата 25.1.2007, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



 открывает он нормально
PM MAIL   Вверх
nitr
Дата 25.1.2007, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 12
Всего: 84



т.е. этого сообщения нет?
Цитата

Can't write to file: ....

ну если нету... даж сложно предположить, но исправь так:
Код

open my $oklog, '>>', 'oklog';
print $oklog $localtime[$Data]."\tINSERT Operation OK\n";
close $oklog;

и всё же не ясна данная строка - 
print OKLOG "$localtime [$Data]     INSERT Operation OK\n"; - ошибка и тут может быть!

Добавлено @ 17:29 
$localtime [$Data] - лишний пробел тут, да и что за $Data ?

Добавлено @ 17:30 
и в error.log (сервера Apache) должна быть ошибка...


--------------------
PM   Вверх
mcsseifer
Дата 25.1.2007, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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





   попробую завтра на работе...

пробел не лишний это две переменные разные....
в логах апача ошибке нет....потому что скрипт работает нормально просто не пишет в файл....почему?? непонятно!


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


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 12
Всего: 84



mcsseifer, глянь в httpd.conf
или бывает и так - httpd.include

Если нету там записи в лог, добавь строчку:
Цитата
  ErrorLog logs/site_name.error.log



--------------------
PM   Вверх
pr10
Дата 21.2.2007, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



mcsseifer, 
1. В приведенном коде синтаксических ошибок нет.
2. Остальной код за кадром.
3. Установить диагноз скрипта нельзя.
4. Полный код нерабочего скрипта можете показать?

Это сообщение отредактировал(а) pr10 - 21.2.2007, 15:03
PM MAIL   Вверх
GoDleSS
Дата 7.3.2007, 01:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



mcsseifer, попробуйте следующий вариант, хотя мало шансов, что он сработает:

Код

open (my $oklog, '>>', 'oklog');
my $strEnd;
if ($^O=~m/mswin/i || $^O=~m/dos/i) { $strEnd="\r\n"; } else { $strEnd="\n"; }    
syswrite ($oklog, $localtime[$Data]."\tINSERT Operation OK$strEnd");
close ($oklog);

--------------------
It's a nice day to die my friend!
PM MAIL WWW ICQ   Вверх
Anarki
Дата 1.5.2007, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(mcsseifer @ 25.1.2007,  19:40)
открывает он нормально

Откуда такая уверенность? 500 ошибки не было? обычно если STDERR идет - то 500 ошибка.

Это сообщение отредактировал(а) Anarki - 1.5.2007, 11:19


--------------------
PM WWW   Вверх
korob2001
Дата 1.5.2007, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 13
Всего: 61



Цитата

Код

open (OKLOG, ">>oklog");
print OKLOG "$localtime [$Data]     INSERT Operation OK\n";
close (OKLOG);



Попробуй сделать запись без переменных например запусти такой код:
Код

#!/usr/bin/perl -w
use strict;    # после отладки закоментируй
use CGI::Carp qw(fatalsToBrowser);  # Это тоже закоментируй после отладки

print "Content-type: text/html\n\n";
open (OKLOG, ">>oklog") or die $!;
print OKLOG "Просто тест\n";
close (OKLOG);
print "<html><body><h1>Запись добавлена</h1></body></html>";



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


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

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


 




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


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

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