。공부 。

<PHP> GET방식을 이용한 데이터 전송방법

kyoe 2007. 11. 4. 20:09
$_GET변수는 HTTP프로토콜의 GET방식을 통해 사용자가 서버에 문서를 요청하였을때 URL을 통해 전송된 데이터를 각각의 원소로 가지는 배열 변수이다.

- 텍스트박스로 입력받은 데이터를 phptest.php 로 전송해보자. -
<form method="GET" action=phptest.php">
   전송할 문자 : <input type="text" name="test"><br>
   <input type="submit" value="전송">
</form>
위와같이 코딩하면 사용자가 입력한 데이터를 http프로토콜의 get방식을 통해 데이터는 전송된다.
전송받는쪽에선 $_GET['test'] 이나 $_REQUEST['test']연관배열로 데이터를 참조할수 있다.

- post,get두가지 전송방식을 이용해 동시에 전송해보자. -
<form name ="Exam01" method="POST" action="Exam01.php?id=lkh">
<!-- 전송하고자하는 파일뒤에'?'를 붙여주면 get방식으로 데이터를 전송할수있다. -->          
    아이디입력 : <input type ="text" name ="id"><br>        <!-- name 의 id 가 변수가 된다. -->
    이메일입력 : <input type ="text" name ="mail" size="30">
    <input type ="submit" value="전송">
</form>
Exam01.php에서 데이터를 rquest방식으로 받아오면 id의 값은 post방식으로 넘어온값으로 출력된다.
request방식의 자세한 설명은 이전글에 'REQUEST 연관배열'에 남겨놓았다.

- URL을 통해 직접 데이터를 입력 전송 -
텍스트 입력박스에 데이터를 입력하지 않고 URL을 통해 바로 입력할수도 있다.
http://localhost/phptest.php?test=kyoe&test2=kyoe2
위와같이  주소창에 http://localhost/phptest.php 입력한다음 뒤에 "?test=kyoe&test2=kyoe2"와 같이 물음표(?)뒤에 넘기고자 하는 변수와 그변수의 값을 '='으로 그분하여 직접 URL에 덧붙여 전송할수 있다. 만일 하나 이상의 여러 개의 데이터를 전송해야 하는경우에는 '&'문자로 각각의 짝을 구분지어준다.

- 변수값 전송 방법 -
<a></a>테그를 예를 들어 설명해 보자.
현재 $data 변수에는 'kyoe'라는 값이 들어 있다고 예를 들자.
<a href="phptest.php?test=$data"> 전송 </a>
위와 같이 쓰면 변수안에 있는 데이터는 전송되지않고 $data자체가 전송되어 버린다.
왜그런 현상이 발생할까? 그렇다 우리가 넘기고자 하는것은 PHP의 변수 $data이지 문자 $data가 아니란 말이다 우리가 HTML내에서 PHP 소스를 코딩할때 <? ?> 안에서 코딩을 할수 있다. a테그로 $data 안에 있는 값을 전송하려면 <? ?>로 변수를 둘러 싸야 한다. 하지만 <? $data ?> 이렇게 둘러싸고 실행을하면 이번에는 어떤값도 넘어가지 않는다. <? echo $data ?> 이렇게 echo문으로 값을 읽어와야 $data 안에있는 값을 전송할수 있다.
<a href="phptest.php?test=<? echo $data ?>"> 전송 </a>
위와같이 해야 $data값이 phptest.php 로 전송된다.