AJAX e PHP interagiscono molto bene insieme. L'unico problema che ha PHP è riconoscere quando una richiesta viene fatta tramite AJAX.
Per questo motivo tutti i framework che usano AJAX impostano l'header HTTP_X_REQUESTED_WITH
nelle loro richieste.
HTTP_X_REQUESTED_WITH
La verifica da fare è la seguente:
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest') {
// gestisce la richiesta AJAX
}
L'alternativa
L'alternativa è usare un parametro aggiuntivo da allegare alla richiesta:
$ajax = $_POST['ajax'];
if(isset($ajax) && $ajax === '1') {
// gestisce la richiesta AJAX
}
Ovviamente se usate un framework dovreste utilizzare le routine di gestione AJAX del vostro framework e quasi sicuramente non avrete bisogno di ulteriori verifiche, che in genere si applicano solo quando state scrivendo il codice da zero.