Android Login And Registration Using PHP And MySQL
This tutorial describes how to create Android Login And Registration Using PHP And MySQL database in android studio.
The user can register with his email address. So, it is important to validate that email is right email and format and make conditions for password length.
Login and Registration With PHP and MySQL database Tutorial
A. Server Side Step (local server installation)
There are three types of local servers based on operating system.
Wamp Server if you are using Windows operating system.
https://www.wampserver.com/en/
Xampp Server is the second, for mac OS.
https://www.apachefriends.org/download.html
LAMP server, for linux operating system.
https://www.linux.com/training-tutorials/easy-lamp-server-installation/
I am using Wamp server for my tutorial. Open the server and wait until it`s tray icon become green. Then open your browser and type (localhost/phpmyadmin) in address bar. Use root as user name and leave password empty and click Go. Then, create a new database and users table.


Go to WWW directory folder and create new folder with name it “loginregister” (note that you will use this name in the URL). Then create the next three PHP files.
Login And Registration With PHP And MySQL Project PHP Files
Server Connection PHP File
The next file should be in the same directory of login and registration files or change php scripts at line (require “conn.php”) to the new path. ex. (require “folder/conn.php”).
<?php $db_name = "users_database"; $username = "root"; $password = ""; $servename = "127.0.0.1"; $conn = mysqli_connect($servename ,$username ,$password ,$db_name ); mysqli_set_charset($conn ,"utf-8"); ?>
Login PHP File
<?php require "conn.php";
$email = $_POST["email"];
$password = $_POST["psw"];
/$email = "abdo@gmail.com"; $password = "123456";/
$isValidEmail = filter_var($email, FILTER_VALIDATE_EMAIL);
if($conn){
if( $isValidEmail === false){
echo "This Email is not valid";
}else{
$sqlCheckEmail = "SELECT * FROMusers_table
WHERE
$usernameQuery = mysqli_query($conn,$sqlCheckEmail);
if(mysqli_num_rows($usernameQuery) > 0){
$sqlLogin = "SELECT * FROMusers_table
WHEREpassword
LIKE '$password'";
$loginQuery = mysqli_query($conn,$sqlLogin);
if(mysqli_num_rows($loginQuery) > 0){
echo "Login Success";
}
else{
echo "Wrong Password";
}
}else{
echo "This Email is not registered";
}
}
}
else{
echo "Connection Error";
} ?>
Register PHP File
require "conn.php"; $username = $_POST["username"]; $email = $_POST["email"]; $password = $_POST["psw"]; $mobile = $_POST["mobile"]; $gender = $_POST["gender"]; /$username = "Abdo"; $email = "abdelhamid@yahoo.com"; $password = "123456"; $mobile = "01222225522"; $gender = "Male";/ $isValidEMail = filter_var($email , FILTER_VALIDATE_EMAIL); if($conn){ if(strlen($password ) > 40 || strlen($password ) < 6){ echo "Password length must be more than 6 and less than 40"; } else if($isValidEMail === false){ echo "This Email is not valid"; }else{ $sqlCheckUname = "SELECT * FROMusers_table
WHEREusername
LIKE '$username'"; $u_name_query = mysqli_query($conn, $sqlCheckUname); $sqlCheckEmail = "SELECT * FROMusers_table
WHEREusers_table
(username
,password
,phone
,gender
) VALUES ('$username','$email','$password','$mobile','$gender')"; if(mysqli_query($conn,$sql_register)){ echo "You are registered successfully"; }else{ echo "Failed to register you account"; } } } } else{ echo "Connection Error"; }
PHP Tutorial missing.
Filter Input
To receive POST or GET values from rest API it is important to use filter input. It gets a specific external variable by name and optionally filters it. The following example show how to receive parameter from rest API using filter input:
$email = filter_input(INPUT_GET, "email"); When you send GET Request.
$email = filter_input(INPUT_POST, "email"); When you send POST Request.
B. Login and registration Android Studio Steps
Project Settings
Required Dependencies
dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' testImplementation 'junit:junit:4.13' androidTestImplementation 'androidx.test:runner:1.2.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' implementation 'com.android.volley:volley:1.1.1' implementation 'com.android.support:design:28.0.0' implementation 'com.rengwuxian.materialedittext:library:2.1.4' }
Manifest File
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".AppSatartActivity"> </activity> <activity android:name=".RegisterActivity" > </activity> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application>
Styles XML File
<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> <style name="menustyle" parent="Theme.AppCompat.Light"> <item name="android:background">@android:color/white</item> </style>
Colors XML File
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="colorPrimary">#008577</color> <color name="colorPrimaryDark">#008577</color> <color name="colorAccent">#008577</color> </resources>
Login And Registration With PHP And MySQL Project XML Layout Files
Login Layout XML File

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_centerVertical="true" > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:text="Login" android:textSize="30sp" android:textStyle="bold" android:layout_marginTop="10dp" android:textColor="@color/colorPrimary" /> <com.rengwuxian.materialedittext.MaterialEditText android:id="@+id/email" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:layout_marginTop="50dp" app:met_floatingLabel="normal" android:background="@android:color/white" android:hint="Email Address" android:inputType="textEmailAddress"/> <com.rengwuxian.materialedittext.MaterialEditText android:id="@+id/password" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" app:met_floatingLabel="normal" android:layout_marginTop="10dp" android:background="@android:color/white" android:hint="Password" android:inputType="textPassword"/> <androidx.appcompat.widget.AppCompatCheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Keep Me Logged In" android:buttonTint="@color/colorPrimaryDark" android:textColor="@color/colorPrimaryDark" android:layout_gravity="center" android:id="@+id/checkbox" android:layout_marginTop="10dp"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:layout_marginTop="20dp" android:text="Login" android:textColor="@android:color/white" android:textAllCaps="false" android:id="@+id/login" android:background="@color/colorPrimaryDark"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:layout_marginTop="20dp" android:text="Register" android:textColor="@android:color/white" android:textAllCaps="false" android:id="@+id/register" android:background="@color/colorPrimaryDark"/> </LinearLayout> </RelativeLayout>
Register Layout XML File

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".RegisterActivity"> <include android:id="@+id/toolbar" layout="@layout/bar_layout"/> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:layout_below="@+id/toolbar"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:text="Create New Account" android:gravity="center" android:textColor="@color/colorPrimaryDark" android:textSize="20dp" android:textStyle="bold"/> <com.rengwuxian.materialedittext.MaterialEditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="User Name" android:layout_marginRight="20dp" android:layout_marginLeft="20dp" android:layout_marginTop="10dp" android:id="@+id/username" android:padding="5dp" /> <com.rengwuxian.materialedittext.MaterialEditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Email Address" android:layout_marginRight="20dp" android:layout_marginLeft="20dp" android:layout_marginTop="10dp" android:id="@+id/email" android:padding="5dp" /> <com.rengwuxian.materialedittext.MaterialEditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Password" android:layout_marginRight="20dp" android:layout_marginLeft="20dp" android:layout_marginTop="10dp" android:inputType="textPassword" android:id="@+id/password" android:padding="5dp" /> <com.rengwuxian.materialedittext.MaterialEditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Mobile" android:layout_marginRight="20dp" android:layout_marginLeft="20dp" android:layout_marginTop="10dp" android:id="@+id/mobile" android:padding="5dp" /> <RadioGroup android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_marginTop="10dp" android:padding="10dp" android:id="@+id/radioButton"> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:textStyle="bold" android:textSize="14sp" android:textColor="@color/colorPrimaryDark" android:text="Male" android:buttonTint="@color/colorPrimaryDark" android:id="@+id/male"/> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:textStyle="bold" android:textSize="14sp" android:buttonTint="@color/colorPrimaryDark" android:textColor="@color/colorPrimaryDark" android:text="Female" android:layout_marginTop="10dp" android:id="@+id/female"/> </RadioGroup> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:background="@color/colorPrimaryDark" android:layout_marginLeft="30dp" android:layout_marginRight="30dp" android:text="Register" android:textColor="@android:color/white" android:textAllCaps="false" android:id="@+id/register"/> </LinearLayout> </RelativeLayout>
App Start Activity XML File

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".AppSatartActivity" android:orientation="vertical" > <include android:id="@+id/toolbar" layout="@layout/bar_layout"/> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Welcome to App Start Activity" android:textColor="@color/colorPrimaryDark" android:layout_gravity="center_vertical" android:gravity="center" android:layout_marginTop="200dp" android:textSize="40sp" android:textStyle="bold"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Log out" android:textAllCaps="false" android:id="@+id/logout" android:textColor="@android:color/white" android:background="@color/colorPrimaryDark" android:layout_marginTop="50dp"/> </LinearLayout>
Application Bar Layout

<?xml version="1.0" encoding="utf-8"?> <androidx.appcompat.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/colorPrimaryDark" style="@style/Base.ThemeOverlay.AppCompat.Dark.ActionBar" app:popupTheme="@style/menustyle" android:id="@+id/toolbar"> </androidx.appcompat.widget.Toolbar>
Loign And Registration With PHP And MySQL Project Java Files
Main Activity java File
public class MainActivity extends AppCompatActivity { MaterialEditText email,password; Button register,login; CheckBox checkedStatus; SharedPreferences sharedPreferences; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); email = findViewById(R.id.email); password = findViewById(R.id.password); checkedStatus = findViewById(R.id.checkbox); sharedPreferences = getSharedPreferences("UserInfo", Context.MODE_PRIVATE); String loginStatus = sharedPreferences.getString(getResources().getString(R.string.prefStatus),""); if (loginStatus.equals("loggedin")){ startActivity(new Intent(MainActivity.this,AppSatartActivity.class)); finish(); } login = findViewById(R.id.login); login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String tex_email = email.getText().toString(); String tex_password = password.getText().toString(); if (TextUtils.isEmpty(tex_email) || TextUtils.isEmpty(tex_password)){ Toast.makeText(MainActivity.this, "All Fields Required", Toast.LENGTH_SHORT).show(); } else{ login(tex_email,tex_password); } } }); register = findViewById(R.id.register); register.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startActivity(new Intent(MainActivity.this,RegisterActivity.class)); finish(); } }); } private void login(final String email, final String password){ final ProgressDialog progressDialog = new ProgressDialog(MainActivity.this); progressDialog.setTitle("Registering your account"); progressDialog.setCancelable(false); progressDialog.setCanceledOnTouchOutside(false); progressDialog.setIndeterminate(false); progressDialog.show(); String uRl = "http://10.0.2.2/login-register-app/login.php"; StringRequest request = new StringRequest(Request.Method.POST, uRl, new Response.Listener<String>() { @Override public void onResponse(String response) { if (response.equals("Login Success Welcome")){ Toast.makeText(MainActivity.this, response, Toast.LENGTH_SHORT).show(); SharedPreferences.Editor editor = sharedPreferences.edit(); if (checkedStatus.isChecked()){ editor.putString(getResources().getString(R.string.prefStatus),"loggedin"); } else{ editor.putString(getResources().getString(R.string.prefStatus),"loggedout"); } editor.apply(); startActivity(new Intent(MainActivity.this,AppSatartActivity.class)); progressDialog.dismiss(); finish(); } else { Toast.makeText(MainActivity.this, response, Toast.LENGTH_SHORT).show(); progressDialog.dismiss(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Toast.makeText(MainActivity.this, error.toString(), Toast.LENGTH_SHORT).show(); progressDialog.dismiss(); } }){ @Override protected Map<String, String> getParams() throws AuthFailureError { HashMap<String,String> param = new HashMap<>(); param.put("email",email); param.put("psw",password); return param; } }; request.setRetryPolicy(new DefaultRetryPolicy(30000,DefaultRetryPolicy.DEFAULT_MAX_RETRIES,DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); MySingleton.getmInstance(MainActivity.this).addToRequestQueue(request); } }
Register Activity Java File
public class RegisterActivity extends AppCompatActivity { MaterialEditText userName,emailAddress,password,mobile; RadioGroup radioGroup; Button register; @RequiresApi(api = Build.VERSION_CODES.KITKAT) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_register); Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); Objects.requireNonNull(getSupportActionBar()).setTitle("Register"); getSupportActionBar().setDisplayHomeAsUpEnabled(true); userName = findViewById(R.id.username); emailAddress = findViewById(R.id.email); password = findViewById(R.id.password); mobile = findViewById(R.id.mobile); radioGroup = findViewById(R.id.radioButton); register = findViewById(R.id.register); register.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { final String user_name = userName.getText().toString(); final String email = emailAddress.getText().toString(); final String txt_password = password.getText().toString(); final String txt_mobile = mobile.getText().toString(); int checkedId = radioGroup.getCheckedRadioButtonId(); RadioButton selected_gender = radioGroup.findViewById(checkedId); if (selected_gender == null){ Toast.makeText(RegisterActivity.this, "Select gender please", Toast.LENGTH_SHORT).show(); } else { final String gender = selected_gender.getText().toString(); if(TextUtils.isEmpty(user_name) || TextUtils.isEmpty(email) || TextUtils.isEmpty(txt_password) || TextUtils.isEmpty(txt_mobile)){ Toast.makeText(RegisterActivity.this, "All fields are required", Toast.LENGTH_SHORT).show(); } else{ register(user_name,email,txt_password,txt_mobile,gender); } } } }); } private void register(final String username, final String email, final String password, final String mobile, final String gender){ final ProgressDialog progressDialog = new ProgressDialog(RegisterActivity.this); progressDialog.setTitle("Registering your account"); progressDialog.setCancelable(false); progressDialog.setCanceledOnTouchOutside(false); progressDialog.setIndeterminate(false); progressDialog.show(); String uRl = "http://10.0.2.2/login-register-app/register.php"; StringRequest request = new StringRequest(Request.Method.POST, uRl, new Response.Listener<String>() { @Override public void onResponse(String response) { if (response.equals("You are registered successfully")){ Toast.makeText(RegisterActivity.this, response, Toast.LENGTH_SHORT).show(); startActivity(new Intent(RegisterActivity.this,MainActivity.class)); progressDialog.dismiss(); finish(); }else { Toast.makeText(RegisterActivity.this, response, Toast.LENGTH_SHORT).show(); progressDialog.dismiss(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Toast.makeText(RegisterActivity.this, error.toString(), Toast.LENGTH_SHORT).show(); progressDialog.dismiss(); } }){ @Override protected Map<String, String> getParams() throws AuthFailureError { HashMap<String,String> param = new HashMap<>(); param.put("username",username); param.put("email",email); param.put("psw",password); param.put("mobile",mobile); param.put("gender",gender); return param; } }; request.setRetryPolicy(new DefaultRetryPolicy(30000,DefaultRetryPolicy.DEFAULT_MAX_RETRIES,DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); MySingleton.getmInstance(RegisterActivity.this).addToRequestQueue(request); } }
App Start Activity File
public class AppSatartActivity extends AppCompatActivity { Button logout; SharedPreferences sharedPreferences; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_app_satart); logout = findViewById(R.id.logout); sharedPreferences = getSharedPreferences("UserInfo", Context.MODE_PRIVATE); logout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { SharedPreferences.Editor editor = sharedPreferences.edit(); editor.putString(getResources().getString(R.string.prefStatus),"logout"); editor.apply(); startActivity(new Intent(AppSatartActivity.this,MainActivity.class)); finish(); } }); } }
Singleton Java File
public class MySingleton { private static MySingleton mInstance; private RequestQueue mRequestQueue; private Context mCtx; public MySingleton(Context mCtx) { this.mCtx = mCtx; mRequestQueue = getmRequestQueue(); } public RequestQueue getmRequestQueue(){ if(mRequestQueue == null){ Cache cache = new DiskBasedCache(mCtx.getCacheDir(),1024*1024); Network network = new BasicNetwork(new HurlStack()); mRequestQueue = new RequestQueue(cache,network); mRequestQueue = Volley.newRequestQueue(mCtx.getApplicationContext()); } return mRequestQueue; } public static synchronized MySingleton getmInstance(Context context){ if (mInstance == null){ mInstance = new MySingleton(context); } return mInstance; } public<T> void addToRequestQueue(Request<T> request){ mRequestQueue.add(request); } }
Thank you
Please can you help me source code to retrieve data from mysql database
I am preparing it for you.
Hola Abdelhamid Ahmed,
Excelente el vídeo y muy buena la presentación. Solo pedirle un favor, si puedes compartir el código fuente de: Android Login and Registration system using MySQl Database, estaré muy agradecido. Sin mas reciba saludos cordiales.
Thanks for All, But it didn’t Work, I
get message while i want to add to my BD :
( ! ) Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, bool given in C:\wamp64\www\loginregister\register.php on line 17
Call Stack
# Time Memory Function Location
1 0.0001 405624 {main}( ) …\register.php:0
2 0.0151 454032 mysqli_num_rows ( ) …\register.php:17
( ! ) Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, bool given in C:\wamp64\www\loginregister\register.php on line 19
Call Stack
# Time Memory Function Location
1 0.0001 405624 {main}( ) …\register.php:0
2 0.0672 454648 mysqli_num_rows ( ) …\register.php:19
Failed to register you account
There are errors in sql select query of $sqlCheckUsername and $sqlCheckEmail. you may added wrong table or columns names.
when i click login it shows me login success put not opening app start activity what can id do?
thank’s Abdelhamid Ahmed, it’s very beautiful work.
When I tape the information in register Form (Create new Account) and Clock to register , I get this message and Apllication is stopped (LoginRegistration à cessée de fonctionnée).
Thank you Kaki, I just need to catch the error, please follow up steps in handle errors page https://www.androidhands.com/handle-errors and send the me the errors in logCat to solve it.
I get error ‘com.android.volley.ClientError’
There is an error in php script.
Did you solve this error.. Please help!! 🙂
@Abdelhamid Ahmed sir..
I get this type error showing in tost message ‘com.android.volley.ClientError’
client error is due to code error in php script or you the script in the wrong path. please check first the code you can copy it from the article. also you can test the script by submitting true POST values and call the script url in address bar if there is errors copy it and comment it.
I run register.php code on browser it working fine and saved details on db but i connect to app its not working. where is that error occured. this is path String url = “http://192.168.61.80/New/register1.php”;
PC ip add -192.168.61.80
htdoc folder -New
php file – register.php
@Abdelhamid Ahmed
“http://10.0.2.2/New/register1.php” use this url
volley timeout error
did you solved your error?please i too faced same error
2020-07-28 09:27:17.857 22355-22355/com.example.loginregistration E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.loginregistration, PID: 22355
java.lang.NullPointerException: Attempt to invoke virtual method ‘com.android.volley.Request com.android.volley.RequestQueue.add(com.android.volley.Request)’ on a null object reference
at com.example.loginregistration.MySingleton.addToRequestQueue(MySingleton.java:44)
at com.example.loginregistration.MainActivity.login(MainActivity.java:123)
at com.example.loginregistration.MainActivity.access$000(MainActivity.java:27)
at com.example.loginregistration.MainActivity$1.onClick(MainActivity.java:58)
at android.view.View.performClick(View.java:5690)
at android.view.View$PerformClick.run(View.java:22693)
at android.os.Handler.handleCallback(Handler.java:836)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:203)
at android.app.ActivityThread.main(ActivityThread.java:6269)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1063)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:924)
2020-07-28 09:27:22.841 22355-22366/com.example.loginregistration I/art: Enter while loop.
2020-07-28 09:27:23.731 22355-22366/com.example.loginregistration I/art: Enter while loop.
That means you are using volley request that it has not initiated. Try add the request to singleton.
I got volley timeout error
prefStatus not found
login php not working
Notice: Undefined index: email in C:\xampp\htdocs\VS\login.php on line 3
Notice: Undefined index: psw in C:\xampp\htdocs\VS\login.php on line 4
This Email is not valid} } else{ echo “Connection Error”; } ?> else{ echo “Connection Error”; } ?>
There are too many errors. Can you rearrange and put the project on github?
Hi , i have faced error while doing registration, pressing register button it take more time and showing progressive dialog and after 3 to 4 mins its shown volley timeout error please help us to solve this issue
Thanks Ahmed
“com.android.volley.TimeoutError” how to solved this?
I solved the errors but still after running register.php it says failed to register. Why??
hii Android Hands,
i am following all the steps properly.
but my register was getting failed
why?? please help me please!!!
reply me!!
please send source code
Pingback: Android Studio Login And Register With Database – Login Saves