フォーム関連の処理、GET、POST
作成:2006-04-20、更新:2008-12-08
GET、POSTなどフォーム関連の処理。
フォームなどから引数を取得
・POSTの場合
$category =$_POST['category'];
・GETの場合
$category = $_GET['category'];
・タグを無効にする場合は、htmlspecialchars
<や>などを<や>などにする
$category = htmlspecialchars($_POST['category']);
・受け取った値をまとめて変換する例
・半角カタカナを全角カタカナにする
foreach($_POST as $key => $value){
$_POST[$key] = mb_convert_kana($value, K);
}
数値に変換する
・フォームの数値
POSTやGETの引数の数値は、文字列is_numeric()==1なので、
整数値として受け取る場合は、
(int) $value; や intval($value); でキャストして
強制的に整数値にする。
値に文字列が含まれている場合、例えば、
「12abc」は「12」、「abc12」は「0」になる。
・例
$category_num = (int) $_GET['category_num'];
空文字の判別、空白かどうか調べる
・=== または !==
=== は、比較するものが等しく、型も等しい場合にtrue
!== は、===の逆
・例1
以下の場合、$sampleが空文字の場合だけtrue
if($sample === "")
・例2
以下の場合、$sampleが空文字以外のNULL、0、"0"などもtrue
if($sample == "")
if(!$sample)
if(empty($sample))
・empty
変数の値が空かどうか調べる
true:未定義、NULL、""(空文字)、0、"0"、FALSE
・例
$sample = $_POST['sample'];
if(!empty($sample)){
//空でない場合
}else{
//空の場合
}
・isset
変数が定義されているかどうか調べる
false:未定義、NULL
画像をアップロード
・送信フォーム側
FORMタグに、ENCTYPE="multipart/form-data"を書く。
<FORM ACTION="./sample.php" METHOD="POST" NAME="form1" ENCTYPE="multipart/form-data">
<INPUT TYPE="file" NAME="item_image1">
<INPUT TYPE="submit" VALUE="送信">
</FORM>
・受け取り側サンプル
$item_image1 = $_FILES["item_image1"]["name"];
//画像ファイル保存
$item_image1_path = "../../image/" . $item_image1;
if(move_uploaded_file($_FILES["item_image1"]["tmp_name"], $item_image1_path)){
chmod($item_image1_path, 0644);
}