PHPでのHTML フォーム (GET と POST)
PHPでのデーター送信方法
HTTP通信というプロトコルでWebサーバーとクライアント(Webブラウザなど)がデータを送受信するときに使う。
GET
form要素(タグ)のmethod属性がGET。
URLの末尾に「?」をつけ、「パラメーター名="値"」という形式でデータを送る。
URL自体は誰からでも閲覧可能。
データ量が制限されており、Internet ExplorerではURLに使用できる文字数が2,083文字と決まっているため、パスに使用できる最大文字数は2,048文字となる。
データをURLの末尾につけて送るため、制限される。
POST
form要素(タグ)のmethod属性がPOST。
POSTメソッドで送るデータはWebブラウザ上には現れない。
大量のデータを送信したい場合はPOSTメソッドを用いることになる。
POSTメソッドはHTTP通信で送信(リクエスト)されるので、URLの影響を受けることがない。
PHPのPG内でデータを受け取る変数(配列)
いずれも、HTMLフォームから入力された情報を取得するための「スーパーグローバル変数」と呼ばれる定義済みの連想配列。
$_GET
GET形式のHTMLフォームから入力された情報(getメソッドにより送信された値)
$_POST
POST形式のHTMLフォームから入力された情報(postメソッドにより送信された値)
Smartyでの書き方例
GETリクエスト
//パラメータ取得
if(isset($_GET["login_id"]) && $_GET["login_id"]){
$loginId = $_GET["login_id"];
}
if(isset($_GET["login_pass"]) && $_GET["login_pass"]){
$loginPass = $_GET["login_pass"];
}
//Form
$c_form = new Form($smarty, "login", (isset($pageName) && $pageName) ? $pageName : NULL);
//smartyレンダー
$c_form->setSmartyRender();
POSTリクエスト
//Post内容取得
$post = $c_form->getSubmitValues();
//Post内容のID・PASS取得
$loginId = isset($post['login_id']) ? $post['login_id'] : "";
$loginPass = isset($post['login_pass']) ? $post['login_pass'] : "";
このブログへのコメントは muragonにログインするか、
SNSアカウントを使用してください。