PGmajster
9.11.2013, 21:11:20
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
9.11.2013, 21:19:48
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
9.11.2013, 21:38:51
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
9.11.2013, 21:42:03
Tak, zapisujesz IP użytkownika i powiązujesz go np. z id newsa, potem sprawdzasz czy user polubił już czy nie
PGmajster
9.11.2013, 22:29:13
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
<?php
include("polacz.php");
$query = mysql_query("select * from news where id='".(int
)$_GET['id']."'"); // 1 $id =$_GET['id'];
$sql = "update news set diaxy=diaxy+1 WHERE `id` = '$id'";
$ip=$_SERVER['REMOTE_ADDR'];
$query = mysql_query("insert into blockip values('','".$ip."')");
} else {
echo 'Cos poszlo nie tak!'; }
?>
Z góry dzieki za pomoc.
Szymciosek
9.11.2013, 22:45:32
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
9.11.2013, 22:59:31
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
9.11.2013, 23:42:48
Szymciosek napisał co i jak
PGmajster
10.11.2013, 00:55:51
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.