2016-09-09 2 views
0

내 PHP 파일, login.php, 다음과 같습니다Android Volley. 내 응답이 항상 false로 반환되는 이유는 무엇입니까?

<?php 

//if($_SERVER['REQUEST_METHOD']=='POST'){ 
//$username = $_POST['username']; 
$username = "Dave"; 
require_once('dbConnect.php'); 
$sql = "SELECT * FROM user WHERE username = '$username'"; 
$result = mysqli_query($con,$sql); 
$check = mysqli_fetch_array($result); 
if(isset($check)){ 
     echo 'Logged in'; 
} else { 
     echo 'Could not log in'; 
} 
//} 

?> 

내가 myserver.com/login.php에 갈 때 데이브 내 데이터베이스에 있기 때문에, 내가 Logged in를 참조하십시오. 내 안드로이드 응용 프로그램에서

는 버튼 내 발리 로그인은 다음과 같습니다

private void userLogin() { 
     username = editTextUsername.getText().toString().trim(); 
//  password = editTextPassword.getText().toString().trim(); 

     StringRequest stringRequest = new StringRequest(Request.Method.POST, LOGIN_URL, 
       new Response.Listener<String>() { 
        @Override 
        public void onResponse(String response) { 
         if(response.trim().equals("Logged in")){ 
          Toast.makeText(LoginActivity.this,"yahoo, you're in",Toast.LENGTH_LONG).show(); 
          openProfile(); 
         }else{ 
           Toast.makeText(LoginActivity.this,"sorry, you're out",Toast.LENGTH_LONG).show(); 
//       Toast.makeText(LoginActivity.this,response,Toast.LENGTH_LONG).show(); 
         } 
        } 
       }, etc... etc... 

을하지만 버튼에 내 로그인을 클릭하면, 내 토스트는 항상 sorry, you're out입니다. 왜 그런지 알아? 이 기능은 어레이 (성공) 또는 거짓 부울 (실패)를 반환

$check = mysqli_fetch_array($result); 

이 때문에

+0

PHP 파일 상단에 'error_reporting (E_ALL);'을 추가하고 토스트 용 사용자 정의 메시지를 사용하는 대신'response.trim()'의 값을 간단히 말해야합니다. – MonkeyZeus

답변

0

. 어쨌든 $check이고 항상이 설정되므로 isset($check)은 항상 true를 반환합니다.

귀하의 논리 행이 (또는 쿼리가 실패)가 없습니다 의미

if ($check === false) { 

해야한다.

+0

도움을 주셔서 감사합니다.하지만 if (isset ($ check)) {if ($ check === false) {가 작동하지 않았습니다. – CHarris

관련 문제