Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как при щелчке прибавить значение cookies на единицу. (https://javascript.ru/forum/misc/35819-kak-pri-shhelchke-pribavit-znachenie-cookies-na-edinicu.html)

Peter23 23.02.2013 11:50

Как при щелчке прибавить значение cookies на единицу.
 
Помогите! Сколько раз пробовал, не получается. При клике на ссылку, браузеру посылается файл cookie со значением 1, при следующем щелчке, оно увеличивается еще на единицу, и так до бесконечности. При закрытии окна/вкладки браузера, cookie удаляются. Если это возможно, то ответьте мне!Мне все равно, на каком языке написан.Главное,что бы работало.
Искал в интернете решение проблемы. Нашел код на php.Он оказался нерабочим.
<?php
if(!isset($_COOKIE['aut']))
{
  counter_plus(); //Функция прибавляющая к счётчику единицу
  setcookie("aut", "1", time()+99999);
}
?>


Так же, я брал за основу любой счетчик посещений на javascript, затем пытался активизировать код при щелчке. Максимум что у меня получалось, это файл cookie со значением undefined.Если надо описать все мои манипуляции подробнее,то обращайтесь.




:help: :help: :help: :help: :help:

danik.js 23.02.2013 12:01

Цитата:

Сообщение от Peter23
При закрытии окна/вкладки браузера

Это событие нельзя отследить. В качестве альтернативы сервер должен слушать периодические сообщения, которые нужно остылать javascript'ом через XMLHttpRequest. Если сообщений долго нет - пользователь ушел. Куки можно устанавливать как на стороне сервера (в момент формирования ответа), так и на клиенте (javascript'ом). Что использовать - зависит от задачи.

Deff 23.02.2013 12:07

Цитата:

Сообщение от Peter23
При закрытии окна/вкладки браузера, cookie удаляются.

1. Cмысла в cookie нет, используйте просто переменную,
Весь смысл в cookie запоминание меж страницами, и после закрытия
2. Не используйте setcookie("aut", "1", time()+99999); добавку времени, тогда cookie запоминаются лишь на текущую сессию, до закрытия всех вкладок ресурса
setcookie("aut", "1")

3, Интерпретируйте undefined как 0

function  PlusCount () {
var a = getcookie('aut');
  if(!a) a =0;
  +a++;
  setcookie("aut", a);
  return a;
}

Peter23 23.02.2013 12:45

Deff, я не силен в php. Denwer выводит эту ошибку: Parse error: syntax error, unexpected T_VAR in Z:\home\etm.ru\www\test\php\lc.php on line 3
Я так и ничего не понял.
Сам код:
lc.php
<?php
function  PlusCount () {
var a = getcookie('aut')
if(!a) a =0;
  (+a)++;
  setcookie("aut", a);
  return a;
}

?>


index.html
<script language="Javascript">
function SC() {
	var t = new Image();
	t.src = "php/lc.php"
	return false;
}
</script>
<a href="javascript:void(0)" OnClick="SC()">Link</a>


Можете полностью написать рабочий код?

danik.js 23.02.2013 12:54

Peter23, лучше напишите полностью какую задачу вы пытаетесь решить. Зачем вам эта инкрементируемая кука?

Deff 23.02.2013 13:02

Цитата:

Сообщение от Peter23
Можете полностью написать рабочий код?

<script type="text/javascript">
function setcookie(a,b,c) {if(c){var d = new Date();d.setTime(d.getTime()+c);}if(a && b) document.cookie = a+'='+b+(c ? '; expires='+d.toUTCString() : '');else return false;}
 function getcookie(a) {var b = new RegExp(a+'=([^;]){1,}');var c = b.exec(document.cookie);if(c) c = c[0].split('=');else return false;return c[1] ? c[1] : false;}
</script>

<button id="but00" onclick="alert(PlusCount())">якобы Клик по ссылке</button>

<script>
function  PlusCount () {
var a = getcookie('aut');
  if(!a) a =0;
   +a++;
  setcookie("aut", a);
  return a;
}
</script>

Peter23 23.02.2013 13:14

Ребят, спасибо за помощь!


Часовой пояс GMT +3, время: 17:46.