Block countries you are not allowed to serve
GeoIP at the edge or in PHP, applied to earning and signup rather than to content, with a message that says what happened.
12 entries
GeoIP at the edge or in PHP, applied to earning and signup rather than to content, with a message that says what happened.
Give every user their own address while the private keys stay offline. The watch-only pattern, and why the gap limit matters.
The HMAC is over the raw POST body, not the parsed array. Rebuilding it from $_POST is why so many handlers reject every callback.
A checkbox, a label and a sibling selector. Works with scripts disabled, ships nothing to parse, and cannot break on a slow connection.
Proportions of a whole, drawn with stroked arc paths. Includes the one case that breaks every naive implementation: a single slice at 100%.
For ranked lists — top pages, top referrers, top earners. Horizontal because labels are words, and words do not fit under a vertical bar.
A bait element and one class toggle. Ask, do not block — a wall costs you the visitor and the search ranking.
Server-rendered SVG with native tooltips. No chart library, no CDN, no build step — which is what makes it portable to a site you hand to someone else.
Fetch the page, look for your token in a meta tag, and only let verified sites earn. The empty-needle bug in this check is worth knowing about before it bites you.
The swap technique, plus the one line that stops the visitor's own click from cancelling it — the reason most popunder code silently loses the traffic it was supposed to send.
Every per-IP limit you have is only as good as this function. Reading X-Forwarded-For unconditionally hands attackers a free reset on all of them.
The callback from FaucetPay's merchant checkout is not proof of payment. Here is the server-side verify call, including the endpoint shape that quietly 404s if you get it wrong.