풀이를 해보면 ? 뒤에 string이라는 것이 변수명이 되고...
= 뒤에 붙여준 abcd가 그 값이 되는 것 입니다.
여러개의 변수를 전달해 주려면 아래와 같이 &로 연결 합니다.
test.php?string=abcd&string2=efgh
만약 아무것도 출력되지 않는 다면...
windows디렉토리의 php.ini파일을 메모장으로 열어서 다음 단어를 찾아 보세요
register_globals
찾으신 부분에 아래와 같이 되어 있다면...
abcd가 출력되지 않았을 것입니다.
register_globals=off
register_globals라는 것은 GET,POST,COOKIE와 같은 변수들을
(보통 요놈들 셋을 GPC라 부릅니다)
바로 변수로 표현해 주느냐 그렇지 않느냐의 차이인데요...
일반적으로 ASP나 JSP에서는 우리가 $string이라고 바로 표현을 하지 못하고
request어쩌구 하면서 값을 요청하고 받아다 쓰는데요...
php에서는 이런것들 다 무시하고...
(대충 감 잡으셨겠지만 php는 대부분의 복잡한 문법들은 다 무시해 버리고 있습니다)
바로 변수명을 쓸수 있도록 해주는데...
그럴려면 register_globals라는 옵션이 사용중이어야 한다는 것이죠...
그래도 궁금하신분은 사전찾아서 register와 globals의 뜻을 찾아보시고 연구해 보시구요...
어쨌든 register_globals가 on이어야 변수값을 그대로 사용 할 수 있다는 것인데...
웹호스팅을 받고 있는 입장이라 요놈을 on으로 할수 없다 할 경우에는 어떻게 가져오느냐....
test.php?string=abcd
위와 같이 string이라는 변수를 넘겨주었다면...
아래와 같이 받아올 수가 있습니다.
<?=$HTTP_GET_VARS[string]?>
쉽죠?
앞에 붙은 =에 대해서 물으시는 분이 없기를...
궁금하셨던 분들 계시죠? -_-;;
암튼 결론은 $HTTP_GET_VARS라는 배열의 원소로 string이라는 변수가 들어갔다는 것인데요...
그것도 귀찮은지 아래와 같이 하셔도 됩니다.
<?=$_GET[string]?>
물론 아래와 같이 해도 됩니다.
<?=$_GET["string"]?> 또는 <?=$_GET['string']?>
-_-a다른언어에서는 이렇게 따옴표 같은걸 무시하면 바로 에러 납니다...
<?
$string=$_GET[string];
echo $string;
?>
위와 같이 값을 $string이라는 변수에 저장해서 출력해도 되겠죠...
위와 같이 가져다 쓰는 방법은 register_globals가 on이든 off든 상관없이 다 사용 가능합니다.
그러니 php설정에 문제 되지 않게 하려면 마지막 방법과 같이 쓰는게 제일 낫다는 거겠죠..
$string에 저장하지 않고 바로 $_GET[string]과 같이 쓰면 어떠냐 하시는 분들도 계시겠지만...
-_-a길면 귀찮자나요...
그리고 이왕 쓰는거 $HTTP_GET_VARS로 쓰시는게 좋습니다.
예전 버전에서는 $_GET를 지원 하지 않기 때문이죠...
같은 방법으로 POST로 넘어온 변수는 $HTTP_POST_VARS 또는 $_POST
쿠키는 $HTTP_COOKIE_VARS와 같이 가져다 쓸수 있습니다.
업로드된 파일은 $HTTP_POST_FILES로 되고요...