Reflinki
W wielu grach występują tzw. „reflinki” – ktoś kliknie na specjalny link to któryś gracz dostaje jakieśtam niewielkie bonusy typu 5$/ileśtam szacunku itp.
Przy czym warto ustawić aby dany gracz mógł otrzymać tylko raz na 24h profity od danej osoby.
To zabieramy się do roboty ![]()
Tworzymy sobie taką tabelę w bazie:
CREATE TABLE `ref` ( `kiedy` int(11) NOT NULL, `ip` varchar(15) NOT NULL, `user` varchar(20) NOT NULL )
Kiedy – to pole odpowiada za czas (time()) – czyli kiedy dana osoba weszła na ten link
Ip – IP delikwenta
User – nick/można oczywiście użyć id usera na którego konto wpłyneły profity
<?php //Po odpowiednim przefiltrowaniu pobieramy dane gracza z bazy if($istnieje==0){ echo('Taki gracz nie istnieje!'); $blad++; } if($_SESSION["logged"]==TRUE){ if($info[0]==$_SESSION["login"]){ echo('Nie mozesz atakowac samego siebie!'); $blad++; } } if($blad==0){ $p = time() - 86400; //Czasami w ten sposób można oszukać proxy, ale tylko czasami.. if ($_SERVER['HTTP_X_FORWARDED_FOR']) { $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];} else { $ip = $_SERVER['REMOTE_ADDR']; } //Sprawdzamy czy z takiego IP ktoś w ciągu ostatnich 24 godzin wchodził na reflinka tej osoby if($byl==0){ $now = time(); mysql_query("INSERT INTO ref VALUES ('$now','$_SERVER[REMOTE_ADDR]','$info[0]')"); //Wyświetlamy informacje do usera, mówiącą co właśnie się stało echo('{nick gracza} sprzatnął/eła Cię i w dodatku zgarnął/eła 50 dolarów!'); $kasa = $info[1] + 50; mysql_query("UPDATE players SET kasa=$kasa WHERE nick='$info[0]'"); }else{echo($info[0].' załatwił cie w ciagu ostatnich 24 godzin. Tym razem da Ci spokój'); } } ?>
No comments yet
