• Terbaru

    Send POST data ke PHP - MySql di Android Studio 2021

    Pembacaan POST di android

    di dalam kasus ini adalah POST untuk cek username dan password ke PHP

    jadi skemanya :

    Android > PHP > Mysql

    dalam kasus ini anggap saja konfigurasi database sudah ada :

    dengan contoh file PHP natif seperti dibawah :

    <?php
    include_once "koneksi.php";
    error_reporting(E_ALL);
    ini_set('display_errors''On');
    //getting received json
    //$json=file_get_contents('php://input');

    //decoding json and store into object
    $username=$_POST['username'];
    $pass=md5($_POST['password']);

    $cr=mysqli_query($konek,"select * from karyawan_login 
    where username='".$username."' and password='".$pass."'");
    $bcr=mysqli_num_rows($cr);
    if($bcr>0){
        $successlog='User ditemukan';
        //convert message into json
        $successjson=json_encode($successlog);
        echo $successjson;
    }else{
        $invalidmsg="User tidak ditemukan";
        $invalidjson=json_encode($invalidmsg);
        echo $invalidjson;
    }
    ?>



    Nah di androidstudio yang harus ada :

    di dalam AndroidManifest.xml : harus ada :

    <uses-permission android:name="android.permission.INTERNET"/>

    dan

    android:usesCleartextTraffic="true"
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.nusumma.nsgo_r1a">
    <uses-permission android:name="android.permission.INTERNET"/>
    <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/Theme.NsGo_r1a"
    android:usesCleartextTraffic="true"
    >
    <activity android:name=".MainActivity">
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>
    </application>

    </manifest>


    didalam Activity_main.xml tidak ada pengaturan khusus.

    di dalam build.gradle tambahkan dependensi volley :

    implementation 'com.android.volley:volley:1.2.0'

    seperti dibawah :

    dependencies {

    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'com.google.android.material:material:1.3.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
    implementation 'com.android.volley:volley:1.2.0'
    }

    pemanggilan atau pembuatan fungsi untuk melakukan cek dilakukan di MainActivity.java,

    misal ketika di klik login akan memanggil fungsi login() :

    public class MainActivity extends AppCompatActivity {
    EditText username,password;
    Button login;
    private String alamatlogin="http://url_proses.php";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    username=findViewById(R.id.username);
    password=findViewById(R.id.password);
    login=(Button)findViewById(R.id.btnlogin);

    login.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    Login();
    }
    });
    }
    .

    kemudian didalam fungsi login() juga dilakukan fungsi kirim data ke php jika field username dan password sudah terisi :

    void kirim_data2(){
    RequestQueue rq = Volley.newRequestQueue(this);
    StringRequest sr = new StringRequest(Request.Method.POST, alamatlogin, new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
    Toast.makeText(MainActivity.this, response, Toast.LENGTH_SHORT).show();

    }
    }, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
    Toast.makeText(MainActivity.this,error.getMessage(),Toast.LENGTH_SHORT).show();
    }
    }){
    @Override
    protected Map<String, String> getParams() {
    Map<String, String> params = new HashMap<String, String>();
    params.put("username", username.getText().toString());
    params.put("password", password.getText().toString());
    return params;
    }
    };
    rq.add(sr);
    }

    1 comment:

    Saya sangat berterimakasih apabila sahabat sekalian bersedia untuk tidak meninggalkan spam dan meninggalkan komentar yang berhubungan dengan artikel di atas.