[PHP] Fatal error: Cannot redeclare ... (previously declared ... 해결법!!

반응형

PHP 로 만들어진 게시판, 쇼핑몰, 폼 등을 수정하다보면
가끔 이런 코드를 만나게 될때가 있죠.

읽기전에 손가락 한번 클릭~ >_<

고마워요 ~ Chu ~ ♥



Fatal error: Cannot redeclare 메소드명() (previously declared in /디렉토리구조.../파일명.php:에러코드라인(ex:19) in /디렉토리구조..../파일명.php on line 에러코드라인(ex:22)

에러 원인은 include 된 파일명이 중복으로 include 되어서 입니다.

따라서 해결방법은 두가지 가 있겠는데요,

첫번째로, 에러가 나는 파일명.php 파일을 include 하는 부분을 찾아서
중복으로 include 되는 부분을 검사 후 제거하는 방법 입니다.

두번째로, 에러나는 파일명.php 파일을 include 하는 부분을 찾아서
include 를 include_once 로 수정합니다.
즉, include(파일명);   이부분을   include_once(파일명);
으로 수정합니다.
include_once 는 파일명에 속한 파일을 단 한번만 include 합니다.

어디에서 수정하냐구요?
당연히 에러나는 파일명.php 를 include 하는 php 소스코드 부분이지요.


당연히 찾아야 합니다만, 좀 더 쉬운 방법으로는, ( 물론 급할때만 쓸것! )
모든 include 에 include_once 로 바꾸어도 작동하겠습니다.

끝!





반응형

댓글(5)

  • 2010.09.11 10:06

    함수가 중복선언되도 저렇게뜨네요 ^^

    감사합니다

    • 2010.09.12 20:01 신고

      아하. 함수 중복에도 같은 에러인가요?ㅎㅎ
      몰랐네요 ㅎㅎ

      오히려 제가 배웁니다 ^^ 감사합니다.

    • 알 수 없는 사용자
      2012.12.31 00:10

      ㅋㅋㅋ
      Cloverward 제 사촌형 이에요.

  • 뭐어떻해야하는거죠? ㅠㅠ
    2010.11.12 16:38

    제가 주닷하다가 이런에러가 떳엇거든요? 근데 이해가 안돼네요 파일을 일일히 찾아봐야하는건가요?
    PHP라는 파일 없는데 ㅇㅅㅇ ;; 제발 도와주세요 제가 에러뜬것은오
    Fatal error: Cannot redeclare decrypt_md5() (previously declared in /logs/www/2007.zuzunza.com/include/encrypt.inc:2) in /logs/www/2007.zuzunza.com/include/encrypt.inc on line 22
    이러케 에러 떳어요 갑자기 이러네요 ㅡㅡ;;

    • 2010.11.12 23:01 신고

      우선 에러 내용은 이렇습니다.

      치명적인 에러 : 똑같이 선언될 수 없습니다. decrypt_md5().

      이전에 선언된 in /logs/www/2007.zuzunza.com/include/encrypt.inc on line 22 라인에서,

      정도의 뜻입니다.

      랭귀지에 구애받지 않더라도 어느정도 에러내용만 체크가능 하시다면 많은 부분의 에러를 해결할 수 있습니다.

      현재 /logs/www/2007.zuzunza.com/include/encrypt.inc 의 파일의 22번 라인에 decrypt_md5() 라는 메소드가 중복선언 되어 있는것으로 보입니다.

      이젠 해결 하실 수 있으시겠죠?ㅎㅎ

Designed by JB FACTORY