If anyone is interested, I have now implemented the brute-force solution to this problem: every link on the site now has a timestamp representing when the page was generated, thus no link will match any old versions held in any cache (caches in my control or not).

This wasnt too hard to achieve thanks to the good coding style of the UBB team:

(The following may only apply to version 6.3)

I changed the function "HTML->send_header" in "ubbt.inc.php" to add an *alphabetic* (not numeric) timestamp to the $Cat variable. (I did this just after the preg_replace which strips out non-numeric characters so that the timestamp is fresh)

I changed each instance where the $Cat variable is actually used (about 9) so that a temporary copy is made with the alphabetic part stripped off - this is already done for some reason, I just made sure it doesnt overwrite $Cat.

so

<pre> $Cat = preg_replace("/[^\d,]/","",$Cat);
if ($Cat) { ... </pre>

becomes

<pre> $Cat2 = preg_replace("/[^\d,]/","",$Cat);
if ($Cat2) { ... </pre>

I also had to change the "get_input" function in "ubbt.inc.php" to return

<pre>get_input("Cat",$type) . "&ts=" . get_input("ts","both"); </pre>

when asked for the value of "Cat". (My timestamp is called "ts") This makes the timestamp pass through pages wich are redirections (such as expanding / collapsing categories).

I hope this helps anyone brave enough to want to fix this problem themselves. Perhaps the UBB team might consider addressing this issue in the next release, as advising users to turn off their browser cache is not really a solution.

Rich

[This message was edited by ricbrad on July 21, 2003 at 02:56 AM.]

[This message was edited by ricbrad on July 21, 2003 at 02:57 AM.]