이 튜토리얼에서는, 우리는 일반적인 php의 일부를 보는거야 발생하는 오류를 해결하는 방법을 그리고 그들을합니다.
퍼스의 형식을 때 오류가 발생 귀하의 코드가 올바르지 않습니다. 예를 들어, 다음의 코드 :
<분할에 대한 ($ 나 = 1; $ 나 <10; $ 나 + +) ($ 출력 = "현재의 반복 :"합니다. $ 나. "<br>"에코 $ 출력;)?>
다음과 같은 내용의 오류가 반환됩니다 :
구문 분석 오류 : 구문 분석 오류, 예상치 못한 t_echo를 c : \ 웹서버 \ test2.php 번 라인에 네
|
|
이 오류 메시지가 표시됩니다 놓치기가 있기 때문에 세 번째 줄의 끝에 세미콜론 앞의 예제. php가되는 메시지를 알려줍니다 명령을 그다지 기대하지 않는 회선의 메아리 4. 가 될 것으로 예상하기 때문에 이것은 세미콜론이 3 행 끝에합니다. 대부분의 시간 동안이 오류가 생기면, 그 이유는 이전 회선에 문제가있는가와 같은 놓치기 세미콜론 앞의 예제로합니다.
이러한 오류가 발생하는 또 교정기, (), 예를 들어 다음과 같은 코드 :
<분할에 대한 ($ 나 = 1; $ 나 <10; $ 나 + +) ($ 출력 = "현재의 반복 :"합니다. $ 나. "<br>"; 경우 ($ 출력 == 5) (에코 "이것은 다섯 번째 반복";)))?>
라는 오류 메시지를 반환합니다
구문 분석 오류 : 구문 분석 오류, 예기치 않은 ')'를 c : \ 웹서버 \ test2.php 번 라인에 8
엑스트라 폐쇄로 인해 이것은 걸림 쇠,), 번 라인에 8. 비록이 문제를 간단하게 설명한 짧은 블록을 참조하십시오 코드, 복잡한 코드를 포함하는 수 많은 중첩 루프를 훨씬 더 세게 또는 진술을, 그리고 그것의 하드 닫는 괄호를 괄호의 개막과 일치하도록합니다.
이 문제를 신속하게 찾을 수있습니다 교정기 명령을 사용하여 균형을 dreamweaver mx는 '수정'메뉴에서합니다. 에 커서를 배치할 수있습니다 줄의 코드를 선택하십시오 균형 교정기 명령을, 그리고 그것을 위해 줄의 코드를 강조 차단하는 모든 걸림 쇠를 열고 닫는 브레이 스에서합니다. 귀하의 코드를 확인하여 잔고에있는 층 교정기 명령을 신속하게 찾을 수있습니다 누락 또는 여분의 걸림 쇠가 어디에.
이 섹션을 설명이 무엇을해야할지 귀하의 웹 페이지에 메시지를 수신하는 경우 다음 중 하나를 같이 :
| 경고 | 정의되지 않은 인덱스 : 액션의 \ 홈 \ www \ login.php 번 라인에 25 |
| 경고 | 정의되지 않은 변수 : 메시지의 홈 \ www \ login.php 번 라인에 52 |
이러한 메시지는 자주 혼동 사람, 그들처럼 오류 메시지 및 코드를 사용하여 작동되는지도가 발생할 수있습니다 완벽하게합니다. 실제 오류 메시지가되지 않습니다; 대신에, 그들은 분류는 "고지,"어떤 경고를 상황이 어디에 오류가있다는 사실은 코드가 작동을 중지합니다. 무슨 메시지를 알려줍니다 변수를 언급한 것은 구체적으로 정의되지 않았습니다 php 변수 이름 성명을 사용합니다.
예를 들어, 다음과 같은 두 개의 블록의 코드를보세요 :
<분할 변수 이름 $ 사용자 이름을; $ 사용자 이름 = $ http_session_vars [ '사용자 이름'];?> 그리고 : <? http_session_vars $ 사용자 이름 = 달러 [ '사용자 이름'];?>
블록의 코드가 모두 동일한 결과, 그러나 두 번째 블록을 코드가 데리고 이전에 다음과 유사한 메시지가 표시되어, 왜냐하면 우리는 구체적으로하지 않은 사용자 이름을 달러 변수를 정의합니다. 귀하의 변수를 정의하여 코드 첫 번째는 뜻이 매개 변수를 알려 드릴 수 철자하는 경우 귀하의 코드,의 매개 변수는 이전에 정의된 신규 및없습니다.
이 문제에 대한 해결책을 두개있다. 첫 번째는 귀하의 코드를 통해서으로 돌아가 모든 변수를 구체적으로 정의되었는지 확인합니다. 두 번째 옵션이 표시되지 않도록 고지를 중지로 그들은 더 이상의 문제들을 종종 그들은 상당합니다. 넌 할 수있어 다음과 같은 코드를 추가하여 각 페이지의 맨 위에이있는 오류 :
<분할 error_reporting (e_all & ~ e_notice);?>
이 지시 php 모든 오류 메시지를 표시 및 경고 아니라 고지를 표시합니다. 이렇게하려면 영구적으로 변경합니다 귀하의 php.ini 파일을 error_reporting 설정은 앞에서 설명한 설정을합니다.
이것은 또 다른 오류 메시지가 자주 발생, 특히 쿠키나 세션을 사용하는 경우, 그리고 그것은 다음과 같은 메시지와 유사합니다 :
헤더 정보를 수정할 수없습니다 - 헤더를 이미 보낸 (출력 시작했다 / 홈 / 웹 / newtest.php : 3)에 / 홈 / 웹 / test.php를 선 5
문제는, 헤더 기능을하기 전에 공백으로 인해 발생합니다. the php 헤더 함수를 사용하여 사용자가 다른 페이지로 리디렉션합니다, 그것은 명령을 전송하여 페이지의 머리글을 브라우저, 말하는 그것을 새로운 페이지로 이동합니다. 그러나, 헤더가 발송되었습니다 브라우저에 한 번, 당신의 헤더에 액세스하는 기능을 더 이상 사용할 수없습니다와 같은 헤더 기능을합니다. 만일의 브라우저로 전송되지 않는 것은 무엇이든 특별 헤더 함수를 헤더가 폐쇄되고 html에 대한 다른 모든 웹 페이지를 추정된다. 그래서이 일어나는 이유는 무엇입니까 앞의 코드가?
빈 줄을가 있기 때문에이 문제가 발생합니다 (행 2)는 브라우저로 보내집니다. 헤더에 이러한 문제가 발생합니다 폐쇄, 그래서 헤더 함수가 실패로 그것의 헤더에 쓸 수 없게합니다. 그러나, 공백 라인을 제거합니다 행의 경우에도 2, 당신과 같은 오류 메시지를 얻을 것이다. 이것은 두 개의 공백이 있기 때문에 연말에?>의 태그 라인 1. 이들은 또한 삭제, 다시 그들의 브라우저로 전송됩니다되며 머리글을 닫습니다. 이러한 공백을 줄 끝에 현물하기 어려운 수있습니다 그들이 보이지 않는 이유!
사용할 수있는 방법은, 그래도 그들을 용이하게 발견합니다. 연말에 커서를 놓으십시오하는 경우 각각의 라인과 왼쪽으로 - 버튼을 클릭하고 마우스를 오른쪽으로 이동, 모든 라인의 끝에 공백이 강조 표시됩니다, 이전 화면에 표시된 바와 같이합니다. 공백을 제거할 수있습니다 그러면합니다.
이 코드는 지금 다시 테스트를 거침 경우, 그것이 올바르게 작동해야합니다.
이 오류가없는 경우에도 발생할 수있습니다 둘러싸여있다 php 태그를 출력 페이지에 대한 어떠한 파일을 포함합니다. 그래서 만약 귀하의 메인 페이지에서 코드를 보이는 벌금 그리고 당신은 여전히을 받고있는 오류, 그 다음 단계는 모든 포함 파일을 통해 확인하려면 해당 페이지를 사용합니다. 종종, 새로운 라인에 오류가 발생하여 최종 php 태그를 포함할 후 파일을 어떤 경우 제거해야합니다.
|
|