Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Własny system lajków
Forum PHP.pl > Forum > Przedszkole
PGmajster
Witajcie. Piszę własny system newsów, który ukończyłem. Znalazłem kod na "Lubie to!" facebook, ale nie pasuje mi. Chciałbym stworzyć własny system 'lajków'. Dodałem już w mysql tabele "like", dodałem w newsie "Lubie to!" i odnośnik do like.php?id=<?= $rekord[0] ?>. W pliku like.php nie mam na tą chwilę nic, ale pytanie tkwi w czymś innym. Jak zrobić, aby można było kliknąć w "Lubie to!" tylko raz? Myślę, że potrzebuje zapisu IP, ale nie wiem jak się do tego zabrać.

Pozdrawiam, PGmajster.
Szymciosek
Ogólnie na fb jest to pewnie sprawdzane po stronie systemu. Do samej bazy ląduje powiedzmy ID użytkownika, który kliknął w LUBIĘ TO.

Jeżeli masz system logowania itd, to nad tym pomyśl.

Jeżeli nie masz, to musiałbyś zapisać IP usera do bazy.

http://techtalk.virendrachandak.com/gettin...dress-in-php-2/
PGmajster
Jestem w PHP początkujący, a więc jakim kodem sprawdzić, czy już jest takie IP? Np. jak już jest IP w bazie to napis "Kliknąłeś już lubie to!" a jak nie ma IP w bazie to "Lubie to!" ?
Turson
Tak, zapisujesz IP użytkownika i powiązujesz go np. z id newsa, potem sprawdzasz czy user polubił już czy nie
PGmajster
Ok, dodaje lajki oraz dodaje IP do bazy danych. Jak zrobić kod na sprawdzenie, czy kogoś IP jest w bazie, a jeżeli jest to by wyświetliło komunikat?

Mój aktualny kod to

  1. <?php
  2. include("polacz.php");
  3.  
  4.  
  5. $query = mysql_query("select * from news where id='".(int)$_GET['id']."'"); // 1
  6. $rekord = mysql_fetch_array($query);
  7. $id =$_GET['id'];
  8. $sql = "update news set diaxy=diaxy+1 WHERE `id` = '$id'";
  9.  
  10. $ip=$_SERVER['REMOTE_ADDR'];
  11. $query = mysql_query("insert into blockip values('','".$ip."')");
  12.  
  13. if(mysql_query($sql)){
  14. echo 'Dodano diaxa!';
  15. } else {
  16. echo 'Cos poszlo nie tak!';
  17. }
  18.  
  19. ?>


Z góry dzieki za pomoc.
Szymciosek
Masz już na początku adres IP usera, który wszedł na stronę z zamiarem kliknięcia like.

Teraz robisz zapytanie do bazy:
SELECT id FROM likes WHERE id = id_lajka_z_danej_strony && ip_address = ip_usera

Sprawdzasz później czy to zapytanie coś zwróciło. Jeżeli tak, to znaczy, że klient z tego IP klikał już konkretnego like i blokujesz mu przycisk na wejściu. Jeżeli jest inaczej, to zostawiasz przycisk normalny.
PGmajster
To już mam.

Zrobiłem baze news, w której są like.


oraz baze blockip, w której są adresy IP + id newsów, gdzie user już kliknął "Dodaj like!".


Wszystko ładnie dodaje, like się sumują (gdy jest 10 i doda się like to jest 11).

Lecz jak zrobić sprawdzanie czy user już w tym newsie dał "LIKE"? Podałem wyżej screena z bazy blockip, na pewno jest jakiś kod aby sprawdzić, czy user już kliknął "like", z góry dziękuje za kod!

Pozdrawiam.
Turson
Szymciosek napisał co i jak
PGmajster
Wiem, że napisał, ale ja nie wiem jakiego kodu użyć.

Ok wykonałem. Przypomniałem sobie, że miałem skrypt rejestracji na komputerze i z niego wyciągnąłem sprawdzanie, czy już jest użyty taki nick. Wszystko działa. Dziękuje za fatygę! Pozdrawiam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.