Система лайків на php і ajax

Система лайків на 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.

Поділися в соціальних мережах:

Схожі
Як динамічно отримувати коментарі з бази даних.Як динамічно отримувати коментарі з бази даних.
Nodejs. Template engine. Частина 1.Nodejs. Template engine. Частина 1.
Відправка асинхронних запитів на jquery.Відправка асинхронних запитів на jquery.
Відстеження лайківВідстеження лайків
Ajax запити за допомогою методів $ .post () і $ .get ().Ajax запити за допомогою методів $ .post () і $ .get ().
Вийшов відеокурс "jаvascript, jquery і ajax з нуля до гуру"Вийшов відеокурс "jаvascript, jquery і ajax з нуля до гуру"
Як зробити динамічне додавання коментарів, використовуючи ajax.Як зробити динамічне додавання коментарів, використовуючи ajax.
Відправка post-запитів через jаvascriptВідправка post-запитів через jаvascript
Винагороди за консультування на сайтіВинагороди за консультування на сайті
Чи варто зберігати зображення в бдЧи варто зберігати зображення в бд
» » Система лайків на php і ajax