اذهب إلى المحتوى

السؤال

نشر

السلام عليكم ورحمة الله

ممكن مساعده في حل مشكلة com.android.volley.ServerError 

حاولت بشتى الطرق لكن ماتوصلت للحل "(

اعمل ع login استخدمت سيرفير xampp

php login :

<?php
if ($_SERVER['REQUEST_METHOD']=='POST') {

    $email = $_POST['email'];
    $password = $_POST['password'];

    require_once 'connect.php';

    $sql = "SELECT * FROM tes3 WHERE email='$email'";

    $response = mysqli_query($conn, $sql);

    $result = array();
    $result['login'] = array();
    
    if ( mysqli_num_rows($response) === 1 ) {
        
        $row = mysqli_fetch_assoc($response);

        if ( password_verify($password, $row['password']) ) {
            
            $index['name'] = $row['name'];
            $index['email'] = $row['email'];
       

            array_push($result['login'], $index);

            $result['success'] = "1";
            $result['message'] = "success";
            echo json_encode($result);

            mysqli_close($conn);

        } else {

            $result['success'] = "0";
            $result['message'] = "error";
            echo json_encode($result);

            mysqli_close($conn);

        }

    }

}

?>

وهذا الكود java :

public class MainActivity extends AppCompatActivity {
   private EditText ETLogin,ETPass;
    private Button LogiButton;
    private ProgressBar progressBar;
    private static String URL_S ="http://192.168.1.13/P/log.php";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    ETLogin =(EditText)findViewById(R.id.TextLogin);
        ETPass=(EditText)findViewById(R.id.TextPass);
        LogiButton =(Button) findViewById(R.id.LoginBut);


       LogiButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String memail = ETLogin.getText().toString().trim();
                String mpass = ETPass.getText().toString().trim();
              if(!memail.isEmpty() && !mpass.isEmpty()){
                   Login(memail , mpass);
                }//end if
                else{
                    ETLogin.setError("Enter Name");
                    ETPass.setError("Enter Pass");

                }//endelse
            }
        });}//endoncreate

        private void Login(final String email, final String password){
            StringRequest stringRequest = new StringRequest(Request.Method.POST,URL_S,new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {

                    try {
                        JSONObject jsonObject = new JSONObject(response);
                        String success = jsonObject.getString("success");
                        JSONArray jsonArray = jsonObject.getJSONArray("login");


                        if(success.equals("1")){
                            for(int i = 0;i<jsonArray.length();i++){
                                JSONObject Object=jsonArray.getJSONObject(i);

                                String name =Object.getString("name").trim();
                                String email =Object.getString("email").trim();

                                Toast.makeText(MainActivity.this,"Success login"+name
                                               +"\n"+email , Toast.LENGTH_SHORT).show();

                            }

                        }
                    }//end try
                    catch (JSONException e) {
                        e.printStackTrace();
                        Toast.makeText(MainActivity.this,"CachError\n"+
                                e.toString(), Toast.LENGTH_SHORT).show();

                    }//end catch

                }//end onrespnse
            },//end listener
                    new Response.ErrorListener() {
                        @Override
                        public void onErrorResponse(VolleyError error) {

                            if (error instanceof TimeoutError || error instanceof NoConnectionError) {
                                //This indicates that the reuest has either time out or there is no connection
                                Toast.makeText(MainActivity.this,"1 \n"+
                                        error.toString(), Toast.LENGTH_SHORT).show();
                            }
                            else if (error instanceof AuthFailureError) {
                                Toast.makeText(MainActivity.this,"2 \n"+
                                        error.toString(), Toast.LENGTH_SHORT).show();
                                //Error indicating that there was an Authentication Failure while performing the request
                            }
                            else if (error instanceof ServerError) {
                                Toast.makeText(MainActivity.this,"3 \n"+
                                        error.toString(), Toast.LENGTH_SHORT).show();
                                //Indicates that the server responded with a error response
                            }
                            else if (error instanceof NetworkError) {
                                Toast.makeText(MainActivity.this,"4 \n"+
                                        error.toString(), Toast.LENGTH_SHORT).show();
                                //Indicates that there was network error while performing the request
                            }
                            else if (error instanceof ParseError) {
                                Toast.makeText(MainActivity.this,"5 \n"+
                                        error.toString(), Toast.LENGTH_SHORT).show();
                                // Indicates that the server response could not be parsed
                            }


                        }//end onerrorrespnse
                    })//errorlistener
            {
                @Override
                protected Map<String, String> getParams() throws AuthFailureError {

                    Map<String,String>params = new HashMap<>();
                    params.put("email", email);
                    params.put("password", password);
                    return params;
                }//map
            };

            RequestQueue requestQueue = Volley.newRequestQueue(MainActivity.this);

            requestQueue.add(stringRequest);

        }}

طبعا اضفت

 <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" />

الداتا بيس مع القيم اللي اضفتهم :

جزاكم الله خيير

DB.png

Value.png

Recommended Posts

  • 0
نشر

السلام عليكم

يرجي ذكر الخطأ

هل يتم الارسال بشكل جيد للسيرفر والسيرفر يعيد خطأ

لاني اري ان هناك مشكله في كود php

"SELECT * FROM tes3 WHERE email='$email

المتغير ايميل يجب ان يضاف بالطريقه التاليه

"SELECT * FROM tes3 WHERE email='.$email

بدون علامات تنصيص خلفه مع وضع . النقطه لتضيف النص الي المتغير

مع العلم ايضا ان هذه الطريقه غير امنه ويفضل العمل ب pdo

لتجنب مشاكل حقن قواعد البيانات

بالتوفيق

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...