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

php에서 변수 선언 질문 ㅠ 채택완료

lhc11 3년 전 조회 1,942

파라미터에서

index.php?code=999 해놓고

 

index.php에서

</p>

<p>$code = $_GET['code']</p>

<p>echo $code</p>

<p>

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

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

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

답변 4개

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

맞습니다.

 

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

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

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

입니다.

 

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

답변에 대한 댓글 2개

l
lhc11
3년 전
기본적으로 cafe24 임대형 호스팅인경우에는
php ini를 만질 수 없는걸로 알 고 있는데
cafe24에서 그렇게 설정해서 호스팅을 임대하고 있는거죠?
마르스컴퍼니
3년 전
요즘에는 보안이슈상 off 일 가능성이 높습니다.

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

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

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

B
3년 전

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

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

</p>

<p><?php</p>

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

<p>

 

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

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

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

</p>

<p><?php</p>

<p>echo $code;</p>

<p>

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

</p>

<p><?php</p>

<p>echo '<xmp>', print_r(get_included_files(), 1), '</xmp>'; // phpinfo(); 에서도 확인 가능</p>

<p>

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

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

그누보드 common.php를 include 하신다면

$code 변수가 생성됩니다

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

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

스피드S
3년 전

그냥 호출이 되신다면,,,

register_globals=on 일겁니다...

보안상 좋지 않습니다... 번거러움은 필수..

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

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

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

로그인