php에서 변수 선언 질문 ㅠ

php에서 변수 선언 질문 ㅠ

QA

php에서 변수 선언 질문 ㅠ

답변 4

본문

파라미터에서

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(); 에서도 확인 가능
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 129,117
© SIRSOFT
현재 페이지 제일 처음으로