--- title: フォームやパラメーターについて tags: PHP author: hththt slide: false --- #引用/参考 「プロになるためのWeb技術入門」 「よくわかるPHPの教科書」 #ChromeでのHTTPログ確認方法 http://www.littleforest.jp/webtext/appendix.html #GETリクエストとPOSTリクエスト ![スクリーンショット 2015-08-21 15.56.33.png](https://qiita-image-store.s3.amazonaws.com/0/62264/ec625236-19b5-a265-69a1-1dbd0aab7e18.png) (※引用/プロになるためのWeb技術入門) #GET http://www.littleforest.jp/webtext/calc_get.html ```php:get.html メソッドによるパラメーター渡し

GETメソッドによるパラメーター渡し

+
``` ```php:get.php メソッドによるパラメーター渡し

GETメソッドによるパラメーター渡し


もう一度計算する ``` #POST http://www.littleforest.jp/webtext/calc_post.html ```php:post.html メソッドによるパラメーター渡し

POSTメソッドによるパラメーター渡し

+
``` ```php:post.php メソッドによるパラメーター渡し

POSTメソッドによるパラメーター渡し


もう一度計算する ``` #日本語のパラメーター渡しの件 http://www.littleforest.jp/webtext/greeting.html ```php:greeting.html 日本語のパラメータ渡し

日本語のパラメータ渡し

名前:
``` ```php:greeting.php 日本語のパラメータ渡し

日本語のパラメータ渡し


もう一度ごあいさつする ``` ###IE ![ie.png](https://qiita-image-store.s3.amazonaws.com/0/62264/eff09a76-68f0-4946-147a-b3f776421340.png) ※自動でパーセントエンコーディング ###Chrome/Firefox/Safari ![chrome.png](https://qiita-image-store.s3.amazonaws.com/0/62264/5270ecae-89f7-5b8e-4885-a65131267beb.png) ※日本語使用できる #$_REQUEST ####htmlspecialcharsとENT_QUOTES http://php.net/manual/ja/function.htmlspecialchars.php ```php:get2.html フォームに入力した内容を取得する
``` ```php:get2.php フォームに入力した内容を取得する ``` #$_SERVER ####1. 自ページから自ページへの遷移 http://pentan.info/php/php_self_security.html https://secure.php.net/manual/ja/reserved.variables.server.php ```
``` - $_SERVER[PHP_SELF]を使わない - URLに何も書かなければよい ``` ``` https://secure.php.net/manual/ja/reserved.variables.server.php #$_FILES(画像をアップロードする) ```imgupload.html 画像をアップロード

画像をアップロード

``` ```php:imgupload.php 画像をアップロード

画像をアップロード

'); print('ファイルタイプ(type): ' . $file['type'] . '
'); print('アップロードしたファイル(tmp_name): ' . $file['tmp_name'] . '
'); print('エラー内容(error): ' . $file['error'] . '
'); print('サイズ(size): ' . $file['size'] . '
'); // ファイルアップロードの処理をする $ext = substr($file['name'], -3); if ($ext == 'gif' || $ext == 'jpg' || $ext == 'png') { $filePath = './user_img/' . $file['name']; move_uploaded_file($file['tmp_name'], $filePath); print(''); } else { print('※拡張子が.gif, .jpg, .pngのいずれかのファイルをアップロードしてください'); } ?>

``` ![スクリーンショット 2015-08-21 20.08.21.png](https://qiita-image-store.s3.amazonaws.com/0/62264/350ce74d-6c67-7276-47e0-18f4ebf85557.png) - フォームを送信するとき、エンコードをする。 - 「multipart/form-data」は、ファイルを送信できる方式   (画像をアップロードするときには必ずこの属性が必要) - POST方式を使う。(GETでは送信されない) - 特別な変数「$_FILES」で渡される。連想配列として格納されているので、「$_FILES['my_img']」などキーを指定して取り出す。 ###ファイルのアップロード - ファイルアップロードでは、決まった連想配列になっている。 - 「name」「type」「error」「tmp_name」(一時的にアップロードされたファイル名)というキー ``` // ファイルアップロードの処理をする $ext = substr($file['name'], -3); if ($ext == 'gif' || $ext == 'jpg' || $ext == 'png') { $filePath = './user_img/' . $file['name']; move_uploaded_file($file['tmp_name'], $filePath); print(''); } else { print('※拡張子が.gif, .jpg, .pngのいずれかのファイルをアップロードしてください'); } ``` ###拡張子のチェック(substr) http://php.net/manual/ja/function.substr.php うしろから3文字の部分を切り取りチェック ###move_uploaded_file アップロードされたファイルは、フォームが送信されると一時的に保存する。 それからプログラムの指示に従って、適切な場所に移動する。 ![スクリーンショット 2015-08-21 20.22.27.png](https://qiita-image-store.s3.amazonaws.com/0/62264/93829fcd-cc5d-7665-0d02-0ea00d6b46c6.png) ``` プール値 = move_uploaded_file(コピー元,コピー先); ``` - コピー元は、temp_name - ここではuser_imgというフォルダを作成(書き込み権限を与える)しておき、画像を移動させている。 ###一時保存される場所を知る(「php.ini」で設定可能) ```php ``` ####マニュアル http://jp.php.net/manual/ja/features.file-upload.post-method.php #パラメータの使い方(サンプルから抜粋) ##会員登録 #####「$_REQUEST」 http://php.net/manual/ja/reserved.variables.request.php http://plog.pya.jp/program/php/lesson09/sample01.html ```join/check.php
« 書き直す |
``` ```php:join/index.php if ($_REQUEST['action'] == 'rewrite') { $_POST = $_SESSION['join']; $error['rewrite'] = true; } ?> //セッションに保存した値を$_POSTに代入(フォームに入力していた内容を再現) //画像を再アップロードのエラー文言を表示 ``` ##投稿表示 ```php:index.php [Re]

``` ```php

``` ```php //1件以上あればリンク表示 0): ?> 返信元のメッセージ [削除]

``` ```php