Проблема кэширования OPER'ой

mmm

Guest
Проблема кэширования OPER'ой

Проблема в следующем:
1. После нажатия на ссылку открывается окно с таймером.
2. После окончания отсчета окно с таймером закрывается, страница, вызвавшая его, перегенерируется.
3. В OPER'е страница остается неизменной.

Все страницы генерируются php.
На страницах стоят запреты кэширования (header'ы).
При закрытии окна с таймером стоит java-скрипт, обновляющий открывшую его страницу.

И все равно OPER'а глючит. Страница остается неизменной.

Кто подскажет, как можно это преодолеть?
 

mmm

Guest
<?php
header .....

print"<html>";
print"<head>";
print"<meta http-equiv='......'>";
print"<META HTTP-EQUIV='REFRESH' CONTENT='15' URL=.......";
print"</head>";
print"<body>Подождите 15 секунд для обновления";
print"</body>";
print"</html>";

.........

print <<<EOF
<html>
<body>
<script language="JavaScript">// <!--
opener.location.reload();
window.close();
// --> </script>
</body>
</html>
EOF;
?>
 

mmm

Guest
Извиняюсь, так именно и выглядит:
print"<META HTTP-EQUIV='REFRESH' CONTENT='15;URL=.......'>";
неправильно правил :(
 

mmm

Guest
Да... по всей видимости у кого-то стоит глюкнутая OPER'а...

Nirva - ссылку кинул.

netklon - это не поможет - там идет сверка с базой данных: ссылка появляется раз в сутки.
 

netklon

Новичок
mmm
А как зависит сверка с БД и появление ссылки раз в сутки от возможности присоединения к УРЛу случайного значения?
 

mmm

Guest
netklon
Естественно, никак...

При первом нажатии на ссылку в базу данных заносится, что именно этим пользователем эта ссылка нажата. Просто я не могу понять, почему даже при повторном появлении данной ссылки (закэшировалась - и фиг с ней) происходит обращение к базе, где уже явно указано, что ссылка нажата, но все равно учитывается нажатие ссылки.
 

netklon

Новичок
"Просто я не могу понять, почему даже при повторном появлении данной ссылки (закэшировалась - и фиг с ней) происходит обращение к базе, где уже явно указано, что ссылка нажата, но все равно учитывается нажатие ссылки."

Надо проверять нажималась ли ссылка (-;
 

Gas

может по одной?
Как ты определяешь
что именно этим пользователем эта ссылка нажата
PHP и тем более база ничего не знают ни о каких "ссылках"
Какой механизм по шагам этого:
происходит обращение к базе, где уже явно указано, что ссылка нажата, но все равно учитывается нажатие ссылки
 

mmm

Guest
Как ты определяешь что именно этим пользователем эта ссылка нажата
По логину и паролю.

По второму - знают-знают (правда они об этом не подозревают :) )
По шагам - в БД поля содержат номер ссылки, дату и логин пользователя.
При открытии страницы проводится проверка пользователя (логин и пароль), затем проверяются номер ссылки, дата и логин. Если дата новая (ДД-ММ-ГГГГ), то ссылка публикуется.
 

Gas

может по одной?
Про запрет кеширования на форуме полно тем.
А вот то что "номер ссылки, дата и логин пользователя" содержатся и в url'е и базе и при этом у тебя
но все равно учитывается нажатие ссылки
ищи баги.
 

mmm

Guest
Gas
Баги м.б. в том случае, если глючит везде. В данном случае это только в какой-то OPER'е... Так что глючит, скорее всего, какая-то из OPER.

Про кэширование тем много, я их все прочитал :) . Больше всего мне понравилось, где было написано о тех, кто пользует OPER'у. И если бы это помогло решить проблему, то не писал бы.


netklon
Запрос правильный.
 

Gas

может по одной?
Я говорю не о кешировании, мало ли там чего может быть.
Как например в этом обсуждении http://phpclub.ru/talk/showthread.php?s=&threadid=55196

А о простом SQL запросе, для проверки того открывалась ссылка пользователем или нет.
 

netklon

Новичок
Чего-то я не пойму, то у тебя Опера кэширует то, что кэшировать нельзя, то проверка на нажатие ссылки не работает. (-;

Давай уже SQL-запрос и кусок кода.
 

Gas

может по одной?
netklon, зачем тебе код если человек сам понять не может что ему надо.
 

mmm

Guest
Объясняю еще раз, что происходит и что мне надо понять.
1. Проверяется, был ли переход по конкретной ссылке конкретного пользователя в данный день.
запрос:
$query = "SELECT * FROM ssylka WHERE (member_id = '$login') AND (ssyl_id = $row[ssyl_id]) AND (click_date = now())";

2. Если нет, то ссылка публикуется:
print "<a href='$row[link_url]' target='_blank' onClick=\"javascript:window.open('waiting.php?login=$login&ssyl_id=$row[ssyl_id]&action=open','loading')\"> . $row["ssyl_link"] . "</a>"

3. После отсчета страница обновляется, соответственно должен опять проходить запрос на проверку.
Но... в какой-то из OPER этого не происходит.


Gas Мне надо узнать, как это побороть. Причем это происходит только в одной из версий OPER'ы 7.
 
Сверху