php에서 변수 선언 질문 ㅠ

php에서 변수 선언 질문 ㅠ

QA

php에서 변수 선언 질문 ㅠ

본문

파라미터에서

index.php?code=999 해놓고

 

index.php에서


$code = $_GET['code']
echo $code

없이도 999가 호출이 되는 것 같은데...맞나요?

원래 GET값으로 받아서 호출하는 걸로 알 고 있었거든요..

이 질문에 댓글 쓰기 :

답변 4

맞습니다.

 

없이도 쓸 수 있는 경우는..

php.ini 설정에서 register_globals = on 인 경우와 (But, 비추천) https://gocoding.tistory.com/156

extract($_GET); 을 상단 또는 include 파일에서 사용한 경우 https://bbolmin.tistory.com/53

입니다.

 

요즘에는 보안이슈상 off 일 가능성이 높습니다.

정확하게 확인하는 방법은,
아무파일이나 만들어서..  phpinfo(); 코드로 확인할 수 있습니다.

설정에서 rergister_globals 가 off 인 경우라도,
그누보드의 경우에는 /common.php 에 extract($_GET); 코드가 있어..
사용 가능합니다.

PHP 버전 확인해보세요. register_globals 항목은 PHP 5.4 버전부터 제거되었거든요.

- https://php-legacy-docs.zend.com/manual/php5/en/ini.core#ini.register-globals


<?php
echo phpversion(), '<br>'; // 간편한 버전 확인 - 또는 phpinfo();

 

PHP 5.4 이상 버전에, index.php 파일이 달랑 아래 내용인데 ~?code=999 접속 시 999 뜨면

아래 정보 확인해야 합니다. 이쪽에서 호출하는 파일에서 변수 할당하는지….

- https://www.php.net/manual/en/ini.core.php#ini.auto-prepend-file


<?php
echo $code;

다른 파일 include 후에 실행하는 코드라면, 해당 파일들 내에서 찾아보면 되겠고요.


<?php
echo '<xmp>', print_r(get_included_files(), 1), '</xmp>'; // phpinfo(); 에서도 확인 가능
답변을 작성하시기 전에 로그인 해주세요.
전체 123,532 | RSS
QA 내용 검색

회원로그인

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