Zdravím.
Věřím že mnoho z vás někdy vidělo takovou tu klikačku na netu - je odkaz vygenerovaný každému zaregistrovanému uživateli, který jej umístí kamkoliv. Jakmile na něj někdo klikne, zobrazí se mu třeba "právě jsi byl zasažen sněhovou koulí" atd. Já jednu takovou klikačku vytvářím pro kamaráda, který ji ukrutně chce. Ale nevím, jak mám systém ochránit proti refresh = přičtení bodů.
Jak mám udělat, aby se nikomu nepřičetly body vícekrát třeba pomocí refreshe?
Díky všem,
Khubajsn
Fórum › PHP
Ochrana proti vícenásobnému přičtení bodů
Můžeš si někam ukládat IP adresy těch, co klikli (např. do databáze, do souboru) a pak před přičtením bodů ověříš, jestli už na to uživatel s tou IP adresou dřive neklikl. To ti zajistí, že každá IP adresa má maximálně jeden klik.
Nebo můžeš po kliknutí přičíst hlas a pak přesměrovat uživatele na stránku, kde si může refreshovat jak chce (může se jednat třeba o nějakou stránku, kde uvidí jen výsledek toho kliknutí). To uděláš pomocí fce Header('Location: '). Více podrobností v manuálu: http://cz.php.net/manual/en/function.header.php
Tím vlastně omezíš refreshování, ale uživatel může pořád dokola klikat na odkaz a body se budou přičítat.
Mej dalsi sloupec a v nem identifikator usera.
Prostě uděláš jednu tabulku, kam stačí dávat IP adresy, ze kterých bylo na odkaz kliknuto. Pak už jen jednoduchým selectem d zb zjistíš, zda hledaná IP již v DB je...pokud ano, vypíšeš uživateli, že již na odkaz klikl nebo ho někam přesměruješ, když se uživatelova IP nebude shodovat s žádnou IP v DB, tak bude jeho prokliknutí "platné" :) neviděl bych v tom žádnou vědu...
OK, ale v SQL nejsem nějak vynikající.
Mohl bys mi udělat skript, který by zjistil jestli IP není v tabulce, pokud je tak echo Vicenasobne neni povoleno a pokud neni tak pricist do sloupce body +1 a pridat do tabulky novou ipku?
Nejak takto overis Viacnasobne kliknutie.... ostatne si dorob.. nie sme charita :smile3:
a vytvor si prislusnu db a pripoj sa k nej.... to su zaklady ktore sa musis naucit sam.... resp. pohladaj aj tu na programujte.com nejake clanky/navody
$ipecka = $REMOTE_ADDR;
$overpripoj = mysql_query("SELECT * FROM ipadresy WHERE ipadresa='".$ipecka."'") or die ("Nepodarilo sa spojiť z databazou");
$overpocet = mysql_num_rows($overpripoj);
if ($overpocet==1) {
// a pripocitas kliknutie do db
Header("Location: adresa kde ho presmeruje a vypise ze ma bod.php");
} else {
Header("Location: adresa kde ho presmeruje a vypise ze uz klikol.php");
}
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Ochrana proti robotom — založil Non-Captcha
Switch - ochrana proti pismenum — založil Kuchar
Ochrana proti refresh spamu v guestbook — založil Maxtor
Ochrana eshopu proti nelegálnímu šíření — založil plasmo
Anonymizacia MEGAVIDEO embedu (ochrana proti kopirovaniu) — založil Kuko.sk
Moderátoři diskuze