Ovo ja koristim:
Kôd:
function is_ajax_request()
{
return (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');
}
Ovo se lagano može zaobići slanjem odgovarajućeg HTTP_X_REQUESTED_WITH hedera, ali pssst, nemoj nikome da kažeš da baš to proveravaš.
edit: Uostalom, ako korisnik može da mu pristupi AJAX-om, zašto bi zabranjivao direktan pristup? Ako je potrebno da je ulogovan, ti proveravaj da li je ulogovan i u skripti koju pozivaš AJAX-om.