androidloginandregistration v2

Upload: theraig58

Post on 27-Feb-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/25/2019 AndroidLoginAndRegistration v2

    1/45

    Advertise Here

    Advertise Here

    Tweet1.1kLikeLike

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    5 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    2/45

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    5 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    3/45

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    5 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    4/45

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    5 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    5/45

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    5 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    6/45

    create databaseandroid_api /** Creating Database**/

    use android_api /** Selecting Database**/

    create tableusers(id int(11) primary keyauto_increment,

    unique_id varchar(23) not null unique,name varchar(50) not null,email varchar(100) not null unique,encrypted_password varchar(80) not null,salt varchar(10) not null,created_at datetime,updated_at datetime null

    ); /** Creating Users Table**/

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    5 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    7/45

    CONFIG.PHP

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    5 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    8/45

    DB_CONNECT.PHP

  • 7/25/2019 AndroidLoginAndRegistration v2

    9/45

    // destructorfunction__destruct() {

    }

    /**

    * Storing new user* returns user details*/

    public functionstoreUser($name, $email, $password) {$uuid= uniqid('', true);$hash= $this->hashSSHA($password);$encrypted_password= $hash["encrypted"]; // encrypted password$salt= $hash["salt"]; // salt

    $stmt= $this->conn->prepare("INSERT INTO users(unique_id, name, email,$stmt->bind_param("sssss", $uuid, $name, $email, $encrypted_password, $s$result= $stmt->execute();

    $stmt->close();

    // check for successful storeif($result) {

    $stmt= $this->conn->prepare("SELECT * FROM users WHERE email = ?");$stmt->bind_param("s", $email);$stmt->execute();$user= $stmt->get_result()->fetch_assoc();$stmt->close();

    return$user;} else{

    returnfalse;}}

    /*** Get user by email and password*/

    public functiongetUserByEmailAndPassword($email, $password) {

    $stmt= $this->conn->prepare("SELECT * FROM users WHERE email = ?");

    $stmt->bind_param("s", $email);

    if($stmt->execute()) {$user= $stmt->get_result()->fetch_assoc();$stmt->close();return$user;

    } else{returnNULL;

    }}

    /*** Check user is existed or not

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    5 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    10/45

    $stmt->bind_param("s", $email);

    $stmt->execute();

    $stmt->store_result();

    if($stmt->num_rows > 0) {// user existed$stmt->close();returntrue;

    } else{// user not existed$stmt->close();returnfalse;

    }}

    /*** Encrypting password* @param password* returns salt and encrypted password*/

    public functionhashSSHA($password) {

    $salt= sha1(rand());$salt= substr($salt, 0, 10);$encrypted= base64_encode(sha1($password. $salt, true) . $salt);$hash= array("salt"=> $salt, "encrypted"=> $encrypted);return$hash;

    }

    /*** Decrypting password* @param salt, password* returns hash string*/

    public functioncheckhashSSHA($salt, $password) {

    $hash= base64_encode(sha1($password. $salt, true) . $salt);

    return$hash;}

    }

    ?>

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    45 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    11/45

    REGISTER.PHP

  • 7/25/2019 AndroidLoginAndRegistration v2

    12/45

    LOGIN.PHP

  • 7/25/2019 AndroidLoginAndRegistration v2

    13/45

    {"error": false,"uid": "55fa7220a2c187.50984590","user": {

    "name": "Ravi Tamada","email": "[email protected]","created_at": "2015-09-17 13:26:16","updated_at": null

    }}

    {"error": 1,"error_msg": "Unknown error occurred in registration!"

    }

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    45 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    14/45

    ,"error_msg": "User already existed with [email protected]"

    }

    {"error": false,"uid": "55fa7220a2c187.50984590","user": {

    "name": "Ravi Tamada","email": "[email protected]","created_at": "2015-09-17 13:26:16","updated_at": null

    }}

    {"tag": "login","success": 0,"error": 1,"error_msg": "Login credentials are incorrect. Please try again!"

    }

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    45 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    15/45

    BUILD.GRADLE

    dependencies {compile 'com.android.support:appcompat-v7:21.0.3'compile 'com.android.support:support-v4:21.0.3'compile 'com.mcxiaoke.volley:library-aar:1.0.0'

    }

    STRINGS.XML

    Android Login and RegistrationEmailPasswordFullnameLOGINREGISTERNot a member? Sign up now.Already registred! Login Me.WelcomeLOGOUTFullname

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    45 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    16/45

    .

    #26ae90#2e3237#428bca

    #ffffff#222222#999999#888888#3b4148#5e6266#26ae90#eceef1#333333#ff6861

    APPCONFIG.JAVA

    packageinfo.androidhive.loginandregistration.app;

    public classAppConfig {// Server user login urlpublic staticString URL_LOGIN = "http://192.168.0.102:8888/android_login_ap

    // Server user register urlpublic staticString URL_REGISTER = "http://192.168.0.102:8888/android_login

    }

    APPCONTROLLER.JAVA

    packageinfo.androidhive.loginandregistration.app;

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    45 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    17/45

    mportcom.andro d.volley.Request;importcom.android.volley.RequestQueue;importcom.android.volley.toolbox.Volley;

    public classAppController extendsApplication {

    public static finalString TAG = AppController.class.getSimpleName();

    privateRequestQueue mRequestQueue;

    private staticAppController mInstance;

    @Overridepublic voidonCreate() {

    super.onCreate();mInstance = this;

    }

    public static synchronizedAppController getInstance() {returnmInstance;

    }

    publicRequestQueue getRequestQueue() {if(mRequestQueue == null) {

    mRequestQueue = Volley.newRequestQueue(getApplicationContext());}

    returnmRequestQueue;}

    public voidaddToRequestQueue(Request req, String tag) {req.setTag(TextUtils.isEmpty(tag) ? TAG : tag);getRequestQueue().add(req);

    }

    public voidaddToRequestQueue(Request req) {req.setTag(TAG);getRequestQueue().add(req);

    }

    public voidcancelPendingRequests(Object tag) {if(mRequestQueue != null) {

    mRequestQueue.cancelAll(tag);

    }}

    }

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    45 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    18/45

    ANDROIDMANIFEST.XML

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    45 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    19/45

    SESSIONMANAGER.JAVA

    packageinfo.androidhive.loginandregistration.helper;

    importandroid.content.Context;importandroid.content.SharedPreferences;importandroid.content.SharedPreferences.Editor;importandroid.util.Log;

    public classSessionManager {// LogCat tagprivate staticString TAG = SessionManager.class.getSimpleName();

    // Shared PreferencesSharedPreferences pref;

    Editor editor;Context _context;

    // Shared pref modeintPRIVATE_MODE = 0;

    // Shared preferences file nameprivate static finalString PREF_NAME = "AndroidHiveLogin";

    private static finalString KEY_IS_LOGGEDIN = "isLoggedIn";

    publicSessionManager(Context context) {this._context = context;pref = _context.getSharedPreferences(PREF_NAME, PRIVATE_MODE);editor = pref.edit();

    }

    public voidsetLogin(booleanisLoggedIn) {

    editor.putBoolean(KEY_IS_LOGGEDIN, isLoggedIn);

    // commit changeseditor.commit();

    Log.d(TAG, "User login session modified!");

    }

    public booleanisLoggedIn(){returnpref.getBoolean(KEY_IS_LOGGEDIN, false);

    }}

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    45 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    20/45

    SQLITEHANDLER.JAVA

    /*** Author: Ravi Tamada

    * URL: www.androidhive.info* twitter: http://twitter.com/ravitamada* */

    packageinfo.androidhive.loginandregistration.helper;

    importandroid.content.ContentValues;importandroid.content.Context;importandroid.database.Cursor;importandroid.database.sqlite.SQLiteDatabase;importandroid.database.sqlite.SQLiteOpenHelper;importandroid.util.Log;

    importjava.util.HashMap;

    public classSQLiteHandler extendsSQLiteOpenHelper {

    private static finalString TAG = SQLiteHandler.class.getSimpleName();

    // All Static variables// Database Versionprivate static final intDATABASE_VERSION = 1;

    // Database Nameprivate static finalString DATABASE_NAME = "android_api";

    // Login table nameprivate static finalString TABLE_USER = "user";

    // Login Table Columns namesprivate static finalString KEY_ID = "id";private static finalString KEY_NAME = "name";private static finalString KEY_EMAIL = "email";private static finalString KEY_UID = "uid";private static finalString KEY_CREATED_AT = "created_at";

    publicSQLiteHandler(Context context) {super(context, DATABASE_NAME, null, DATABASE_VERSION);

    }

    // Creating Tables@Overridepublic voidonCreate(SQLiteDatabase db) {

    String CREATE_LOGIN_TABLE = "CREATE TABLE "+ TABLE_USER + "("+ KEY_ID + " INTEGER PRIMARY KEY,"+ KEY_NAME + " TEXT,"+ KEY_EMAIL + " TEXT UNIQUE,"+ KEY_UID + " TEXT,"+ KEY_CREATED_AT + " TEXT"+ ")";

    db.execSQL(CREATE_LOGIN_TABLE);

    Log.d(TAG, "Database tables created");

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    45 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    21/45

    Overr depublic voidonUpgrade(SQLiteDatabase db, intoldVersion, intnewVersion) {

    // Drop older table if existeddb.execSQL("DROP TABLE IF EXISTS "+ TABLE_USER);

    // Create tables again

    onCreate(db);}

    /*** Storing user details in database* */

    public voidaddUser(String name, String email, String uid, String created_atSQLiteDatabase db = this.getWritableDatabase();

    ContentValues values = newContentValues();values.put(KEY_NAME, name); // Namevalues.put(KEY_EMAIL, email); // Email

    values.put(KEY_UID, uid); // Emailvalues.put(KEY_CREATED_AT, created_at); // Created At

    // Inserting Rowlongid = db.insert(TABLE_USER, null, values);db.close(); // Closing database connection

    Log.d(TAG, "New user inserted into sqlite: "+ id);}

    /*** Getting user data from database

    * */publicHashMap getUserDetails() {HashMap user = newHashMap();String selectQuery = "SELECT * FROM "+ TABLE_USER;

    SQLiteDatabase db = this.getReadableDatabase();Cursor cursor = db.rawQuery(selectQuery, null);// Move to first rowcursor.moveToFirst();if(cursor.getCount() > 0) {

    user.put("name", cursor.getString(1));user.put("email", cursor.getString(2));user.put("uid", cursor.getString(3));

    user.put("created_at", cursor.getString(4));}cursor.close();db.close();// return userLog.d(TAG, "Fetching user from Sqlite: "+ user.toString());

    returnuser;}

    /**

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    45 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    22/45

    SQL teDatabase db = th s.getWr tableDatabase ;// Delete All Rowsdb.delete(TABLE_USER, null, null);db.close();

    Log.d(TAG, "Deleted all user info from sqlite");

    }

    }

    ACTIVITY_LOGIN.XML

  • 7/25/2019 AndroidLoginAndRegistration v2

    23/45

    andro d: d=" + d/password"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginBottom="10dp"android:background="@color/white"android:hint="@string/hint_password"

    android:inputType="textPassword"android:padding="10dp"android:singleLine="true"android:textColor="@color/input_login"android:textColorHint="@color/input_login_hint"/>

    LOGINACTIVITY.JAVA

    /*** Author: Ravi Tamada* URL: www.androidhive.info* twitter: http://twitter.com/ravitamada

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    45 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    24/45

    mportandro d.app.Act v ty;importandroid.app.ProgressDialog;importandroid.content.Intent;importandroid.os.Bundle;importandroid.util.Log;importandroid.view.View;

    importandroid.widget.Button;importandroid.widget.EditText;importandroid.widget.Toast;

    importcom.android.volley.Request.Method;importcom.android.volley.Response;importcom.android.volley.VolleyError;importcom.android.volley.toolbox.StringRequest;

    importorg.json.JSONException;importorg.json.JSONObject;

    importjava.util.HashMap;importjava.util.Map;

    importinfo.androidhive.loginandregistration.R;importinfo.androidhive.loginandregistration.app.AppConfig;importinfo.androidhive.loginandregistration.app.AppController;importinfo.androidhive.loginandregistration.helper.SQLiteHandler;importinfo.androidhive.loginandregistration.helper.SessionManager;

    public classLoginActivity extendsActivity {private static finalString TAG = RegisterActivity.class.getSimpleName();privateButton btnLogin;

    privateButton btnLinkToRegister;privateEditText inputEmail;privateEditText inputPassword;privateProgressDialog pDialog;privateSessionManager session;privateSQLiteHandler db;

    @Overridepublic voidonCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);setContentView(R.layout.activity_login);

    inputEmail = (EditText) findViewById(R.id.email);

    inputPassword = (EditText) findViewById(R.id.password);btnLogin = (Button) findViewById(R.id.btnLogin);btnLinkToRegister = (Button) findViewById(R.id.btnLinkToRegisterScreen);

    // Progress dialogpDialog = newProgressDialog(this);pDialog.setCancelable(false);

    // SQLite database handlerdb = newSQLiteHandler(getApplicationContext());

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    45 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    25/45

    // Check user s already logged n or notif(session.isLoggedIn()) {

    // User is already logged in. Take him to main activityIntent intent = newIntent(LoginActivity.this, MainActivity.class);startActivity(intent);finish();

    }

    // Login button Click EventbtnLogin.setOnClickListener(newView.OnClickListener() {

    public voidonClick(View view) {String email = inputEmail.getText().toString().trim();String password = inputPassword.getText().toString().trim();

    // Check for empty data in the formif(!email.isEmpty() && !password.isEmpty()) {

    // login user

    checkLogin(email, password);} else{

    // Prompt user to enter credentialsToast.makeText(getApplicationContext(),

    "Please enter the credentials!", Toast.LENGTH_LONG).show();

    }}

    });

    // Link to Register Screen

    btnLinkToRegister.setOnClickListener(newView.OnClickListener() {

    public voidonClick(View view) {Intent i = newIntent(getApplicationContext(),

    RegisterActivity.class);startActivity(i);finish();

    }});

    }

    /**

    * function to verify login details in mysql db* */

    private voidcheckLogin(finalString email, finalString password) {// Tag used to cancel the requestString tag_string_req = "req_login";

    pDialog.setMessage("Logging in ...");showDialog();

    StringRequest strReq = newStringRequest(Method.POST,AppConfig.URL_LOGIN, newResponse.Listener() {

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    45 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    26/45

    Log.d TAG, "Log n Response: "+ response.toStr ng ;hideDialog();

    try{JSONObject jObj = newJSONObject(response);booleanerror = jObj.getBoolean("error");

    // Check for error node in jsonif(!error) {

    // user successfully logged in// Create login sessionsession.setLogin(true);

    // Now store the user in SQLiteString uid = jObj.getString("uid");

    JSONObject user = jObj.getJSONObject("user");String name = user.getString("name");

    String email = user.getString("email");String created_at = user

    .getString("created_at");

    // Inserting row in users tabledb.addUser(name, email, uid, created_at);

    // Launch main activityIntent intent = newIntent(LoginActivity.this,

    MainActivity.class);startActivity(intent);finish();

    } else{// Error in login. Get the error messageString errorMsg = jObj.getString("error_msg");Toast.makeText(getApplicationContext(),

    errorMsg, Toast.LENGTH_LONG).show();}

    } catch(JSONException e) {// JSON errore.printStackTrace();Toast.makeText(getApplicationContext(), "Json error: "+ e.g

    }

    }

    }, newResponse.ErrorListener() {

    @Overridepublic voidonErrorResponse(VolleyError error) {

    Log.e(TAG, "Login Error: "+ error.getMessage());Toast.makeText(getApplicationContext(),

    error.getMessage(), Toast.LENGTH_LONG).show();hideDialog();

    }}) {

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    45 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    27/45

    Map params = newHashMap ;params.put("email", email);params.put("password", password);

    returnparams;}

    };

    // Adding request to request queueAppController.getInstance().addToRequestQueue(strReq, tag_string_req);

    }

    private voidshowDialog() {if(!pDialog.isShowing())

    pDialog.show();}

    private voidhideDialog() {if(pDialog.isShowing())

    pDialog.dismiss();}

    }

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    45 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    28/45

    ACTIVITY_REGISTER.XML

  • 7/25/2019 AndroidLoginAndRegistration v2

    29/45

    andro d:padd ng="10dp">

  • 7/25/2019 AndroidLoginAndRegistration v2

    30/45

    andro d:text=" str ng/btn_reg ster"android:textColor="@color/white"/>

    REGISTERACTIVITY.JAVA

    /*** Author: Ravi Tamada* URL: www.androidhive.info* twitter: http://twitter.com/ravitamada*/

    packageinfo.androidhive.loginandregistration.activity;

    importandroid.app.Activity;importandroid.app.ProgressDialog;

    importandroid.content.Intent;importandroid.os.Bundle;importandroid.util.Log;importandroid.view.View;importandroid.widget.Button;importandroid.widget.EditText;importandroid.widget.Toast;

    importcom.android.volley.Request.Method;importcom.android.volley.Response;importcom.android.volley.VolleyError;importcom.android.volley.toolbox.StringRequest;

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    45 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    31/45

    importjava.util.HashMap;importjava.util.Map;

    importinfo.androidhive.loginandregistration.R;importinfo.androidhive.loginandregistration.app.AppConfig;

    importinfo.androidhive.loginandregistration.app.AppController;importinfo.androidhive.loginandregistration.helper.SQLiteHandler;importinfo.androidhive.loginandregistration.helper.SessionManager;

    public classRegisterActivity extendsActivity {private static finalString TAG = RegisterActivity.class.getSimpleName();privateButton btnRegister;privateButton btnLinkToLogin;privateEditText inputFullName;privateEditText inputEmail;privateEditText inputPassword;privateProgressDialog pDialog;

    privateSessionManager session;privateSQLiteHandler db;

    @Overridepublic voidonCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);setContentView(R.layout.activity_register);

    inputFullName = (EditText) findViewById(R.id.name);inputEmail = (EditText) findViewById(R.id.email);inputPassword = (EditText) findViewById(R.id.password);btnRegister = (Button) findViewById(R.id.btnRegister);

    btnLinkToLogin = (Button) findViewById(R.id.btnLinkToLoginScreen);

    // Progress dialogpDialog = newProgressDialog(this);pDialog.setCancelable(false);

    // Session managersession = newSessionManager(getApplicationContext());

    // SQLite database handlerdb = newSQLiteHandler(getApplicationContext());

    // Check if user is already logged in or not

    if(session.isLoggedIn()) {// User is already logged in. Take him to main activityIntent intent = newIntent(RegisterActivity.this,

    MainActivity.class);startActivity(intent);finish();

    }

    // Register Button Click eventbtnRegister.setOnClickListener(newView.OnClickListener() {

    public voidonClick(View view) {

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    45 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    32/45

    if(!name.isEmpty() && !email.isEmpty() && !password.isEmpty())registerUser(name, email, password);

    } else{Toast.makeText(getApplicationContext(),

    "Please enter your details!", Toast.LENGTH_LONG)

    .show();}

    }});

    // Link to Login ScreenbtnLinkToLogin.setOnClickListener(newView.OnClickListener() {

    public voidonClick(View view) {Intent i = newIntent(getApplicationContext(),

    LoginActivity.class);startActivity(i);

    finish();}

    });

    }

    /*** Function to store user in MySQL database will post params(tag, name,* email, password) to register url* */

    private voidregisterUser(finalString name, finalString email,finalString password) {

    // Tag used to cancel the requestString tag_string_req = "req_register";

    pDialog.setMessage("Registering ...");showDialog();

    StringRequest strReq = newStringRequest(Method.POST,AppConfig.URL_REGISTER, newResponse.Listener() {

    @Overridepublic voidonResponse(String response) {

    Log.d(TAG, "Register Response: "+ response.toString());hideDialog();

    try{JSONObject jObj = newJSONObject(response);booleanerror = jObj.getBoolean("error");if(!error) {

    // User successfully stored in MySQL// Now store the user in sqliteString uid = jObj.getString("uid");

    JSONObject user = jObj.getJSONObject("user");String name = user.getString("name");

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    45 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    33/45

    // Inserting row in users tabledb.addUser(name, email, uid, created_at);

    Toast.makeText(getApplicationContext(), "User successful

    // Launch login activityIntent intent = newIntent(

    RegisterActivity.this,LoginActivity.class);

    startActivity(intent);finish();

    } else{

    // Error occurred in registration. Get the error// messageString errorMsg = jObj.getString("error_msg");Toast.makeText(getApplicationContext(),

    errorMsg, Toast.LENGTH_LONG).show();}

    } catch(JSONException e) {e.printStackTrace();

    }

    }}, newResponse.ErrorListener() {

    @Overridepublic voidonErrorResponse(VolleyError error) {

    Log.e(TAG, "Registration Error: "+ error.getMessage());

    Toast.makeText(getApplicationContext(),error.getMessage(), Toast.LENGTH_LONG).show();hideDialog();

    }}) {

    @OverrideprotectedMap getParams() {

    // Posting params to register urlMap params = newHashMap();params.put("name", name);params.put("email", email);params.put("password", password);

    returnparams;}

    };

    // Adding request to request queueAppController.getInstance().addToRequestQueue(strReq, tag_string_req);

    }

    private voidshowDialog() {

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    45 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    34/45

    private voidhideDialog() {if(pDialog.isShowing())

    pDialog.dismiss();}

    }

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    45 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    35/45

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    45 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    36/45

    . .xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="${relativePackage}.${activityClass}">

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    45 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    37/45

    MAINACTIVITY.JAVA

    packageinfo.androidhive.loginandregistration;

    importinfo.androidhive.loginandregistration.helper.SQLiteHandler;importinfo.androidhive.loginandregistration.helper.SessionManager;

    importjava.util.HashMap;

    importandroid.app.Activity;importandroid.content.Intent;importandroid.os.Bundle;importandroid.view.View;importandroid.widget.Button;importandroid.widget.TextView;

    public classMainActivity extendsActivity {

    privateTextView txtName;privateTextView txtEmail;privateButton btnLogout;

    privateSQLiteHandler db;privateSessionManager session;

    @Overrideprotected voidonCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);

    txtName = (TextView) findViewById(R.id.name);txtEmail = (TextView) findViewById(R.id.email);btnLogout = (Button) findViewById(R.id.btnLogout);

    // SqLite database handlerdb = newSQLiteHandler(getApplicationContext());

    // session managersession = newSessionManager(getApplicationContext());

    if(!session.isLoggedIn()) {

    logoutUser();}

    // Fetching user details from sqliteHashMap user = db.getUserDetails();

    String name = user.get("name");String email = user.get("email");

    // Displaying the user details on the screentxtName.setText(name);txtEmail.setText(email);

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    45 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    38/45

    @Overridepublic voidonClick(View v) {

    logoutUser();}

    });

    }

    /*** Logging out the user. Will set isLoggedIn flag to false in shared* preferences Clears the user data from sqlite users table* */

    private voidlogoutUser() {session.setLogin(false);

    db.deleteUsers();

    // Launching the login activity

    Intent intent = newIntent(MainActivity.this, LoginActivity.class);startActivity(intent);finish();

    }}

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    45 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    39/45

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    45 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    40/45

    Tweet1.1k

    LikeLike

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    45 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    41/45

    Advertise Here

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    45 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    42/45

    Be the first of your friends to like this

    AndroidHive34,171 likes

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    45 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    43/45

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    45 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    44/45

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra

    45 1/14/2016

  • 7/25/2019 AndroidLoginAndRegistration v2

    45/45

    oid Login and Registration with PHP, MySQL and SQLite http://www.androidhive.info/2012/01/android-login-and-registra