CodeLog

POST・Ajaxの判定

PHP側でPOST送信やAjax通信でリクエストされたかを判定する方法を解説します。処理の分岐や不正リクエストの防止に役に立ちます。

POST判定

if($_SERVER["REQUEST_METHOD"] == "POST"){
    // POST送信された場合の処理
}

POST送信されたかどうかを確認するには、$_SERVER["REQUEST_METHOD"]がPOSTになっているかを判定します。ちなみにGET送信時にはGETが入りますので、GET送信の判定も可能です。

Ajax判定

if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){
    // Ajax通信された場合の処理
}

Ajax通信かどうかを判断するには、$_SERVER["HTTP_X_REQUESTED_WITH"]に「XMLHttpRequest」が入っているかを判定します。念のため、strtolowerで小文字に変換してから判定をおこなっています。