HTML Form으로 Request 변수를 전달할 때 설정이 되어 있는지 확인하는 PHP 함수를 만들어봤습니다.'
ToC on/off
개요
웹페이지를 만들다 보면 <form> 태그로 여러가지 Request 파라미터를 전송하게 됩니다.
이때 파라미터를 전송 받은 페이지에서 파라미터가 전송되었는지 즉, 변수가 설정되어 있는지 확인하는 작업이 필요한 경우가 있는데
PHP에서 좀 더 쉽게 확인할 수 있는 함수를 만들어봤습니다.
전송하는 HTML 페이지
아래와 같이 파라미터를 전송하는 HTML 페이지가 있다고 가정해보겠습니다.
<form action="input_insert.php" method="post">
<input type="text" id="param_1" name="param_1" value="value_1">
<input type="text" id="param_2" name="param_2" value="value_2">
<input type="text" id="param_3" name="param_3" value="value_3">
<input type="text" id="param_4" name="param_4" value="value_4">
<input type="text" id="param_5" name="param_5" value="value_5">
</form>
전송받는 PHP 페이지
이때 파라미터를 전송 받은 페이지에서 파라미터가 전송되었는지 확인하는 작업이 필요한 경우가 있습니다.
파라미터가 전송되지 않았는데 $param_val = $_POST[$param] 이렇게 값을 변수에 저장하려고하면 오류가 발생하게 됩니다.
그러므로 미리 파라미터가 설정되어 있는지 확인하고, 설정되어 있으면 그때 값을 변수에 저장하는 순서로 진행하게 됩니다.
<?php
if (isset($_POST[$param]))
{
$param_val = $_POST[$param];
}
?>
함수 사용 예시
그런데 파라미터가 1~2개일 때는 괜찮지만, 개수가 늘어나면 코드만 불필요하게 늘어나는 느낌이 들게 됩니다.
그래서 파라미터가 여러 개일 때 확인하는 함수를 만들었습니다.
사용 방법 예시 아래와 같습니다.
<?php
$arr_param = array ("param_1", "param_2", "param_3", "param_4", "param_5");
if (param_isset_post($arr_param))
{
//5개의 파라미터가 모두 존재할 경우에만 코드 실행
}
?>
파라미터의 이름을 배열에 넣어서 전달하고 함수에서는 전달 받은 파라미터 중에서 1개라도 존재하지 않을 경우 false 값을 리턴하도록 구성했습니다.
그러므로 반드시 전달되어야 하는 파라미터들을 확인해야 하는 경우에 사용하시면 되겠습니다.
만약, 전달되었을 때와 전달되지 않았을 때에 각각 다르게 처리해야 하는 경우에는 사용하시면 안되고 별도로 확인하는 과정을 거치셔야 합니다.
GET 파라미터 확인 함수
<?php
// GET 파라미터 체크
function param_isset_get ($arr_param)
{
$chk_param_isset = false;
foreach ($arr_param as $param)
{
if (isset($_GET[$param]))
{
$chk_param_isset = true;
}
else
{
$chk_param_isset = false;
break;
}
}
return $chk_param_isset;
}
?>
POST 파라미터 확인 함수
<?php
// POST 파라미터 체크
function param_isset_post($arr_param)
{
$chk_param_isset = false;
foreach ($arr_param as $param)
{
if (isset($_POST[$param]))
{
$chk_param_isset = true;
}
else
{
$chk_param_isset = false;
break;
}
}
return $chk_param_isset;
}
?>