powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (Perl) mod_perl кеширует все подряд :(
7 сообщений из 7, страница 1 из 1
(Perl) mod_perl кеширует все подряд :(
    #33741003
serf2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте,

Возникла серьезная проблема с кешированием под mod_perl.

Запрашивается скрипт например new_order.cgi с параметрами всегда разными, скрипт отрабатывает и заносит в БД данные,
так вот данные берутся на основании переданных параметров, а они всегда одни и теже, хотя приложение их передает разные. Н берется всегда только первые, которые при первом запросе получает скрипт. Скрипт запрашивается и передаются параметры методом get.

Скрипту так же при запросе передаются след. прагмы, заголовки, но не помогает:
"Pragma", "no-cache"
"Cache-Control", "no-cache"

Помогите пожалуйста избавится от такого кеширования.

Заранее благодарен
...
Рейтинг: 0 / 0
(Perl) mod_perl кеширует все подряд :(
    #33741101
g613
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
показывай код скрипта и настройки апача
...
Рейтинг: 0 / 0
(Perl) mod_perl кеширует все подряд :(
    #33741117
serf2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Часть скрипта, суть:

####################3
use strict;

my $dbh = ConnDB::connect(); # Соединение с БД.


# Получаем параметры с пом. модуля CGI
my $q = new CGI;
my $ip = $ENV{'REMOTE_ADDR'};
my $sid = $q->param("sid") || undef;

################

Обрабатываем все параметры перед вставкой так:
$instrument = $dbh->quote($instrument);
.......................... и т.п.
################

# Вставляем новую запись данных Ордера в таблицу
$dbh->do("INSERT INTO fx_client_orders (client_id, start_take_profit, instrument, volume, operation, type_order, price_execution, stop_loss, take_profit, entry_price, open_order, margin_in_usd) VALUES ($client_id, $start_take_profit, $instrument, $volume, $operation, $type_order, $price_execution, $stop_loss, $take_profit, $entry_price, NOW(), $margin_in_usd)");


################
Выдаем ответ запросившему приложению в XML:
print "Content-type: text/xml\n\n";
print '<?xml version="1.0" encoding="UTF-8"?>' . "\n";

exit;

##########################################3

Модули загружаются при старте Apache 1.3.33 (под Win32), а именно (startup.pl):

use strict;

use Apache::DBI(); # Должен загружаться до других модулей DBI
use lib qw(D:\webserver\home\fx.ru\perl_modules); # Путь к собственным модулям
use CGI();
CGI->compile(':all'); # Явно вызываем все функции и компилируем
use CGI::Carp qw(fatalsToBrowser);
use DBI();
use DBD::mysql(); # Явно вызываем драйвер БД
use ConnDB; # После модулей DBI
use User::pwent;
use XML::Parser;
use HTML::Template();
use FXdata();


return 1;

#####################

Конфиг веб-сервера:

LoadFile "D:/webserver/usr/bin/perl58.dll"
LoadModule perl_module modules/mod_perl.so

ScriptAlias /mod-perl/ "/home/mod-perl/"
########### ЗАГРУЖАЕМ МОДУЛИ ПРИ СТАРТЕ СЕРВЕРА ###################
PerlModule Apache::Registry
#PerlModule Apache::DBI
#PerlModule DBI
#PerlModule DBD::mysql
PerlRequire conf/startup.pl
########### ВКЛЮЧАЕМ ОБРАБОТКУ MOD_PERL ###########################
<Location /mod-perl>
SetHandler perl-script
PerlHandler Apache::Registry
PerlSendHeader on
Options +ExecCGI
allow from all
</Location>
###################################################################
...
Рейтинг: 0 / 0
(Perl) mod_perl кеширует все подряд :(
    #33741178
serf2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ошибка в принципе ясна. Не понятно как это бойти, т.е. все переменные сохраняют свое знаяение после отработки скрипта и заново не инициализируются. Т.е. если например $sid=Ключ сессии, и в конце программы я присвою $sid=undef; То при след. запросе этого скрипта пр условии то, что тот же httpd процесс будет обрабатывать его, то $sid=undef и внутри программы уже не получит реальный КЛЮЧ Сессии. Так дело обстоит со всеми переменными.

Подскажите пожалуйста как быть? Т.к. под mod_perl ранее не писал, опыта мало, а необходимость есть.
...
Рейтинг: 0 / 0
(Perl) mod_perl кеширует все подряд :(
    #33741359
g613
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
my $dbh = ConnDB::connect(); # Соединение с БД.


# Получаем параметры с пом. модуля CGI
my $q = new CGI;
my $ip = $ENV{'REMOTE_ADDR'};
my $sid = $q->param("sid") || undef;

...надеюсь это переменные имеют видимость не на уровне скрипта...

?
...
Рейтинг: 0 / 0
(Perl) mod_perl кеширует все подряд :(
    #33741435
serf2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так вот именно видимость не на уровне скрипта и как с этим работать не пойму ?! :(

Поставил под Apache::Perlrun
...
Рейтинг: 0 / 0
(Perl) mod_perl кеширует все подряд :(
    #33743031
SSDD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все модули подгружать в скрипте, еще возможное решение - использовать классы
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (Perl) mod_perl кеширует все подряд :(
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]