웹마스터 팁
page_full_width">
[Yangkun] (함수) 간단 각종 Global 변수 검사
2002.03.31 05:39
http://203.253.201.14/test/server_var.php안녕하세요.. 흠..흠..;;;
여기서 놀기는 많이 노는데 ...( 일명 그림자 회원 ^^V )
저는 별로 도움을 드리지 못한것 같아서요
함수 하나 올려볼려고 끄적 거립니다.
--------------------------------------------------------
게시판이나 어떤 웹 프로그램을 만들다 보면.
페이지에서 페이지로 넘어오는 인자(?) 들을 검사해야 할때가 있잖아요.
값들이 제대로 오나.. 안 오나...( 일반 프로그래밍할때 디버깅시에 Watch 라는 기능... )
그때마다 변수를 찍어 주는것이 귀찬잖아요... ( 귀찮? )
그래서 함수를 하나 만들었어요.
누구다 다 만들어서 쓰는거라 여기 없는것 같기도 하고..
그래도 머~ 혹, 생각치 못한 분들을 위해 올립니다.
밑에 적는 함수를 따로 파일로 만들어서
해당 함수를 쓰려는 파일에 include 하고요.
vars_test("SERVER") 혹은
vars_test("POST") 라고 호출하면 됩니다.
인자로 가능한것은
"SERVER" , "GET" , "POST" , "COOKIE" , "SESSION" , "FILES" , "ENV" , "REQUEST" , "GLOBLAS"
이상 9개 입니다.
단 !
php 4.1 이상에서만 됩니다.
_SERVER , _GET 등이 4.1 이후에 추가된 Predefined Variables 랍니다.
그리고 이넘들은 super global 이라지요.
여기서 질문 하나 !!
함수를 보면 인자를 $var_name 으로 받는데요
그래서 switch 로 분기 시켜주는데.
$vars = $$var_name;
이게 왜 안되죠?
그러면 저 Switch 는 없어도 될텐데..쩝~~~ 안되데요~~~
어쨌거나 저쨌거나 유용하게 사용하시기 바랍니다.
※ Server 맨마지막에
FILE_PATH 와 URL_PATH 는 제 필요에 의해서 계산해 넣은것입니다.
원래 _SERVER 에는 없어요.
/*************************************************
<function>
각종 서버 환경 변수들을 출력해준다.
테이블 형태로 출력해주며
감추기/보이기 기능을 가지고 있다.
<Return>
없다.
<Parameter>
변수 이름 "SERVER" , "GET" , "POST" , "COOKIE" , "SESSION" , "FILES" , "ENV" , "REQUEST" , "GLOBLAS"
<Comment>
디버깅(?)시 쓸려고 만들었다.
먼가 이상하게 돌아갈때 해당 페이지에서 vars_test("POST") 등으로
페이지로 넘어오는 변수와 값들을 검사할 수 있다.
이 함수는 PHP 4.1 이상에서만 작동한다.
흠흠.. 이전 버전에서는 $HTTP_ 어쩌구저쩌구... ^^;;
<Author>
Yangkun ( yangkun7@kornet.net )
2002 - 03 - 31 03:16:24
*************************************************/
function vars_test($var_name)
{
echo("
<script language='javascript'>
function show_hide_$var_name()
{
if( eval("document.all['$var_name'].style.display") == 'block' )
eval("document.all['$var_name'].style.display = 'none';");
else
eval("document.all['$var_name'].style.display = 'block';");
}
</script>
<h3><a href='#' onClick='show_hide_$var_name();return false;' onFocus='this.blur();'>$var_name</a></h3>
<div id='$var_name' style='display:none'>
<table width='100%' height='' border='1' cellpadding='0' cellspacing='0' bordercolordark='' bordercolorlight='' bgcolor=''>
<tr>
<td align='center'>KEY</td>
<td align='center'>VALUE</td>
</tr>
");
switch( $var_name ){
case "SERVER":
$vars = $_SERVER;
break;
case "GET":
$vars = $_GET;
break;
case "POST":
$vars = $_POST;
break;
case "COOKIE":
$vars = $_COOKIE;
break;
case "FILES":
$vars = $_FILES;
break;
case "ENV":
$vars = $_ENV;
break;
case "REQUEST":
$vars = $_REQUEST;
break;
case "SESSION":
$vars = $_SESSION;
break;
case "GLOBALS":
$vars = $GLOBALS;
break;
}
foreach ($vars as $key => $value) {
$value = nl2br($value);
$value = htmlspecialchars($value);
echo("
<tr>
<td><b>$key</b></td>
<td>$value</td>
</tr>
");
}
echo("
</table>
</div>
");
}
?>
----------------------------------------------------------------------------------------
여기서 놀기는 많이 노는데 ...( 일명 그림자 회원 ^^V )
저는 별로 도움을 드리지 못한것 같아서요
함수 하나 올려볼려고 끄적 거립니다.
--------------------------------------------------------
게시판이나 어떤 웹 프로그램을 만들다 보면.
페이지에서 페이지로 넘어오는 인자(?) 들을 검사해야 할때가 있잖아요.
값들이 제대로 오나.. 안 오나...( 일반 프로그래밍할때 디버깅시에 Watch 라는 기능... )
그때마다 변수를 찍어 주는것이 귀찬잖아요... ( 귀찮? )
그래서 함수를 하나 만들었어요.
누구다 다 만들어서 쓰는거라 여기 없는것 같기도 하고..
그래도 머~ 혹, 생각치 못한 분들을 위해 올립니다.
밑에 적는 함수를 따로 파일로 만들어서
해당 함수를 쓰려는 파일에 include 하고요.
vars_test("SERVER") 혹은
vars_test("POST") 라고 호출하면 됩니다.
인자로 가능한것은
"SERVER" , "GET" , "POST" , "COOKIE" , "SESSION" , "FILES" , "ENV" , "REQUEST" , "GLOBLAS"
이상 9개 입니다.
단 !
php 4.1 이상에서만 됩니다.
_SERVER , _GET 등이 4.1 이후에 추가된 Predefined Variables 랍니다.
그리고 이넘들은 super global 이라지요.
여기서 질문 하나 !!
함수를 보면 인자를 $var_name 으로 받는데요
그래서 switch 로 분기 시켜주는데.
$vars = $$var_name;
이게 왜 안되죠?
그러면 저 Switch 는 없어도 될텐데..쩝~~~ 안되데요~~~
어쨌거나 저쨌거나 유용하게 사용하시기 바랍니다.
※ Server 맨마지막에
FILE_PATH 와 URL_PATH 는 제 필요에 의해서 계산해 넣은것입니다.
원래 _SERVER 에는 없어요.
/*************************************************
<function>
각종 서버 환경 변수들을 출력해준다.
테이블 형태로 출력해주며
감추기/보이기 기능을 가지고 있다.
<Return>
없다.
<Parameter>
변수 이름 "SERVER" , "GET" , "POST" , "COOKIE" , "SESSION" , "FILES" , "ENV" , "REQUEST" , "GLOBLAS"
<Comment>
디버깅(?)시 쓸려고 만들었다.
먼가 이상하게 돌아갈때 해당 페이지에서 vars_test("POST") 등으로
페이지로 넘어오는 변수와 값들을 검사할 수 있다.
이 함수는 PHP 4.1 이상에서만 작동한다.
흠흠.. 이전 버전에서는 $HTTP_ 어쩌구저쩌구... ^^;;
<Author>
Yangkun ( yangkun7@kornet.net )
2002 - 03 - 31 03:16:24
*************************************************/
function vars_test($var_name)
{
echo("
<script language='javascript'>
function show_hide_$var_name()
{
if( eval("document.all['$var_name'].style.display") == 'block' )
eval("document.all['$var_name'].style.display = 'none';");
else
eval("document.all['$var_name'].style.display = 'block';");
}
</script>
<h3><a href='#' onClick='show_hide_$var_name();return false;' onFocus='this.blur();'>$var_name</a></h3>
<div id='$var_name' style='display:none'>
<table width='100%' height='' border='1' cellpadding='0' cellspacing='0' bordercolordark='' bordercolorlight='' bgcolor=''>
<tr>
<td align='center'>KEY</td>
<td align='center'>VALUE</td>
</tr>
");
switch( $var_name ){
case "SERVER":
$vars = $_SERVER;
break;
case "GET":
$vars = $_GET;
break;
case "POST":
$vars = $_POST;
break;
case "COOKIE":
$vars = $_COOKIE;
break;
case "FILES":
$vars = $_FILES;
break;
case "ENV":
$vars = $_ENV;
break;
case "REQUEST":
$vars = $_REQUEST;
break;
case "SESSION":
$vars = $_SESSION;
break;
case "GLOBALS":
$vars = $GLOBALS;
break;
}
foreach ($vars as $key => $value) {
$value = nl2br($value);
$value = htmlspecialchars($value);
echo("
<tr>
<td><b>$key</b></td>
<td>$value</td>
</tr>
");
}
echo("
</table>
</div>
");
}
?>
----------------------------------------------------------------------------------------