devil cat everdevel character

프로그래머가 아니던 시절 만들기 시작한 에버디벨 !
첫 오픈 한달과 최근 한달의 방문자수를 비교해보니 무려 190배 이상 증가했습니다.
그 사이 어느새 1년 9개월의 경력을 갖고 있는 프로그래머가 되었습니다.
실무의 경험을 담아 더 많은 내용으로 올해 언젠가 에버디벨이 책으로 나옵니다.
{HTML5, CSS3, jQuery, MySQL5, PHP7(PDO, OOP, MVC)}
아무것도 몰라도 컴퓨터만 있다면 하나부터 학습하며 발전해 나가는 자신을 보는 감동을 드리겠습니다.

disney Teyon kin

POST와 GET

앞에서 만들었던 PHP의 회원가입 페이지를 구동시키기 위해 POST와 GET이 무엇인지 알아봅시다.

POST

태그 내에서 사용된 각 컨트롤(입력상자들과 버튼)의 선택 사항을 action에 명시된 url로 전달하게 된다.
이때 입력상자나 버튼에 사용된 name 속성값을 변수명으로 하고 폼 양식에서 사용자가 입력한 내용이나 버튼에 사용된 value속성 값을 그 변수의 값으로 전달되며, 데이터의 길이에 제약이 없고 보안에 강하다.

GET

action에 명시된 URL의 주소 뒤에 ?를 붙이고 변수명과 값을 쌍으로 해서 원 하는 정보를 전달하게 되고, 변수가 여러 개일 경우에는 &로 구분된다. GET방식은 간단하게 변수를 통하여 원하는 값을 전달할 때 사용하며, 웹 브라우저의 주소 창에 전달되는 값이 노출되는 단점이 있어 보안 측면이 취약하다.
즉 여러분이 주소뒤에 봤을 법한 www.everdevel.com?lecture=php&lec_num=5 에서 ?lecture=php&lec_num=5 이것이 GET 방식의 데이터 전달 방식이다. 그럼 소스로 테스트 해봅시다.

 <?php
  echo $happy;
  echo "always happy";
 ?>

위의 소스를 작성하고 저장해서 브라우저에 띄워주세요!

화면에 always happy만 출력됩니다. GET방식에 보면 url뒤에 ?를 붙이고 변수명과 값을 쌍으로 해서 원하는 정보를 전달하게 되고 변수가 여러개일 경우는 &로 구분된다고 하였죠 그럼
url뒤에 적어 봅시다. ? 를 적고 변수명 happy를 적고=I%20am 을 적습니다.

localhost/happy.php?happy=I%20am 이렇게 적으면 나와야 하는데 안나오는걸 보니 이상하네요.

안나오시는 분은 당황하지 마세요. 저도 안나옵니다. 안나오는 이유는 phpinfo의 설정때문입니다.
설정값중에 register_globals란게 있는데요 이 값이 on이면 작동은 되나 보안문제때문에 off가 디폴트값으로 되어있어서 입니다.
그리고 이것이 안된다고해서 on으로 바꾸시면안됩니다. 보안문제 때문에 off인 상태로 하시는게 좋습니다.

안되시면 다음과 같이 작성합니다.

 <?php
  echo $_GET['happy'];
  echo "always happy";
 ?>

이렇게 작성을 하시고 웹브라우저에 실행후에 필자는 happy.php로 저장하였습니다. 폴더는htdocs로해야 합니다.

http://localhost/happy.php?happy=i%20am%20
위와 같이 적어 주시면 $_GET['happy']에 i am이 들어가게 됩니다. %20은 공백입니다. 그외에 다른 문자들도 넣어서 테스트 해보세요!

&를 url에 사용하기 위해 여러개를 넣어봅시다.

 <?php
  echo $_GET['happy'];
  echo "always happy <br />";
  echo $_GET['human'];
  echo " are also happy <br />";
 // are앞에 공백있어요 주의 공백을 넣어주세요. 안넣어도 상관은 없지만;;;
 ?>

그리고 주소를 아래와 같이 적어줍니다.

http://localhost/happy.php?happy=i%20am%20&human=you

human 앞에 &있죠?

결과는

php image

그럼 이번엔 POST 방식을 알아볼까요.
이번은 이미 만들었던 회원가입 폼으로 연습해봅시다.

join_result.php 파일을 생성해서 다음과 같이 쳐봅시다. POST는 대소문자 구분을 하므로 대문자로해주세요.

 <?php
  echo "post 방식을 배워봅시다. <br />";

  echo "id ............. {$_POST['id']} <br />";
  echo "name ............. {$_POST[yourname]} <br />";
  echo "password ............. {$_POST[pwd]} <br />";
  echo "confirm password ............. {$_POST[pwd2]} <br />";
  echo "phone number.......... {$_POST[m1]} -{$_POST[m2]}-{$_POST[m3]} <br />";
  echo "sex ............. {$_POST[sex]} <br />";
  echo "address ............. {$_POST[addr]} <br />";
  echo "hobby / computer ............. {$_POST[com]} <br />";
  echo "hobby / sports ............. {$_POST[sports]} <br />";
  echo "hobby / shopping ............. {$_POST[shop]} <br />";
  echo "hobby / movie ............. {$_POST[mov]} <br />";
 ?>

그리고 join.php 파일을 실행하고 임의로 값을 입력한후 submit버튼을 눌러주세요.

그러면 아래와같이 결과가 출력됩니다. 이것이 post방식입니다.

php image

그럼 또 공부하고 강좌를 올리겠습니다. !!!

다음강좌는 16강.DB 연동 회원가입 입니다. 클릭하면 다음 강좌로 이동합니다.