Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Простейший счётчик кликов в куки на JS с передачей данных в PHP
 
 автор: Владимир22   (05.06.2013 в 13:49)   письмо автору
 
 

Друзья, подсобите с простейшим счётчиком кликов на JS с последующей передачей значения на сервер в PHP.
Т.е. если кто-то нащёлкал более 200 страниц, то получает какое-то сообщения. Сессии, пожалуйста, не предлагать!
Как-то так написал, но что-то не идёт:
<script type="text/javascript">
var S_count = GetCookie('S_count')
if (S_count == null) S_count = 0; else S_count++;
SetCookie ('S_count');
document.cookie=SetCookie;
</script>

А это обрабочик в php-скрипте на сервере.
<? 
if($_COOKIE['S_count']>200) echo "Стоп!";
?> 

Кто подскажет правильное решение.

  Ответить  
 
 автор: confirm   (05.06.2013 в 16:11)   письмо автору
 
   для: Владимир22   (05.06.2013 в 13:49)
 

Для начала прочтите это http://learn.javascript.ru/cookie, а то у вас что-то невразумительное написано.
А уже потом об одной тонкости установки.

  Ответить  
 
 автор: Deed   (05.06.2013 в 17:35)   письмо автору
 
   для: Владимир22   (05.06.2013 в 13:49)
 

Зайти на сервер и сделать наглядный пример?
http://wowa55.pz9.ru/view_count.html

  Ответить  
 
 автор: confirm   (06.06.2013 в 07:37)   письмо автору
 
   для: Deed   (05.06.2013 в 17:35)
 

Что же вы всем пуляете jQuery, даже тогда когда о нем и речи не идет. Ну не знаете вы JS, ну это же не повод по всем мелочам грузить библиотеки и остальным.

  Ответить  
 
 автор: Sfinks   (06.06.2013 в 08:04)   письмо автору
 
   для: confirm   (06.06.2013 в 07:37)
 

Жду не дождусь, когда jQuery включат в состав браузеров (почему-то мне кажется, что это произойдет) и сомнения грузить или не грузить кончатся =)

  Ответить  
 
 автор: confirm   (06.06.2013 в 08:13)   письмо автору
 
   для: Sfinks   (06.06.2013 в 08:04)
 

Если его "прикрутят" к браузерам, то будет полный капут как и с Flash. Об этом забывать не стоит, и не стоит думать, что jQuery, это механизм думающий за нас.

  Ответить  
 
 автор: Deed   (06.06.2013 в 08:08)   письмо автору
 
   для: confirm   (06.06.2013 в 07:37)
 

Да какая в данном случае разница?? У Владимира в проекте jQuery прикурочен изначально.
Так почему бы не воспользоваться?

  Ответить  
 
 автор: confirm   (06.06.2013 в 08:17)   письмо автору
 
   для: Deed   (06.06.2013 в 08:08)
 

Разница очень большая.
Во первых судя по коду автора, не скажешь, что "в проекте jQuery прикурочен изначально", в коде вообще бардак.
Во-вторых, разница очень велика в размерах, и если делать что-то пустяковое, то забудьте о библиотеках, это уже вред.
В третьих, то что вы написали еще не факт что будет работать на все 100%, так как вы используете jQuery исключительно полагаясь только на него, а не на свои знания, а при установке cookie есть несколько моментов, о которых нужно знать, и jQuery тут не помощник, за вас он этого не сделает, знать нужно вам.

  Ответить  
 
 автор: Deed   (06.06.2013 в 08:29)   письмо автору
 
   для: confirm   (06.06.2013 в 08:17)
 

Я знаю об этих нюансах.
Но у меня необъяснимая и стойкая идиосинкразия на JS-код - меня чуть ли не выворачивает при "подсчете верблюдов" во всех этих getElementsById...
И мне кажется, что если использование jQuery неприемлемо, автор вопроса сам об этом сообщит.
Я вполне разделяю Ваше негодование по поводу неоправданного использования фреймверков. У меня такое же отношениe к подобным "костылям" в php - предпочитаю "чистый" код. И красивый.
Но не в JS.

  Ответить  
 
 автор: confirm   (06.06.2013 в 08:55)   письмо автору
 
   для: Deed   (06.06.2013 в 08:29)
 

У меня нет никакого негодования, у меня есть непонимание когда вы пуляете кодом необдуманным. И тем более, если считать такой код "чистым и красивым".
Если вы знаете об этих тонкостях, но опускаете их, то о какой чистоте может идти речь?

Дело не в библиотеках как таковых, дело в разуме. Я вас когда либо называл глупцом? Нет, как никого и других здесь, хотя извиняюсь, огрызнулся однажды на сопливого недоумка, но бывает, когда разозлят.

Но я вам неоднократно говорил - вы не думаете, вы знаете jQuery так же плохо, как не знаете совсем и JS. И проблема этого как раз в том, что вы не знаете последнего. А уже причина этого мне не важна - воротит вас, лень ваша... Это уже ваши проблемы. Но эти проблемы отражаются в проблемности вашего кода, ибо вы используете jQuery просто по незнанию.

Вспомните последнюю тему, в которой я дал комментарий по вашему коду, хотя и не вам лично, а лишь упомянул. Я конечно понимаю, что это вам "костыль" был, хоть вы и смолчали. Но давайте по полочкам:

И так, требовалось скрывать элементы меню, которое к великому ужасу построено на таблице. Хотя это очень плохо, ну коли хочется или не понимают, что это плохо, будем с таблицей работать. Но что сделали вы, вы помните код свой? Ваш код, это плод полного незнания DOM-структуры документа.

Требовалось закрывать строки таблицы принадлежащие субкаталогам. Что вы сделали? Да ничего, просто наворотили кучу строк "честно" перебирающих ячейки таблицы. А зачем? Ведь даже в свете последних достижений французской "демократии" очень легко запомнить - DOM, это тот же Дом, который также ассоциируется с семьей. И в DOM, как и в Дом кроме сестер есть и братья. Разница только в том, что DOM, это исключительно "французская" семейка, в которой нет мамы и папы, одни только родители - Родитель 1, Родитель 2... и так до .... на радость французскому парламенту. Вот только уже по этому можно навсегда запомнить - в DOM-структуре документа есть братские отношения!

Именно с братьями в данном случае надо работать, а не с дочками как это вы сделали. Ведь требовалось простое - скрывать братьев "младших". А для того, чтобы не скрыть и "одногодок" при этом, достаточно пометить братьев "одногодок". И весь код, это всего лишь одна строка:
<style>
   #menu {border: 1px solid #000; cursor: default;}
   #menu tr {display: none;}
   #menu td {padding-left: 20px;}
   .second, .sub {display: block !important;}
   .sub {cursor: pointer;}
   .second td {width:400px; padding:4px !important; background: #eee; border: 1px solid #000; font-weight: bold}
</style>
<script>
$(function(){
   $("#menu tr.second").click(function() {
       $(this).nextUntil("tr.second").toggleClass("sub");
   });      
});    
</script>
<table id="menu"> 
   <tr class="second"><td colspan="5">Категория 1</td></tr> 
   <tr><td>1.1</td><td>1.2</td><td>1.3</td><td>1.4</td><td>1.5</td></tr> 
   <tr><td>1.1</td><td>1.2</td><td>1.3</td><td>1.4</td><td>1.5</td></tr> 
   <tr class="second"><td colspan="5">Категория 2</td></tr> 
   <tr><td>2.1</td><td>2.2</td><td>2.3</td><td>2.4</td><td>2.5</td></tr> 
   <tr><td>2.1</td><td>2.2</td><td>2.3</td><td>2.4</td><td>2.5</td></tr> 
   <tr><td>2.1</td><td>2.2</td><td>2.3</td><td>2.4</td><td>2.5</td></tr> 
   <tr class="second"><td colspan="5">Категория 3</td></tr> 
   <tr><td>3.1</td><td>3.2</td><td>3.3</td><td>3.4</td><td>3.5</td></tr> 
   <tr class="second"><td colspan="5">Категория 4</td></tr> 
   <tr><td>4.1</td><td>4.2</td><td>4.3</td><td>4.4</td><td>4.5</td></tr> 
</table>

Создатели jQuery прекрасно знают и DOM, и JavaScript, потому и создали хорошую библиотеку. Но библиотеку для разумных действий, а не для замусоривания от непонимания. А вы еще говорите о чистоте.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования