IT/개발

PHP의 지긋지긋한 오류 Parse error: syntax error, unexpected 해결방법

알콩달콩아빠 2023. 8. 20. 19:26
728x90
반응형
PHP

웹사이트의 제작이나, 어플리케이션 서버를 만들때 PHP와 더불어 Mysql 등 여러가지 부가 요소들을 넣어

API 등을 만들 수 있다.

그런데 제작하다보면 어느 언어든 똑같이 에러를 발견하게된다.

특히 PHP는 에러가 난 부분의 정확한 위치를 알려주지 않는다(...)

이를 해결하기 위한 몇가지 팁을 당신에게 준비하였다!

 

Parse error: syntax error, unexpected

흔히 보는 요망한 에러이다.

문법이 틀렸을때 해당 메시지가 출력이되며, 대표적으로는 끝줄에 ;(세미콜론) 를 깜빡하는 경우이다.

 ;(세미콜론) 이 제대로 붙어있는지 한번 검사해보자.

 

또는 변수가 존재하지 않을 때 발생할 수 있다.

$haha = "하하";

if($hah == "하하"){
//정답 ㅇㅇ!
}

다음중 틀린 문법을 찾으시오(서술형, 10점)

여기서 오류가 난 부분은 if문이다.

$haha 라는 변수를 할당했지만, if문에서 실수로 $hah 로 썼기 때문(거의 수학의 실수로 영희가 잘못보아..)
코드가 적은경우 이를 빨리 눈치챌 수 있지만.

그렇지 않은 경우는 이를 찾아내기도 번거로운 뿐더러, 한줄한줄 체크해야하는 노가다 정신이 필요하기 때문이다.

 

그럼 해결방법은?

어쩔 수 없이 PHP를 작성할때 문법에 오류가 없게 하는 것이 중요하다.

또한 PHP를 실제 웹사이트, 등 에 적용하기 전, 한번 체크해보는 것이 후에 문제가 발생하지 않도록 도움이 될 것이다.

 

추가로 실제 적용하기 전, PHP를 검사하는 방법을 소개하겠다!

https://phpcodechecker.com/

 


이 사이트는 php 코드를 넣고 검사할 PHP 버전을 선택 후 '분석(Analyze)' 버튼을 클릭하면

내가 작성한 php 코드에서 오류를 잡아서 알려준다.(물론 정확한 위치를 당연히 PHP답게 알려주지 않는다)

 

그럼 왜 이 방법을 추천 했을까?

글쓴이의 경험으로는 php에서 발생한 오류를 그대로 출력하게 되면 악성유저는 이를 보고 취약점을 찾을 것이 분명하다.

예를들어 mysql의 오류를 그대로 내뱉으면, 악성유저는 이를 파악하고 우회하여 취약점을 공격할 것이다.

그래서 오류를 그대로 보내지 않고 코드로 식별할 수 있게 하거나, 아예 "에러가 발생하였습니다." 로 통일하여

그나마 서버를 보호할 수 있게 한다.

 

출처 : PHP의 지긋지긋한 오류 Parse error: syntax error, unexpected 해결방법 (tistory.com)

728x90
반응형