Android и PHP аутентификация входа - PullRequest
3 голосов
/ 08 декабря 2011

Я пытаюсь создать приложение на Android, в котором пользователь должен войти в приложение, чтобы использовать его.вход в систему аутентификации будет осуществляться веб-сервисом PHP.У меня есть login.java класс CustomeHTTPClient, и это пример кода, который я получил из интернета. В login.java есть имя метода connectphp, который подключается к веб-сервису и использует ответ для отображения всплывающего сообщения

Login.java

package com.boyzcorn.android.fyp;

import java.util.ArrayList;
import org.apache.http.NameValuePair;  
import org.apache.http.message.BasicNameValuePair;  


import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;


public class login extends Activity {
/** Called when the activity is first created. */
     EditText eText ;
    EditText eText2 ;
    Button btnSubmit ;
    Button btnSignup ;

    public void validation()
    {
        if(eText.getText().toString().equals("") ||
                eText.getText().toString().equals(""))
                {
                Toast.makeText( getApplicationContext(),"Fill Empty Fields",Toast.LENGTH_SHORT ).show();
                }
        else
        {
            connectphp();
        }
        }


    public void connectphp()
    {
    // TODO Auto-generated method stub
    ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();
    postParameters.add(new BasicNameValuePair("username", eText.getText().toString()));
    postParameters.add(new BasicNameValuePair("pass1", eText2.getText().toString()));
Passing Parameter to the php web service for authentication
    //String valid = "1";
    String response = null;
    try {
    response = CustomHttpClient.executeHttpPost("http://10.0.2.2:8082/WebService/login.php", postParameters);  //Enter Your remote PHP,ASP, Servlet file link
    String res=response.toString();
    // res = res.trim();
    res= res.replaceAll("\\s+","");
    //error.setText(res);
    if(res.equals("1"))
    {
        Toast.makeText( getApplicationContext(),"Correct Username or Password",Toast.LENGTH_SHORT ).show();
        Intent i = new Intent(login.this,order_pushing.class);
        startActivity(i);
    }
        else
            if(res.equals("0"))
        {

        Toast.makeText( getApplicationContext(),"Sorry!! Incorrect Username or Password",Toast.LENGTH_SHORT ).show();
        }
    } catch (Exception e) {

    eText.setText(e.toString());
    }}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
 eText = (EditText)findViewById(R.id.uid);
 eText2 = (EditText)findViewById(R.id.editText2);
btnSubmit = (Button)findViewById(R.id.sbtn);
 btnSignup = (Button)findViewById(R.id.signupbtn);
btnSubmit.setOnClickListener(new OnClickListener() {

public void onClick(View v)
{ 
    validation(); (This is to check empty fields)


}
});

btnSignup.setOnClickListener(new View.OnClickListener() {

    public void onClick(View arg0) {
    Intent i = new Intent(login.this,signup.class);
    startActivity(i);
    }
 });

}}

Это мой customhtpclient класс, в котором определяется http-соединение.

**CustomHTTPClient.java**

package com.boyzcorn.android.fyp;

import java.util.ArrayList;
import org.apache.http.NameValuePair;  
import org.apache.http.message.BasicNameValuePair;  


import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;


public class login extends Activity {
/** Called when the activity is first created. */
     EditText eText ;
    EditText eText2 ;
    Button btnSubmit ;
    Button btnSignup ;

    public void validation()
    {
        if(eText.getText().toString().equals("") ||
                eText.getText().toString().equals(""))
                {
                Toast.makeText( getApplicationContext(),"Fill Empty Fields",Toast.LENGTH_SHORT ).show();
                }
        else
        {
            connectphp();
        }
        }


    public void connectphp()
    {
    // TODO Auto-generated method stub
    ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();
    postParameters.add(new BasicNameValuePair("username", eText.getText().toString()));
    postParameters.add(new BasicNameValuePair("pass1", eText2.getText().toString()));

    //String valid = "1";
    String response = null;
    try {
    response = CustomHttpClient.executeHttpPost("http://10.0.2.2:8082/WebService/login.php",postParameters);  //Enter Your remote PHP,ASP, Servlet file link 
    String res=response.toString();
    // res = res.trim();
    res= res.replaceAll("\\s+","");
    //error.setText(res);
    if(res.equals("1"))
    {
        Toast.makeText( getApplicationContext(),"Correct Username or Password",Toast.LENGTH_SHORT ).show();
        Intent i = new Intent(login.this,order_pushing.class);
        startActivity(i);
    }
        else
            if(res.equals("0"))//Server response if 0
        {

        Toast.makeText( getApplicationContext(),"Sorry!! Incorrect Username or Password",Toast.LENGTH_SHORT ).show();
        }
    } catch (Exception e) {

    eText.setText(e.toString());
    }}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
 eText = (EditText)findViewById(R.id.uid);
 eText2 = (EditText)findViewById(R.id.editText2);
btnSubmit = (Button)findViewById(R.id.sbtn);
 btnSignup = (Button)findViewById(R.id.signupbtn);
btnSubmit.setOnClickListener(new OnClickListener() {

public void onClick(View v)
{ 
    validation();


}
});

btnSignup.setOnClickListener(new View.OnClickListener() {

    public void onClick(View arg0) {
    Intent i = new Intent(login.this,signup.class);
    startActivity(i);
    }
 });

}}

И имя моего веб-сервиса php login.ph

<?php
include("Config.php");


// username and password sent from Form

Получение параметров $ myusername = addlashes ($ _ POST ['username']);

$mypassword=addslashes($_POST['pass1']);

$sql="SELECT * FROM signup WHERE user_id='$myusername' and password='$mypassword'";

$result=mysql_query($sql);

$row=mysql_fetch_array($result);

$active=$row['active'];

$count=mysql_num_rows($result);

Если результат соответствует $ myusername и $mypassword, строка таблицы должна быть 1 строкой

if($count==1)
    {

echo "1";(If result found send 1 to android)

    }
else
    {
echo "0";(If result not found send o to android)

    }

?>

В файле конфигурации есть все параметры соединения для установления соединения с базой данных mysql, и я использую сервер wamp.
* Config.php *

<?php

$mysql_hostname = "localhost";

$mysql_user = "root";

$mysql_password = "";

$mysql_database = "kse";

$bd = mysql_connect($mysql_hostname, $mysql_user, $mysql_password)

or
 die("Opps some thing went wrong");

mysql_select_db($mysql_database, $bd) 

or

die("Opps some thing went wrong");
?>

Когда я запускаю свое приложение, оно выдает мне сообщение о тосте, если я даю неверные данные для входа в систему, если я использую, если и где-либо здесь*

if(res.equals("1"))
  {
      Toast.makeText( getApplicationContext(),"Correct Username or Password",Toast.LENGTH_SHORT ).show();
      Intent i = new Intent(login.this,order_pushing.class);
      startActivity(i);
  }
      else
          if(res.equals("0"))
      {

      Toast.makeText( getApplicationContext(),"Sorry!! Incorrect Username or Password",Toast.LENGTH_SHORT ).show();
      }

Но когда я даю правильную информацию, я не отвечаю .. Пожалуйста, помогите мне. Я только начинающийПожалуйста, внесите исправления в мой код.

1 Ответ

1 голос
/ 05 августа 2013

Я забыл запустить свой веб-сервис с wamp-сервера, т.е. с wamp-2., а во-вторых, я удаляю эту строку "$ active = $ row ['active'];"из моего login.php и все теперь работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...