Parse error는 문법상에서 문제가 있을 경우 발생합니다. 좁게는 ";"를 빼먹는 것부터 시작해서 연산자 오류, 변수 오류까지 비슷해 보이지만 다른 오류들이 많습니다.
Warning 오류는 프로그램상에서 어떠한 작업을 올바르지 수행하지 못하게 될 경우(문법적이 아닌 오류)에 주로 발생합니다. 특히 MySQL 오류는 100% Warning 오류가 됩니다. 또한 php.ini의 설정 충돌 문제도 Warning으로 뜹니다.
Fatal error는 말 그대로 "치명적인fatal" 오류입니다. 선언하지 않은 함수를 호출하는 등 프로그램 구조상에 문제가 있다고 보면 됩니다.
세부적인 오류메세지별 점검 요령
1. Warning: Failed opening '경로' for inclusion (include_path='경로') in 경로 on line 줄 수
짧은 영어실력으로 직역->'경로'를 포함시키기 위해 여는 것이( = 인클루드) 실패했다.
인클루드시의 문제입니다. 인클루드할 파일이 존재하지 않을 때 생깁니다. 앞에 있는 경로는 인클루드 명령 속의 경로(불러오려는 경로)이고 중간 것은 현재 절대경로 위치, 뒤의 경로는 오류가 발생하는 파일명입니다.
이 오류를 해결하려면->인클루드 경로를 바르게 표시한다.
2. Warning: Cannot add header information - headers already sent by (output started at 경로:줄 수) in 경로 on line 줄 수
->헤더 정보를 추가할 수 없다 - 헤더가 벌써 보내졌다(?) (X줄 부터 출력되었다)
헤더 실행 위치의 오류입니다. 헤더는 출력 구문 앞에 와야만 하는데, 그렇지 못한 경우에 오류가 생깁니다. 앞의 줄 수는 맨 위에 있는 출력 구문(echo문, print문 등)의 위치이고 뒤의 줄 수는 헤더문의 위치입니다.
->1. 헤더를 올바른 위치에 둔다.
2. 오류가 일어나는 파일의 맨 위에 ob_start()함수를 위치시킨다(이 함수를 호출하면 저런 에러를 무시합니다).
3. Warning: MySQL Connection Failed: Access denied for user: 'MySQL ID'(Using password: YES/NO) in 경로 on line 줄 수
-혹은-
Warning: MySQL Connection Failed: 'MySQL ID' 사용자는 접근이 거부 되었습니다. (Using password: 예/아니오) in 경로 on line 줄 수
->해당 사용자의 접근이 거부 되었다.
없는 MySQL ID이거나 비밀번호가 없을 경우에 발생합니다. 주로 이런 경우에는 mysql_connect() or die() 등을 이용하기 때문에 문구가 자주 나타나지는 않습니다.
->ID와 비밀번호를 확인한다.
4. Warning: Supplied argument is not a valid MySQL result resource 경로 on line 줄 수
->유효한 MySQL 자원이 아니다.
MySQL 구문이 잘못되었거나 접속이 제대로 되지 않았을 때 발생합니다. 낮은 버전의 PHP에서 지원하지 않는 MySQL관련 함수 실행시에도 발생합니다.
->1. 구문이 문법에 맞는지 확인한다. 테이블 명 등에서 대소문자 부분도 확인한다.
2. 접속이 잘 되었는지를 확인한다. MySQL Connection Failed 오류 아래로 이 오류가 뜨면 접속이 실패한 것이다.
3. 최신 버전의 PHP를 사용한다.
5. Fatal error: Call to undefined function: 함수명() in 경로 on line 줄 수
->확정하지 않은 함수를 호출하였다.
함수를 미리 선언하지 않고 불러왔을 때 생깁니다. PHP의 버전이 낮아서 함수를 지원하지 않근 경우에도 생깁니다.
->1. 사용자 정의 함수라면 선언을 했은지 확인한다.
2. 최신 버전의 PHP를 사용한다.
6. Fatal error: Failed opening required '경로' (include_path='경로') in 경로 on line 줄 수
->필요로 하는 '경로'를 열 수 없다.
맨 위에 있는 인클루드 오류와 완전히 같습니다. 다만 위의 것은 include문에서의 오류이고 이것은 require문에서의 오류입니다.
->경로를 바르게 입력한다.
7. Parse error: parse error in 경로 on line 줄 수
->문법 오류가 발생하였다.
가장 흔하고 단순한 오류입니다. 마지막 줄에";"를 빼먹어서 생기는 경우가 대부분입니다. 또한 따옴표 안의 메타 문자("'\$%등등..)의 앞에 역슬래쉬\를 붙이지 않은 경우도 자주 발생합니다.
->줄 수를 살펴보고 이상이 없는지 점검한다.
*팁: 줄 수를 볼 때 주의할 점이 있습니다. 보통 오류 줄 수는 정확하지만, 마지막에 ;를 빼먹어서 생기는 오류의 경우 그 다음줄에 오류가 났다고 나옵니다. 이외에도 상당히 예외적인 부분이 많으므로 오류가 난 줄 수의 위아래 1~2줄 정도도 함께 확인해보는 것이 좋습니다.
8. Parse error: parse error, expecting `']'' in 경로 on line 줄 수
->" ] " 때문에 문법 오류가 발생한 것으로 예상된다.
배열변수에서 흔히 일어나는 오류입니다. 일반적인 배열은 $변수면[배열명]으로 표시해도 문제가 없으나, 배열명이 함수의나 키워드(function,return,break...심지어는 and나 or까지도)의 이름과 일치하면 오류가 발생합니다. 또한 따옴표를 마감하지 않아도 이런 문제가 생깁니다.
->오류가 나는 배열명을 따옴표 ' 로 감싸준다(예를 들어 배열명이 date 라면 $변수명[date]가 아니라 $변수명['date']로).
NZEO에서 발췌하여 약간의 첨삭을 하였습니다.
작업시 많은 참고가 되시길 바랍니다. <---------저는 비비샵에서 시리우스님의 팁을 그대로 복사해왔습니다..--;; 시리우스님께서 추후 허락하지 않으신다면 삭제하도록 하겠습니다.
[이 게시물은 관리자님에 의해 2005-04-19 15:29:36 그누보드 팁앤테크(으)로 부터 복사됨]<div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 17:12:10 PHP & HTML에서 이동 됨]</div>
Warning 오류는 프로그램상에서 어떠한 작업을 올바르지 수행하지 못하게 될 경우(문법적이 아닌 오류)에 주로 발생합니다. 특히 MySQL 오류는 100% Warning 오류가 됩니다. 또한 php.ini의 설정 충돌 문제도 Warning으로 뜹니다.
Fatal error는 말 그대로 "치명적인fatal" 오류입니다. 선언하지 않은 함수를 호출하는 등 프로그램 구조상에 문제가 있다고 보면 됩니다.
세부적인 오류메세지별 점검 요령
1. Warning: Failed opening '경로' for inclusion (include_path='경로') in 경로 on line 줄 수
짧은 영어실력으로 직역->'경로'를 포함시키기 위해 여는 것이( = 인클루드) 실패했다.
인클루드시의 문제입니다. 인클루드할 파일이 존재하지 않을 때 생깁니다. 앞에 있는 경로는 인클루드 명령 속의 경로(불러오려는 경로)이고 중간 것은 현재 절대경로 위치, 뒤의 경로는 오류가 발생하는 파일명입니다.
이 오류를 해결하려면->인클루드 경로를 바르게 표시한다.
2. Warning: Cannot add header information - headers already sent by (output started at 경로:줄 수) in 경로 on line 줄 수
->헤더 정보를 추가할 수 없다 - 헤더가 벌써 보내졌다(?) (X줄 부터 출력되었다)
헤더 실행 위치의 오류입니다. 헤더는 출력 구문 앞에 와야만 하는데, 그렇지 못한 경우에 오류가 생깁니다. 앞의 줄 수는 맨 위에 있는 출력 구문(echo문, print문 등)의 위치이고 뒤의 줄 수는 헤더문의 위치입니다.
->1. 헤더를 올바른 위치에 둔다.
2. 오류가 일어나는 파일의 맨 위에 ob_start()함수를 위치시킨다(이 함수를 호출하면 저런 에러를 무시합니다).
3. Warning: MySQL Connection Failed: Access denied for user: 'MySQL ID'(Using password: YES/NO) in 경로 on line 줄 수
-혹은-
Warning: MySQL Connection Failed: 'MySQL ID' 사용자는 접근이 거부 되었습니다. (Using password: 예/아니오) in 경로 on line 줄 수
->해당 사용자의 접근이 거부 되었다.
없는 MySQL ID이거나 비밀번호가 없을 경우에 발생합니다. 주로 이런 경우에는 mysql_connect() or die() 등을 이용하기 때문에 문구가 자주 나타나지는 않습니다.
->ID와 비밀번호를 확인한다.
4. Warning: Supplied argument is not a valid MySQL result resource 경로 on line 줄 수
->유효한 MySQL 자원이 아니다.
MySQL 구문이 잘못되었거나 접속이 제대로 되지 않았을 때 발생합니다. 낮은 버전의 PHP에서 지원하지 않는 MySQL관련 함수 실행시에도 발생합니다.
->1. 구문이 문법에 맞는지 확인한다. 테이블 명 등에서 대소문자 부분도 확인한다.
2. 접속이 잘 되었는지를 확인한다. MySQL Connection Failed 오류 아래로 이 오류가 뜨면 접속이 실패한 것이다.
3. 최신 버전의 PHP를 사용한다.
5. Fatal error: Call to undefined function: 함수명() in 경로 on line 줄 수
->확정하지 않은 함수를 호출하였다.
함수를 미리 선언하지 않고 불러왔을 때 생깁니다. PHP의 버전이 낮아서 함수를 지원하지 않근 경우에도 생깁니다.
->1. 사용자 정의 함수라면 선언을 했은지 확인한다.
2. 최신 버전의 PHP를 사용한다.
6. Fatal error: Failed opening required '경로' (include_path='경로') in 경로 on line 줄 수
->필요로 하는 '경로'를 열 수 없다.
맨 위에 있는 인클루드 오류와 완전히 같습니다. 다만 위의 것은 include문에서의 오류이고 이것은 require문에서의 오류입니다.
->경로를 바르게 입력한다.
7. Parse error: parse error in 경로 on line 줄 수
->문법 오류가 발생하였다.
가장 흔하고 단순한 오류입니다. 마지막 줄에";"를 빼먹어서 생기는 경우가 대부분입니다. 또한 따옴표 안의 메타 문자("'\$%등등..)의 앞에 역슬래쉬\를 붙이지 않은 경우도 자주 발생합니다.
->줄 수를 살펴보고 이상이 없는지 점검한다.
*팁: 줄 수를 볼 때 주의할 점이 있습니다. 보통 오류 줄 수는 정확하지만, 마지막에 ;를 빼먹어서 생기는 오류의 경우 그 다음줄에 오류가 났다고 나옵니다. 이외에도 상당히 예외적인 부분이 많으므로 오류가 난 줄 수의 위아래 1~2줄 정도도 함께 확인해보는 것이 좋습니다.
8. Parse error: parse error, expecting `']'' in 경로 on line 줄 수
->" ] " 때문에 문법 오류가 발생한 것으로 예상된다.
배열변수에서 흔히 일어나는 오류입니다. 일반적인 배열은 $변수면[배열명]으로 표시해도 문제가 없으나, 배열명이 함수의나 키워드(function,return,break...심지어는 and나 or까지도)의 이름과 일치하면 오류가 발생합니다. 또한 따옴표를 마감하지 않아도 이런 문제가 생깁니다.
->오류가 나는 배열명을 따옴표 ' 로 감싸준다(예를 들어 배열명이 date 라면 $변수명[date]가 아니라 $변수명['date']로).
NZEO에서 발췌하여 약간의 첨삭을 하였습니다.
작업시 많은 참고가 되시길 바랍니다. <---------저는 비비샵에서 시리우스님의 팁을 그대로 복사해왔습니다..--;; 시리우스님께서 추후 허락하지 않으신다면 삭제하도록 하겠습니다.
[이 게시물은 관리자님에 의해 2005-04-19 15:29:36 그누보드 팁앤테크(으)로 부터 복사됨]<div class='small'>[이 게시물은 관리자님에 의해 2011-10-31 17:12:10 PHP & HTML에서 이동 됨]</div>
댓글 12개
20년 전
참고로 2번의 오류는 ob_start() 함수로 무시한다기 보다는 피한다고 할 수 있습니다.
웹을 통해 전송되는 모든 데이터는 [헤더][본문]의 구조로 이뤄져 있습니다. [헤더]에는 파일의 종류, 크기, 쿠키 등이 포함되어 있꼬 [본문]에는 보통 소스 보기할 때 나오는 내용이 들어갑니다.
ob_start() 함수는 이 본문을 바로 전송하지 않고 버퍼에 쌓아 놓아서 echo() 등으로 [본문]을 출력한 뒤에라도 [헤더]를 추가할 수 있게 해주는 함수입니다.
또한 쿠키도 헤더의 일부이기 때문에 출력문 이후의 setcookie() 함수도 에러가 납니다.
웹을 통해 전송되는 모든 데이터는 [헤더][본문]의 구조로 이뤄져 있습니다. [헤더]에는 파일의 종류, 크기, 쿠키 등이 포함되어 있꼬 [본문]에는 보통 소스 보기할 때 나오는 내용이 들어갑니다.
ob_start() 함수는 이 본문을 바로 전송하지 않고 버퍼에 쌓아 놓아서 echo() 등으로 [본문]을 출력한 뒤에라도 [헤더]를 추가할 수 있게 해주는 함수입니다.
또한 쿠키도 헤더의 일부이기 때문에 출력문 이후의 setcookie() 함수도 에러가 납니다.
20년 전
도움이 많이 됩니다.
20년 전
오류정리, 함수정리는 많은 도움이 되겠군요.
19년 전
스크랩~감사합니다
Photofly
19년 전
막연한걸 .. 선명하게 해주셨네요...감사합니다..^^
천방퍼레이드
18년 전
오류정리
18년 전
감사합니다.^^ 도움이 많이 되었어요.
17년 전
감사합니다.^^
gncss
17년 전
!
17년 전
^^
17년 전
스크랩해갑니다^^
TeRRyYP
13년 전
스크랩 해갑니당 ^^*
게시판 목록
프로그램
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 7630 | 10년 전 | 652 | ||
| 7629 |
|
10년 전 | 2388 | |
| 7628 | 10년 전 | 791 | ||
| 7627 |
|
10년 전 | 1031 | |
| 7626 |
|
10년 전 | 1787 | |
| 7625 | 10년 전 | 707 | ||
| 7624 | 10년 전 | 724 | ||
| 7623 |
|
10년 전 | 3089 | |
| 7622 | 10년 전 | 726 | ||
| 7621 |
leeleeleelee
|
10년 전 | 585 | |
| 7620 | 10년 전 | 540 | ||
| 7619 | 10년 전 | 488 | ||
| 7618 | 10년 전 | 1024 | ||
| 7617 | 10년 전 | 726 | ||
| 7616 | 10년 전 | 647 | ||
| 7615 | 10년 전 | 726 | ||
| 7614 | 10년 전 | 1263 | ||
| 7613 |
|
10년 전 | 2085 | |
| 7612 | 10년 전 | 1143 | ||
| 7611 | 10년 전 | 1416 | ||
| 7610 |
|
10년 전 | 1901 | |
| 7609 |
|
10년 전 | 1343 | |
| 7608 |
mwdkim
|
10년 전 | 1131 | |
| 7607 |
|
10년 전 | 1053 | |
| 7606 |
mwdkim
|
10년 전 | 3927 | |
| 7605 | 10년 전 | 691 | ||
| 7604 | 10년 전 | 1027 | ||
| 7603 | 10년 전 | 1651 | ||
| 7602 |
|
10년 전 | 1078 | |
| 7601 |
AniNest
|
10년 전 | 2791 | |
| 7600 |
port443
|
10년 전 | 1031 | |
| 7599 | 10년 전 | 944 | ||
| 7598 | 10년 전 | 1020 | ||
| 7597 | 10년 전 | 4572 | ||
| 7596 |
SeungYeon
|
10년 전 | 889 | |
| 7595 |
untitled
|
10년 전 | 2425 | |
| 7594 |
프로그래머7
|
10년 전 | 1725 | |
| 7593 |
untitled
|
10년 전 | 2365 | |
| 7592 |
untitled
|
10년 전 | 1941 | |
| 7591 |
untitled
|
10년 전 | 2676 | |
| 7590 |
아리마2001
|
10년 전 | 853 | |
| 7589 | 10년 전 | 1110 | ||
| 7588 |
|
10년 전 | 2919 | |
| 7587 | 10년 전 | 1303 | ||
| 7586 | 10년 전 | 672 | ||
| 7585 | 10년 전 | 1694 | ||
| 7584 | 10년 전 | 1414 | ||
| 7583 |
leeleeleelee
|
10년 전 | 1162 | |
| 7582 |
|
10년 전 | 1112 | |
| 7581 | 10년 전 | 1345 | ||
| 7580 | 10년 전 | 992 | ||
| 7579 |
|
10년 전 | 606 | |
| 7578 | 10년 전 | 1429 | ||
| 7577 |
|
10년 전 | 1872 | |
| 7576 | 10년 전 | 1385 | ||
| 7575 |
멋진남자임
|
10년 전 | 1463 | |
| 7574 | 10년 전 | 2123 | ||
| 7573 | 10년 전 | 3256 | ||
| 7572 | 10년 전 | 761 | ||
| 7571 |
|
10년 전 | 783 | |
| 7570 |
|
10년 전 | 1315 | |
| 7569 | 10년 전 | 1552 | ||
| 7568 |
this1mg
|
10년 전 | 1050 | |
| 7567 |
|
10년 전 | 762 | |
| 7566 | 10년 전 | 918 | ||
| 7565 |
Angel하늘
|
10년 전 | 1005 | |
| 7564 |
seoldi
|
10년 전 | 1239 | |
| 7563 |
|
10년 전 | 1382 | |
| 7562 |
멋진남자임
|
10년 전 | 2085 | |
| 7561 | 10년 전 | 714 | ||
| 7560 |
leeleeleelee
|
10년 전 | 904 | |
| 7559 | 10년 전 | 5047 | ||
| 7558 |
RinaP
|
10년 전 | 784 | |
| 7557 |
|
10년 전 | 1246 | |
| 7556 | 10년 전 | 1192 | ||
| 7555 |
hyohyojj1234
|
10년 전 | 1664 | |
| 7554 | 10년 전 | 1093 | ||
| 7553 |
senseme
|
10년 전 | 1339 | |
| 7552 |
ehdltdoit
|
10년 전 | 1436 | |
| 7551 |
|
10년 전 | 1824 | |
| 7550 |
leeleeleelee
|
10년 전 | 1589 | |
| 7549 | 10년 전 | 2425 | ||
| 7548 | 10년 전 | 1843 | ||
| 7547 |
멋진남자임
|
10년 전 | 1962 | |
| 7546 | 10년 전 | 1004 | ||
| 7545 |
ILMare1003
|
10년 전 | 1288 | |
| 7544 |
|
10년 전 | 1251 | |
| 7543 | 10년 전 | 884 | ||
| 7542 | 10년 전 | 657 | ||
| 7541 |
울라라라우
|
10년 전 | 865 | |
| 7540 | 10년 전 | 1600 | ||
| 7539 | 10년 전 | 935 | ||
| 7538 |
|
10년 전 | 1833 | |
| 7537 | 10년 전 | 3611 | ||
| 7536 |
Gaumi
|
10년 전 | 1416 | |
| 7535 |
프로그램은어려워
|
10년 전 | 1274 | |
| 7534 |
senseme
|
10년 전 | 1207 | |
| 7533 | 10년 전 | 1196 | ||
| 7532 | 10년 전 | 858 | ||
| 7531 | 10년 전 | 2053 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기