2017-08-26 32 views
0

即时通讯用户登录惠氏改造2,它的工作原理但在响应中的问题,即使该证书是错误的,它去其他活动,即时通讯使用PHP ,注册工作正常,我不知道为什么要去其他活动。请任何帮助将采用超薄做API和mysqli的登录按钮输入活动,即使密码错误,改造2

$app->post('/login', function ($resquest, $reponse, $args) use ($app) { 

require_once ('dbconnect.php'); 

$email = $_POST['email']; 

$password = sha1($_POST['password']); 

$query = "SELECT `email` ,`password` FROM `Users` WHERE `email` = '" . $email . "' AND `password` = '" . $password . "' "; 

$result = $mysqli->query($query); 

if ($row = $result->fetch_assoc()) { 

    $response = array(
    'error'=>"0", 
    "message" => "nice" 
    ); 

} else { 

    $response = array(
    'error'=>"1", 
    'message'=>"fail" 
    ); 
} 

return $this->response->withJson($response); 

    }); 
+0

你在你的回应越来越如果凭据是错了吗? –

+0

$响应=阵列( \t \t '错误'=> “1”, \t \t “消息”=> “失败” \t \t); –

回答

0

你有两个选择是伟大

public class SignInActivity extends AppCompatActivity implements View.OnClickListener { 

private EditText editTextEmail, editTextPassword; 
private Button buttonSignIn; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_sign_in); 
    editTextEmail = (EditText) findViewById(R.id.editTextEmail); 
    editTextPassword = (EditText) findViewById(R.id.editTextPassword); 
    buttonSignIn = (Button) findViewById(R.id.buttonSignIn); 
    buttonSignIn.setOnClickListener(this); 
} 

private void userSignIn() { 
    final ProgressDialog progressDialog = new ProgressDialog(this); 
    progressDialog.setMessage("Signing Up..."); 
    progressDialog.show(); 

    String email = editTextEmail.getText().toString().trim(); 
    String password = editTextPassword.getText().toString().trim(); 

    Retrofit retrofit = new Retrofit.Builder() 
      .baseUrl(APIUrl.BASE_URL) 
      .addConverterFactory(GsonConverterFactory.create()) 
      .build(); 

    APIService service = retrofit.create(APIService.class); 

    Call<UserResponse> call = service.userLogin(email, password); 

    call.enqueue(new Callback<UserResponse>() { 
     @Override 
     public void onResponse(Call<UserResponse> call, Response<UserResponse> response) { 
      progressDialog.dismiss(); 
      if (response.isSuccessful()) { 


     Toast.makeText(getApplicationContext(),response.body().getMessage(), Toast.LENGTH_LONG).show(); 
       startActivity(new Intent(getApplicationContext(), HomeActivity.class)); 
       finish(); 

      } 
       else { 

       Toast.makeText(getApplicationContext(), "Invalid email or password", Toast.LENGTH_LONG).show(); 

      } 

     } 

     @Override 
     public void onFailure(Call<UserResponse> call, Throwable t) { 
      progressDialog.dismiss(); 
      Toast.makeText(getApplicationContext(), t.getMessage(), Toast.LENGTH_LONG).show(); 
     } 
    }); 
} 

@Override 
public void onClick(View view) { 
    if (view == buttonSignIn) { 
     userSignIn(); 
    } 
} 
} 

继承人的PHP脚本IM。

  1. 从PHP响应200 OK成功登录和401未经授权的无效电子邮件或密码。

    if($login_failed){ 
        header("HTTP/1.1 401 Unauthorized"); 
        exit; 
    } 
    
  2. 从PHP发送一些成功登录消息和一些不成功的登录消息。然后阅读Android的响应,比较字符串并采取相应措施。

    if($login_failed){ 
        echo("failed"); 
    } else { 
        echo("success"); 
    } 
    
+0

它的工作我做了你告诉我的感谢 –

0

我需要的价值从数据库比较和macth它

 if (response.body().getMessage().equals("nice")) { 

       // Toast.makeText(getApplicationContext(),response.body().getMessage(), Toast.LENGTH_LONG).show(); 
       startActivity(new Intent(getApplicationContext(), HomeActivity.class)); 
       finish(); 

      } 
相关问题