0 Пользователей и 1 Гость просматривают эту тему.
  • 37 Ответов
  • 935 Просмотров
*

hels

  • Осваиваюсь на форуме
  • 165
  • 0
Здравствуйте, нужно реализовать подсчет количества кликов по кнопке текущего пользователя. Т.е. чтобы за одну сессию если юсер кликнул на кнопку 1 или больше раз в БД прибавлялась эта единица к существующей сумме. Плюс ко всему нужно чтобы в БД обновлялась дата последнего клика. Как определить текущего юсера я знаю, а вот как добавлять эти данные нет.
*

hels

  • Осваиваюсь на форуме
  • 165
  • 0
немного не так сформулировал, в общем сколько бы раз юсер не кликнул на кнопку за один сеанс, в БД должна прибавляться только единица за один сеанс.
*

hels

  • Осваиваюсь на форуме
  • 165
  • 0
решил делать через запрос sql, но не могу разобраться как его написать правильно по новому синтаксису для Joomla и с защитой от иньекций. вот часть кода с запросом:
Код
$count = $result["count"] +1; // Берем число просмотров и добавляем +1 просмотр.
mysql_query("UPDATE `xxx_users` SET `zaka4ka`='".$count."' WHERE `id`='".$id."'"); //
*

midav

  • Живу я здесь
  • 927
  • 113
*

hels

  • Осваиваюсь на форуме
  • 165
  • 0
спасибо полезные статьи, вопрос там в таблицах указывается префикс с 2 нижними подчеркиваниями вот так #__content нужно именно с 2-мя или с 1-м нижним подчеркиванием? и такой синтаксис будет ли поддерживать j2.5?(я знаю что это ветка для 3, просто вопрос на адаптивность)
*

CaHeK_pk

  • Осваиваюсь на форуме
  • 115
  • 2
спасибо полезные статьи, вопрос там в таблицах указывается префикс с 2 нижними подчеркиваниями вот так #__content нужно именно с 2-мя или с 1-м нижним подчеркиванием? и такой синтаксис будет ли поддерживать j2.5?(я знаю что это ветка для 3, просто вопрос на адаптивность)

с двумя нижними слешами "#__имя-таблицы" и лучше использовать для подключения к бд средства joomla:
Код: php
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query->update('#__users')
->set('zaka4ka = "'. $count.'"')
->where('id = "'. $id.'"');
$db->setQuery($query)->execute();
#__users - если название таблицы к примеру: prefix_users
и да, 2.5 поддерживает данный синтаксис, если не ошибаюсь Joomla его поддерживает с версии 1.5, точно утверждать не могу
« Последнее редактирование: 25.03.2016, 09:23:09 от CaHeK_pk »
*

hels

  • Осваиваюсь на форуме
  • 165
  • 0
Видел вы уже написали, что тут sql иньекция(в предыдущем сообщении и удалили свой пост) перешел по вашей ссылке, так верно будет?
Код
$db = JFactory::getDBO();
settype($id,'integer');
settype($count,'integer');
$query = $db->getQuery(true);
$query->update('#__users')
->set('zaka4ka = "'. $count.'"')
->where('id = "'. $id.'"');
$db->setQuery($query)->execute();
*

CaHeK_pk

  • Осваиваюсь на форуме
  • 115
  • 2
Видел вы уже написали, что тут sql иньекция(в предыдущем сообщении и удалили свой пост) перешел по вашей ссылке, так верно будет?
Код
$db = JFactory::getDBO();
settype($id,'integer');
settype($count,'integer');
$query = $db->getQuery(true);
$query->update('#__users')
->set('zaka4ka = "'. $count.'"')
->where('id = "'. $id.'"');
$db->setQuery($query)->execute();

должно работать, можете увидеть результат вывода инъекции (в обычном формате SQL) через
Код: php
echo $query;
*

hels

  • Осваиваюсь на форуме
  • 165
  • 0
т.е. уже безопасно? или еще что-то добавить? еще прочел за JInput , но немного не понял, как его юзать..
*

CaHeK_pk

  • Осваиваюсь на форуме
  • 115
  • 2
т.е. уже безопасно? или еще что-то добавить? еще прочел за JInput , но немного не понял, как его юзать..
ничего безопасного нет:))но на этапе соединения с БД и работы с ней на данный момент здесь указан самый безопасный вариант.
Какая именно задача, вас с классом "JInput" интересует?
*

hels

  • Осваиваюсь на форуме
  • 165
  • 0
та вот думал нужно ли сюда JInput..
*

vipiusss

  • Профи
  • 5621
  • 322
  • Круглая ава-зло!
Я делал подсчёт кликов без БД.Без скриптов, чистый php.
Записывается просто в тексовый файл (можно и накручивать), только дату не выводил, но это думаю не проблема с выводом.
Вывод у меня-число кликов из txt файла.
Про дату не думал ещё (не надо было).
Если в теме захотите пример и решение, напишу.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

hels

  • Осваиваюсь на форуме
  • 165
  • 0
Я делал подсчёт кликов без БД.Без скриптов, чистый php.
Записывается просто в тексовый файл (можно и накручивать), только дату не выводил, но это думаю не проблема с выводом.
Вывод у меня-число кликов из txt файла.
Про дату не думал ещё (не надо было).
Если в теме захотите пример и решение, напишу.
спасибо, выкладывайте, интересный вариант, а в случае если каждому юсеру нужно определить количество кликов отдельно, подойдет?
*

vipiusss

  • Профи
  • 5621
  • 322
  • Круглая ава-зло!
а в случае если каждому юсеру нужно определить количество кликов отдельно, подойдет?
повторюсь, я делал просто кол-во кликов с записью в файл без БД.
ничего добавочного мне не надо было и я этим не извращался.
демо могу дать в личку, если напишите, сайт сырой и на показ нет желания выставлять, но функция работает.

вот код:

Код

<?php
if ($_GET['имя для скрипта']==1) {
header("location: http://ваш адрес что скачиваем);
$file=fopen("имя файла 1 для записи.txt","a+");
flock($file,LOCK_EX);
$count=fread($file,100);
$count++;
ftruncate($file,0);
fwrite($file,$count);
flock($file,LOCK_UN);
fclose($file);
}

else if ($_GET['имя для скрипта']==2) {
header("location: http://ваш адрес что скачиваем");
$file=fopen("имя куда записываем.txt","a+");
flock($file,LOCK_EX);
$count=fread($file,100);
$count++;
ftruncate($file,0);
fwrite($file,$count);
flock($file,LOCK_UN);
fclose($file);
}
?>


Числа указывают на лимит объёма, я указал 100 для своего.

Забыл, вот сам вывод:

<a href="http://имя кода(файла).php?имя текс дока, куда запись=номер файла(у меня они по номерам)">
отображаемое имя при клике</a>
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

vipiusss

  • Профи
  • 5621
  • 322
  • Круглая ава-зло!
про каждому юзеру, думаю не трудно:
получаем ИД юзера, дополняем ИФ/Елзе для выбора, иначе РЕТУРН.

///

если не понятны мои слова-замещения в коде, дам в личку прямой код и сами меняйте.

Количесво неограничено, просто добавляем else if ($_GET['имя для скрипта']==номер файла)

Поправка: файл на запись 666 текстовый должен быть, насколько это уязвимо, не думал.
У вас там просто будет число,1 символ, пробовал атаковать данный файл, скрипт не принимает, так что думаю можно не парится.
Хотя не гарантирую, что влезть в скрипт нельзя, узнайте у ГУРУ форума, если решите установить.
"Я не волшебник, я только учусь!"(с)
« Последнее редактирование: 25.03.2016, 13:30:46 от vipiusss »
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

hels

  • Осваиваюсь на форуме
  • 165
  • 0
Спасибо возьму себе на заметку, когда-то интересовался данным решением для другой задачи, но тут не такая необходимость, поэтому оставлю все в БД, как-то проще что-ли с ней работать.. думаю от маленького запроса в 2 строки сервер не упадет ))
*

hels

  • Осваиваюсь на форуме
  • 165
  • 0
Итак расскажу что мне нужно подробнее:
Код
Если (юсер гость)
{
 то ему выдается 1-я ссылка
}
Если нет
{
 то ему выдается 2-я ссылка;
 если юсер переходит по 2-й ссылке должна прибавляться единица в поле БД,
 но только один раз за сессию сколько бы раз юсер не кликнул по кнопке,
 и должна !обновляться! дата последнего клика(до даты я пока не дошел)
}

Вот что я сделал, прошу помочь, собрано из открытых источников, вопросы в коментах:
Спойлер
[свернуть]
*

vipiusss

  • Профи
  • 5621
  • 322
  • Круглая ава-зло!
Даже увидев, что у вас Скачать вообще не в функции, не стал смотреть код.
И визуально увидел отсебятину:

<script>
         function submitform(form){ //вместо form в скобках - должно быть formprice?
            document.forms[form].submit(); //вместо form в скобках - должно быть formprice?
         }
      </script>

Это кто вас так научил?
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

hels

  • Осваиваюсь на форуме
  • 165
  • 0
Даже увидев, что у вас Скачать вообще не в функции, не стал смотреть код.
И визуально увидел отсебятину:

<script>
         function submitform(form){ //вместо form в скобках - должно быть formprice?
            document.forms[form].submit(); //вместо form в скобках - должно быть formprice?
         }
      </script>

Это кто вас так научил?
на одном блоге вычитал, ссылку сейчас не смогу привести, но смысл был в том чтобы к ссылке href прикрутить sumbit чтобы определить что клик был сделан.. если у вас есть возможность, подскажите пожалуйста как правильно определить что юсер кликнул по ссылке..
« Последнее редактирование: 25.03.2016, 18:32:17 от hels »
*

vipiusss

  • Профи
  • 5621
  • 322
  • Круглая ава-зло!
так у вас <img src="images/button/price.png" alt="price" data-mce-src="images/button/price_dsu.png" border="0">Скачать</a> вообще мимо кода и в стороне пиво пьёт
Или вы это не видете?!

причёт тут ваши объяснение, если банально неправильно?!

вы даже алт не верно расписали.
да кто вас этому учит?

это что за порно: alt="price" data-mce-src="images/button/price_dsu.png"
« Последнее редактирование: 25.03.2016, 18:33:07 от vipiusss »
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

hels

  • Осваиваюсь на форуме
  • 165
  • 0
так у вас <img src="images/button/price.png" alt="price" data-mce-src="images/button/price_dsu.png" border="0">Скачать</a> вообще мимо кода и в стороне пиво пьёт
Или вы это не видете?!

причёт тут ваши объяснение, если банально неправильно?!

вы даже алт не верно расписали.
да кто вас этому учит?

это что за порно: alt="price" data-mce-src="images/button/price_dsu.png"
по поводу порно - http://stackoverflow.com/questions/23284931/tinymce-editor-adds-data-mce-src-to-img c alt все норм это редактор балуется, тем не менее все работает

по поводу того что в стороне пиво пьет, вы неверно поняли, просто кнопка должна показываться в любом случае, поэтому она за границей условия, а сама часть ссылки которая у меня в условии обрамлена в echo
*

vipiusss

  • Профи
  • 5621
  • 322
  • Круглая ава-зло!
я думаю не верно
хотя я могу ошибаться
по логике цикл вашу кнопку не завершает и не добавляет++1 в if
вам виднее.
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

hels

  • Осваиваюсь на форуме
  • 165
  • 0
я думаю не верно
хотя я могу ошибаться
по логике цикл вашу кнопку не завершает и не добавляет++1 в if
вам виднее.
а в этой строке разве не определяется произошел sumbit или нет?
Код
if(isset($_POST["field-form-price"]))
*

robert

  • Профи
  • 4078
  • 376
Спойлер
[свернуть]
Должно работать, но надо делать проверку на IP, чтобы не накручивался счет при каждом клике.
« Последнее редактирование: 28.03.2016, 16:27:36 от robert »
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
*

vipiusss

  • Профи
  • 5621
  • 322
  • Круглая ава-зло!
echo рулит)))

думаю правильно, проверяйте.

спс за внимание, ждём ответ на адекватность кода от тех, кто установил.

Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

hels

  • Осваиваюсь на форуме
  • 165
  • 0
Спойлер
[свернуть]
Должно работать, но надо делать проверку на IP, чтобы не накручивался счет при каждом клике.
Спасибо за помощь, но не работает, вернее если зашел гость то условие выполняется, а если пользователь, то условие не выполняется, даже кнопка не отображается..  
*

hels

  • Осваиваюсь на форуме
  • 165
  • 0
нашел дубль значения value в условии, но это не меняет дело, копаю дальше..
*

robert

  • Профи
  • 4078
  • 376
Спасибо за помощь, но не работает, вернее если зашел гость то условие выполняется, а если пользователь, то условие не выполняется
Что не выполняется? Ваш код считает только клики пользователей, я логику не менял.
даже кнопка не отображается..
А кнопки там и не было: вместо нее для прикола я поставил текст "Хрен вам скачать".
нашел дубль значения value в условии
Да, это мой косяк, убрал.
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.
*

hels

  • Осваиваюсь на форуме
  • 165
  • 0
Короче немного разобрался, сейчас расскажу что я намудрил, я создал обычный HTML модуль через стандартное меню Joomla, потом поставил плагин sourcer, походу этот плагин режет HTML код, потому как условия php работают(пока в плане определения гость или нет зашел на сайт, т.к. нажать на кнопку не могу из-за обрезанного html). Может есть вариант как этот код подключить в отдельный файл, как плагин или модуль? Спасибо всем за помощь *DRINK*
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ограничение статей для пользователя

Автор Grunya

Ответов: 1
Просмотров: 41
Последний ответ 12.09.2017, 20:14:46
от Septdir
Дополнительные поля пользователя внести в письмо админу

Автор Аня

Ответов: 1
Просмотров: 59
Последний ответ 06.09.2017, 17:17:34
от Septdir
Ошибка при регистрации нового пользователя

Автор oleg-bogora

Ответов: 13
Просмотров: 617
Последний ответ 26.08.2017, 22:51:24
от kasper9820
Как изменить поля у формы редактирования профиля пользователя?

Автор ChervonStudio

Ответов: 0
Просмотров: 96
Последний ответ 13.08.2017, 18:01:16
от ChervonStudio
Как запретить выполнение скрипта по ID группы пользователя?

Автор Ishti39

Ответов: 3
Просмотров: 102
Последний ответ 12.08.2017, 10:26:11
от Ishti39