|
|
|
Всем привет!
Есть страница, на ней стоит JS-код. При первом заходе она записывает куки на 24 часа и редиректит на целевую страницу.
Если юзер заходит в эти 24 часа, то редирект не будет срабатывать.
Через 24 часа куки станет expired и вновь сработает запись новой куки и редик.
Есть такой код (взял с блога Codd'а) и чуть переделал:
Код: |
123
<script type="text/javascript">
/* Параметры **********/
var url = 'http://codd.ws/'; // сайт, открывающийся в новом окне
var time = 24; // время, на которое устанавливается кука
function getCookie(super) {
var cookie = " " + document.cookie;
var search = " " + super + "=";
var setStr = null;
var offset = 0;
var end = 0;
if (cookie.length > 0) {
offset = cookie.indexOf(search);
if (offset != -1) {
offset += search.length;
end = cookie.indexOf(";", offset)
if (end == -1) {
end = cookie.length;
}
setStr = unescape(cookie.substring(offset, end));
}
}
return(setStr);
}
var D = new Date();
D.setHours( D.getHours()+time );
var expires = D.toUTCString();
window.onload = function() {
if( getCookie('super') !== 'true' ){
window.cookie='super=true; path=/; expires=' +expires;
window.location.href=''+url;
}
}
</script>
|
Кто понимает в JS, пожалуйста подскажите, где здесь ошибка, т.к. сейчас скрипт не записывает куки для домена и всегда редиректит.
Заранее большое спасибо! |
|
|
|
|
|
Решил вопрос при помощи своего любимого PHP, изучив функции установки и считывания куки.
Может кому тоже пригодится, скрипт для редиректа раз в сутки, устанавливать ВВЕРХУ страницы, ДО всего остального кода (я полчаса мучался, пока не узнал, что нужно установку кук задавать до остального кода ):
Код: |
<?php
// Редирект раз в сутки
// Ищем установленную куку
if(!$_COOKIE['prefcookie'] == "prefcookie1") {
// Устанавливаем куку
setcookie("prefcookie", "prefcookie1", time()+60*60*24); // Установка куки на 24 часа (60*60*24)
// Редиректим
header("Location: http://google.com/");
}
?>
|
|
|
|
|
|
|
И этот же редирект с клоакой по рефереру (гуглу отдаем с кукой и редиком, остальным обычный сайт):
Код: |
<?php
// Редирект раз в сутки для тех, у кого реферер "google"
// Ищем целевой реферер
$original_referer = $_SERVER['HTTP_REFERER'];
// искомый текст
$referer='google';
// Ищем нужный маркер в реферере
$pos = strpos($original_referer, $referer);
if ($pos) {
// Ищем установленную куку
if(!$_COOKIE['prefcookie'] == "prefcookie1") {
// Устанавливаем куку
setcookie("prefcookie", "prefcookie1", time()+60*60*24); // Ставим куку на 24 часа
// Редиректим
header("Location: http://google.com/");
}
}
?>
|
|
|
|
|
|
|
|
|