Я создал php-скрипт для управления временем всплывающего окна. Я хочу, чтобы всплывающее окно отображалось только раз в 60 секунд. Сценарий устанавливает cookie при первом посещении пользователем страницы, а затем для последующих посещений скрипт проверяет файл cookie и активирует всплывающее окно только в том случае, если файл cookie истек. Всплывающее окно управляется переменной $ _SESSION ['activate_popup'].
Скрипты работают по назначению во всех случаях, кроме случаев, когда пользователь впервые посещает страницу. Файл cookie пуст, поэтому он должен установить cookie и активировать всплывающее окно в состоянии 1. Вместо этого он устанавливает cookie в состоянии 1 и отображает результат в состоянии 2.
$GLOBALS['popup_output'] .= '<!-- begin popup -->'; $domain = 'brocktonvilla.com'; $expiration = time() + 60; $time_until_expires = $_COOKIE['rc_popuup2'] - time(); $GLOBALS['popup_output'] .= '<!-- time until expires: ' . $time_until_expires . ' sec -->'; /* 1 */ if ( empty($_COOKIE['rc_popuup2']) ) { // if cookie has not been set setcookie('rc_popuup2', $expiration, $expiration, '/', $domain ); // set cookie with value of cookie equals expiration time $_SESSION['activate_popup'] = 'yes'; // activate the popup $GLOBALS['popup_output'] .= '<!-- cookie empty => show popup & set cookie -->'; } /* 2 */ elseif ( $_COOKIE['rc_popuup2'] > time() ) { // cookie has been set and cookie expiration is greater than current time $_SESSION['activate_popup'] = 'no'; // do not activate popup $GLOBALS['popup_output'] .= '<!-- cookie set and not expired => do not show popup -->'; } /* 3 */ elseif ( $_COOKIE['rc_popuup2'] < time() ) { // cookie has been set and cookie expiration is less than current time $_SESSION['activate_popup'] = 'yes'; // activate the popup setcookie('rc_popuup2', $expiration, $expiration, '/', $domain ); // reset cookie with value of cookie equals expiration time $GLOBALS['popup_output'] .= '<!-- cookie set but has expired => show popup & reset cookie -->'; }
Вы можете увидеть скрипт в действии здесь http://www.brocktonvilla.com/ . Найдите исходный код «begin popup», и вы увидите, что cookie был установлен в состоянии 1 и отображает результат в состоянии 2 при первом посещении страницы.