웹마스터 팁

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>
        ");
}
?>

----------------------------------------------------------------------------------------