form으로 post 방식으로 변수 전달 시 $_POST[변수]로 하는 이유가?? > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

form으로 post 방식으로 변수 전달 시 $_POST[변수]로 하는 이유가?? 정보

form으로 post 방식으로 변수 전달 시 $_POST[변수]로 하는 이유가??

본문

특정 form에서 다음 페이지로 post 방식으로
변수(예를 들어 $var)들을 넘기는데
 
어떤 페이지들은 받는 페이지에서
그냥 $var를 쓰면 되는 페이지가 있고,
어떤 페이지들은 $_POST[var] 로 받아서 써야 하는 경우가 있는데
 
어떤 경우에 2개의 차이가 발생할까요?
 
그리고 $_POST[var] 형식으로 써야 되는 이유는 뭔가요?
 
도움 주시길 기다리겠습니다.
감사합니다.

댓글 전체

원칙적으로는 $_POST[var]를 쓰는 게 맞습니다.
PHP 쪽에서도 이쪽을 권장하고 있습니다.
그냥 $var를 쓰면 넘어오는 방식이 POST인지 GET인지를 검사하지 않습니다.
만약 POST로 넘어오는 값만 받아야 한다면,
그냥 $var를 쓰면 보안 문제가 일어날 수가 있겠죠.
그리고 $var를 쓰면 코딩 뒤에 개발자가 볼 때에 그냥 페이지 안에서 쓰는 변수인지,
아니면 REQUEST에서 넘어온 값인지가 불명확합니다.
그렇기 때문에 PHP에서도 $_POST[var] 쪽을 권장합니다.
이 점은 PHP 4.2.0 이후에 register_global 환경 변수의 기본값이 off가 된 것에서도 알 수가 있죠.
(register_global 환경 변수가 off면 $var 방식으로 REQUEST 되는 값을 받을 수 없고
$_POST[var]나 $_GET[var] 같은 방식으로 받아야 합니다)
만약에 POST나 GET 어느 쪽으로든 넘어오는 변수를 받을 생각이라면.
$var 보다는 $_REQUEST[var]를 쓰는 편이 좋습니다.
전에는 $_POST[var] 대신에 $HTTP_POST_VARS[var]도 썼지만
지금은 deprecated(비추천)입니다.
아마도 $_POST[var]은 var이라는 변수의 값을 넘겨 받기위해 사용하는것이겠구요.

$var은 변수의 값을 출력하기 위해 사용하는 것이겠지요.

(예) $name=$_POST("name");
      echo "넘겨받은 이름 => $name 입니다.";

참고로 PHP 4.1.X 부터는 배열명(첨자) 형식으로 하면 경고 메시지가 뜹니다.(첨자에 따옴표 없음)

그래서 앞으로는 배열명("첨자") 이런식으로 표기해야 한다네요.(첨자에 따옴표 붙임)

자세한 설명은 아래 링크를 참조하세요.

http://www.koreaphp.co.kr/tip_board/board_read.php?page=1&block=1&no=110&cate=25&parent=61
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT