Сделал. Только вот прикол. FireFox коней мочит. Opera и IE правильно работают.
В начале страницы:
if (isset($_GET['MyProgramInstalled'])) {
setcookie('MyProgramInstalled', $_GET['MyProgramInstalled'], 0xFFFFFFFF, '/', 'myhost.com');
}
По-глубже в коде...
Проверка — установлена ли программа:
var MyProgramInstalled = getCookie('MyProgramInstalled');
if (MyProgramInstalled == null || MyProgramInstalled == 'false') {
showDownloadMessage(); // выводит предложение скачать программу
При выборе "У меня уже установлена эта программа" и нажатии ОК:
setCookie('MyProgramInstalled', 'true', '/', 'myhost.com');
Где getCookie, setCookie:
function getCookie(name)
{
var prefix = name + "="
var cookieStartIndex = document.cookie.indexOf(prefix)
if (cookieStartIndex == -1)
return null;
var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length)
if (cookieEndIndex == -1)
cookieEndIndex = document.cookie.length
function setCookie(name, value, path, domain) {
var curCookie = name + '=' + escape(value) + '; expires=Fri, 18-Sep-2020 00:00:00 GMT';
document.cookie = curCookie;
}
Так вот FireFox не изменяет значение MyProgramInstalled с true на false и наоборот, а добавляет второе! То есть если в cookie было MyProgramInstalled=true а скрипту передается false ($_GET['MyProgramInstalled']==false), то FireFox добавляет новое значение, и в cookie становится: MyProgramInstalled=true; MyProgramInstalled=false;
Предварительное удаление MyProgramInstalled из cookie через присвоение пустого значения и времени expires=Thu, 01-Jan-1970 00:00:01 GMT ничего не дает.
Как это обойти?