Система лайків на php і ajax
Напевно, майже кожен з Вас знає, що таке лайки. Однак, крім лайків в соціальних мережах, можна зробити свою власну систему лайків на PHP і Ajax. У цій статті ми це докладно розберемо.
Безумовно, на практиці настійно рекомендую зберігати лайки в базі даних. Однак, в рамках даної статті, щоб код легко було перевірити, я вирішив зробити зберігання лайків в ini-файлі. Отже, ось власне файл likes.ini:
Відео: PHP Tutorials Create a # 39; Like # 39; Button jQuery AJAX Part 5 7
1=12
2=0
3=6
Формат наступний: "id_статьі = колічество_лайков". Тепер займемося підготовкою даних для виведення на сторінку:
lt ;?php
$ id =1-// ID статті
$ data = parse_ini_file("Likes.ini") -// Парс INI-файл
$ likes = $ data[$ id] -// Отримуємо кількість лайків у статті
?gt;
Код прокоментований, тому проблем з його розумінням виникнути не повинно. Тепер приступимо до HTML-коду:
lt;? =$ id?gt;"Gt;lt;? =$ likes?gt;
Тут ми просто виводимо дані на сторінку. Самому блоку можна задати, безумовно, різні стилі (наприклад, хоча б cursor: pointer-) для краси.
переходимо до jаvascript: Наше завдання при кліці відправити запит на сервер, передавши ID статті:
Тут ми перехоплюємо клік по контейнеру #like. Далі відправляємо запит, передавши відповідний ID. Отримавши позитивну відповідь від сервера, збільшуємо кількість лайків на 1 в блоці. Якщо прийшла відповідь false від сервера, то повідомляємо про помилку.
Відео: Міні Ajax & PHP система за привітав
І, нарешті, прийшов час написати скрипт like.php, який і займається збільшенням числа лайків:
lt ;?php
$ text = file_get_contents("Likes.ini") -// Отримуємо вміст файлу
$ likes = explode(" N", $ text) -// Розбиваємо рядок на масив по разделителю у вигляді переходу на новий рядок
$ new_likes = array() -// Масив лайків з новими даними
for($ i =0- $ i lt; count($ likes) - $ i++){
$ parts = explode("=", $ likes[$ i]) -// Розбиваємо рядок виду "id_статьі = колічество_лайков" за знаком одно
if($ parts[0]== $ _POST["Id"]) $ parts[1]+=1-// Збільшуємо число лайків на 1 у статті з переданим ID
$ new_likes[]= implode("=", $ parts) -// Формуємо новий рядок виду "id_статьі = колічество_лайков" і додаємо в масив
}
$ text = implode(" N", $ new_likes) -// Перетворимо масив з новими даними в рядок з роздільником у вигляді переходу на новий рядок
echo file_put_contents("Likes.ini", $ text) -// Записуємо рядок в файл і виводимо false у разі невдачі
?gt;
От і все. Однак, безумовно, даний скрипт вкрай далекий від того, що повинно бути. Далі цю структуру вже треба нарощувати залежно від Ваших цілей. Що, швидше за все, буде потрібно ?. По-перше, захист від накруток, хоча б записувати в cookie інформацію про те, що користувач вже у цій статті поставив лайк. Або можна дозволити ставити лайки тільки зареєстрованим користувачам (як це робиться в соціальних мережах).
Також зверніть увагу, що в даному скрипті при спробі додати лайк до статті, якої немає в INI-файлі, нічого не вийде. Ця проблема вирішується додаванням нового рядка в INI-файл, якщо в процесі циклу так і не було виявлено шуканої статті. Але, з огляду на, що все одно лайки треба зберігати в базі даних, я прибрав цю додаткову функціональність з коду.
Ось таким чином робиться система лайків на PHP і Ajax.
- Вийшов відеокурс "jаvascript, jquery і ajax з нуля до гуру"
- Як зробити 3d модель об`єкта на jаvascript.
- Як динамічно отримувати коментарі з бази даних.
- Що таке long-polling, websockets, sse і comet
- Як зробити динамічне додавання коментарів, використовуючи ajax.
- Як зробити коментування на html-сайті
- Коли варто використовувати jquery
- Як зробити реєстрацію та авторизацію користувачів на сайті
- Як зробити сторінку користувача
- Як зробити чат
- Php-скрипт для завантаження курсів валют
- Відстеження лайків
- Перевірка зайнятості логіна на ajax
- Відправка асинхронних запитів на jquery.
- Чи варто зберігати зображення в бд
- Відправка post-запитів через jаvascript
- Динамічне завантаження файлів на jquery
- Відправка ajax-запиту на інший домен
- Nodejs. Template engine. Частина 1.
- Читання ini-файлу в php
- Винагороди за консультування на сайті