新人PGの学び

プログラマーの卵のlog

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'] : "";