2013-09-29 5 views
-1

로그인 페이지 용으로 약간의 코드를 작성했습니다.구문 분석 오류 : 예기치 않은 'if'구문 오류,

내 스크립트를 실행 캔트
if($user == "" || $pass == "") 
{ 
    echo "Please fill in all the information!"; 
} 

//Check to see if the username AND password MATCHES the username AND password in the DB 
else 
{ 
    $query = mysqli_query($con,"SELECT * FROM members WHERE username = '$user' and password = '$pass'") or die("Can not query DB."); 
    $count = mysqli_num_rows($query); 
  
    if ($count == 1) 
    { 
     $_SESSION['username']=$user; //Create a session for the user! 
     header ("location: members.php"); 
    } 
  
  else{ 
   echo "Username and Password DO NOT MATCH! TRY AGAIN!"; 
  } 
} 

, 그것은 다음과 같은 오류를 반환 다음과 같이 코드는

PHP 구문 분석 오류 : 구문 오류, 예기치 않은 '경우'의/var에 (T_IF)/www /에서 사용자/login.php on line 38 (두 번째 "if")

+1

나에게 맞는 것 같습니다. 우리가 볼 수 없는게 뭐지? 거기에 이상한 공백이있을 수 있습니까? –

+0

내가 제공 한 코드가 38 줄 미만이기 때문에 코드에 다른 것이 있다고 생각합니다. –

+0

이 스 니펫은 나를 위해 컴파일됩니다. http://3v4l.org/Mh2GM –

답변

2

스크립트에 이상한 문자가있는 것 같습니다. code you pasted에서 들여 쓰기를 제거하면 다음 줄에 구문 오류가보고됩니다.

잘못된 줄 바로 앞에 들여 쓰기에 "비 분리 문자"문자 (코드 160, 0xa0)가 있습니다. 이것은 36 ~ 38 행이 보이는 공백으로 보이는 방법입니다.

 
36: \t\t$count = mysqli_num_rows($query);\n 
37: \t\xa0\t\n 
     ^^^^ Non-breaking Space 
38: \t\tif ($count == 1) \n 

일반 공백으로 바꾸면 코드가 실행됩니다.

PHP는 소스에 유효하지 않은 문자가 있다고 불평하는 대신 다음 토큰에서 질식합니다.

관련 문제