파라미터 전송 질문있습니다.
본문
예를들어 form.php에서 <form> 값을 $_POST['bn_bimg_del']형식으로 form_update.php로 전송하여 등록 혹은 수정 처리할 시 $bn_bimg_del이런식으로 바로 변수처럼 사용되던데 그 원리가 정확히 무엇인지 궁금합니다.
답변 2
$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() 함수를 사용하는 것은 매우 나쁜 습관입니다.
답변을 작성하시기 전에 로그인 해주세요.