테스트 사이트 - 개발 중인 베타 버전입니다

파라미터 전송 질문있습니다. 채택완료

변절자 7년 전 조회 2,244

예를들어 form.php에서 <form> 값을 $_POST['bn_bimg_del']형식으로 form_update.php로 전송하여 등록 혹은 수정 처리할 시 $bn_bimg_del이런식으로 바로 변수처럼 사용되던데 그 원리가 정확히 무엇인지 궁금합니다.

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
e
7년 전

$bn_bimg_del 와 같이 사용하는 변수는 

post, get, sessoin 등 모든 변수를 다 포함하는 겁니다.

구분해서 사용하실때는 $_POST[변수명] 과 같이 사용하는 겁니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

예전의 php에는 php.ini에 register_globals라는 설정값이 있어서

이 설정에 따라 변수를 자동으로 전역 할당하는 기능이 있었습니다.

예) $_GET['var'] 가 자동으로 $var로 할당됨

 

그런데 이런 정책은 보안상 매우 안좋기 때문에 점차 사용하지 않도록 변경되었는데

1) php.ini의 기본설정이 register_globals = off 로 변경됨(php 4.2.0)

2) register_globals 지시자가 deprecated 됨(php 5.3.0)

2) register_globals 지시자가 removed 됨(php 5.4.0)

(관련문서) http://php.net/manual/en/security.globals.php

 

현재 영카트는 common.php에서 extract() 함수를 써서 전역배열을 각각의 전역변수로 할당합니다.

예) extract($_GET);

 

참고로 보안적인 조치나 변수에 대한 검사 없이 extract() 함수를 사용하는 것은 매우 나쁜 습관입니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인