There is no guaranteed way to enforce that. You could look for a $_SERVER['HTTP_REFERER'] value, but you can get false negatives on that depending on things like browser or proxy security settings/preferences, plus the referer header can be easily spoofed by any semi-knowledgeable person/script generating their own HTTP request.
I suppose you could use sessions, generate a unique token, store it in the $_SESSION array and add it as a URL query string variable/value pair in the link, then if the link is clicked, make sure the two match. Again, may not be 100% effective, but could be pretty effective, especially if you're sure to regenerate (or delete?) the token value on each page access.