ほとんどの場合、フォームのコンテンツを Action 属性に処理するために別の URL アドレスを指定しますが、場合によっては、フォーム データを自分自身に送信する必要があります。このときAction属性値はどのように指定すればよいのでしょうか?
if (isset($_POST['action']) && $_POST['action'] == 'submitted') {
print '
'; ><br> print_r($_POST); <br> print '<a href="'. $_SERVER['PHP_SELF'] .'">もう一度お試しください</a>'; print '
';
} else {
}
?>
上記のコードは、自分自身へのフォームの送信を実現します (注: 以前のバージョンでは) PHP4.1.0 の場合は、以下のコードの $_Post 変数の代わりに $_HTTP_POST_VARS を使用してください)。ここではサーバー変数 $_Server を使用して、現在のページの URL アドレスを取得し、それをフォームの Action 属性に割り当てます。ここでは、サーバーが URL リクエストを受信するのが POST リクエストであるか GET リクエストであるかを判断するために、小さなトリックが使用されています。つまり、リクエストを処理するときに、isset 関数を使用してこの隠し変数が設定されているかどうかを検出し、リクエストが POST メソッドを使用するか GET メソッドを使用するかを判断します。