phpMyAdmin을 설치하고 게시판에서 워닝 메시지가 나옵니다.
본문
http://samsung_noble.smedi.kr/007/sub07_02.php
위의 페이지 제일 하단에 보면 아래의 워닝 메시지가 나옵니다.
Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively in Unknown on line 0
위의 메시지를 구글 번역으로 해석하니
경고 : 알 수 없음 : 스크립트가 가능한 PHP 4.2.3까지 존재 세션 부작용에 의존합니다. register_globals를 사용하지 않으면 세션 확장, 데이터의 소스로 전역 변수를 고려하지 않음을 알려드립니다. 당신은 라인 0에 알 수없는 각각 OFF로부터 session.bug_compat_42 또는 session.bug_compat_warn가를 설정하여이 기능이 경고를 비활성화 할 수 있습니다
이렇게 나오는데.. 무슨말인지 도통 잘 모르겠습니다.^^;;
감사합니다.
답변 4
일단
session_start() 하기 전에 어떠한 html 태그도 나와서는 안된다는건 아실 테구요.
근데
echo "디비가 존재하지 않습니다.";
session_start();
되서 저러한 문구가 나오는것 같습니다.
/common.php 에서
//echo "디비가 존재하지 않습니다.";
하셔야 밑에 문구도 사라질 듯요
data폴더 와 세션폴더의 권한이 707 또는 777 로 되어있는지 확인해보세요
폴더의 권한때문에 세션이 생성되지 않는것같습니다
호스팅서버의 용량이 가득차도 위와 같은 메시지가 나올 수 있습니다
호스팅 용량이 가득차면 더이상 파일을 만들 수가 없거든요
이런 경우는 첨보는데, session 에 의해서만 변수가 옮겨 다니는것 같다고 경고 주는것 같은데요
php.ini에서 regiser_globals=On 으로 해주거나,
/public_html/.htaccess
PHP_FLAG register_globals ON 으로 해줘야 합니다.
//error_reporting(E_ALL ^ E_NOTICE);
error_reporting(E_ALL ^ E_NOTICE) 일반적인 설정인데요.
error_reporting(E_ALL) 은 모든 에러를 보여주라는 의미이고
error_reporting(E_ALL ^ E_NOTICE); 은 에러중에서 notice 수준의 에러를 제외 하라는 의미입니다.
error_reporting(E_ALL ^ E_NOTICE); 로 해주는게 일반적입니다.
$_POST['name'] 했는데, name 값이 안넘어 와도 에러를 노출하고
echo $name; 했는데 $name 변수가 없어도 에러가 노출됩니다.