Authentication




Cancel OK
B!コメントする  2013-08-21 22:24:00 by old

よくつかう自作関数II

http://zeijaku.net/bloghistory/?search=201304260913というのでPOST処理を書いたけど
あれだと不完全な場合があることがわかった。

フォームでPOSTする場合は

<form method="post" action="">
<input type="hidden" name="val" value="value">
<input type="submit" value="send">
</form>


こんな感じでPOST送信するわけだけど同じ名前で複数送る場合もたまにある。
アンケートとかで複数選択のチェックボックスで値をまとめて受け取りたい時に

<input type="checkbox" name="riyuu[]" value="1">1
<input type="checkbox" name="riyuu[]" value="2">2
<input type="checkbox" name="riyuu[]" value="3">3
<input type="checkbox" name="riyuu[]" value="4">4
<input type="checkbox" name="riyuu[]" value="5">5


として配列として送る場合は上記に紹介したものだと受け取ることが出来ない。
そこで単一でも配列でも同じように受け取れるように改造してみた。

/*
* ********************
* 存在確認 [$
POST]
* ********************
* @ val = POST名
* @ security = XSS=<>&"'をエンティティ化
*/
function check_post($val, $security = false)
{
$result = "";
if( isset($_POST[$val]) )
{
// 配列確認
if( is_array($_POST[$val]) == true )
{
$result = array();
foreach( $_POST[$val] as $key => $value )
{
if( $security == "xss" )
{
$result[] = htmlspecialchars($value, ENT_QUOTES, 'UTF-8');
}
else
{
$result[] = $value;
}
}
}
else
{
$result = "";
if( isset($_POST[$val]) )
{
if( $security == "xss" )
{
$result = htmlspecialchars($_POST[$val], ENT_QUOTES, 'UTF-8');
}
else
{
$result = $_POST[$val];
}
}
}
}
return $result;
}


こうすることでどういった場合でも中身を受け取れるようになった。
自作関数の中身がこうして少しずつではあるけど改良されていった。


PHP  

  • コメント
  • コメントはまだありません