עבור אל תוכן

חוקי הפורום - נא לקרוא

תמונה

בעיה בשמירת מידע לתוך מסד נתונים דרך אנדרואיד עם php

mysql php android

  • אנא התחבר בכדי להגיב
2 תגובות לנושא זה

#1 RuinSain

RuinSain

    https://taamtov.net

  • מתרגמי רשת
  • ******
  • 2,407 הודעות

נכתב ב- ‎23/04/2016‏, ‎09:45

שלום לכם חברים! 

אני מנסה ליצור טופס הרשמה דרך אפליקציה באנדרואיד, והמידע שהוכנס לשם אמור להישמר במסד נתונים אצלי בשרת.

הנתונים שאני מכניס אל msqli_connect הם נכונים, אבל משום מה אני לא רואה את הרשומה לאחר הרישום באפליקציה.

 

זה הקובץ LOGIN

<?php
    $con = mysqli_connect("My Host", "costumer", "My password", "costumer");
    
    $username = $_POST["username"];
    $password = $_POST["password"];
    
    $statement = mysqli_prepare($con, "SELECT * FROM costumer WHERE username = ? AND password = ?");
    mysqli_stmt_bind_param($statement, "ss", $username, $password);
    mysqli_stmt_execute($statement);
    
    mysqli_stmt_store_result($statement);
    mysqli_stmt_bind_result($statement, $userID, $name, $username, $password,$age);
    
    $response = array();
    $response["success"] = false;  
    
    while(mysqli_stmt_fetch($statement)){
        $response["success"] = true;  
        $response["name"] = $name;
        $response["age"] = $age;
        $response["username"] = $username;
        $response["password"] = $password;
        
    }
    
    echo json_encode($response);


?

זה קובץ ההרשמה:

<?php
    $con = mysqli_connect("my host", "costumer", "My password", "costumer");
    
    $name = $_POST["name"];
    $age = $_POST["age"];
    $username = $_POST["username"];
    $password = $_POST["password"];
    $statement = mysqli_prepare($con, "INSERT INTO Users (name, age, username, password) VALUES (?, ?, ?, ?,?)");
    mysqli_stmt_bind_param($statement, "siss", $name, $username, $password,$age);
    mysqli_stmt_execute($statement);
    
    $response = array();
    $response["success"] = true;  
    
    echo json_encode($response);
?>

אלו שני ה-activities באפליקציה דרכם אני נרשם וזה אמור לשמור את זה בשרת:

 

1:

public class register_activity extends AppCompatActivity {

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

        final EditText edtAge=(EditText)findViewById(R.id.edtAge1);
        final EditText edtName=(EditText)findViewById(R.id.edtname);
        final EditText edtUserName=(EditText)findViewById(R.id.edtUserName);
        final EditText edtPassword=(EditText)findViewById(R.id.edtPassword);


        final Button btnSignUP=(Button)findViewById(R.id.btnsignup);

        assert btnSignUP != null;

        btnSignUP.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                final String name=edtName.getText().toString();
                final String username=edtUserName.getText().toString();
                final String password=edtPassword.getText().toString();
                final int age = Integer.parseInt(edtAge.getText().toString());



                Response.Listener<String>responseListener=new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        try {
                            JSONObject jsonResponse=new JSONObject(response);
                            boolean success=jsonResponse.getBoolean("success");
                            if(success){
                                Intent intent=new Intent(register_activity.this,login_activity.class);
                                register_activity.this.startActivity(intent);

                            }
                            else{
                                AlertDialog.Builder builder=new AlertDialog.Builder(register_activity.this);
                                builder.setMessage("The Signup Has Faild").setNegativeButton("Retry",null).create().show();




                            }

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


                    }
                };
                RegisterReq registerReq = new RegisterReq(name,username,password,age,responseListener);
                RequestQueue queue = Volley.newRequestQueue(register_activity.this);
                queue.add(registerReq);

            }
        });
    }
}


2: 

public class RegisterReq  extends StringRequest{
    private static final String registerUrl="http://myhost.com/Register.php";
    private Map<String,String> params;
    public RegisterReq(String name, String username, String password,  int age,Response.Listener<String>listener){
        super(Method.POST,registerUrl,listener,null);
        params=new HashMap<>();
        params.put("name",name);
        params.put("username",username);
        params.put("password",password);
        params.put("age",age+"");


    }

    @Override
    public Map<String, String> getParams() {
        return params;
    }
}

אני מנסה להבין היכן הטעות שלי ולמה זה לא באמת שומר לי את המידע בטבלה.

תודה מראש לעוזרים.


dLORI9W.png  


#2 Chuck

Chuck

    כבר לא רוצים לזכור את השם שלי

  • מתרגמי רשת
  • *****
  • 1,318 הודעות

נכתב ב- ‎23/04/2016‏, ‎11:16

ניסיתי לגשת חיצונית (דרך דפדפן) לכתובת (סטרינג) שהגדרת כמקום לשמירת נתונים. (registerUrl="http://myhost.com/Register.php)

אני לא מצליח להגיע לאותו דף Register.php. ייתכן שזו הבעיה? 



#3 RuinSain

RuinSain

    https://taamtov.net

  • מתרגמי רשת
  • ******
  • 2,407 הודעות

נכתב ב- ‎23/04/2016‏, ‎11:24

אני שיניתי את זה, הכתובת האמיתי זו כתובת של חבר שאין הוא מעוניין לפרסם, ה"myhost" זה אני החלפתי פשוט.  

השרת עצמו נקנה דרך godaddy, ובדוקומנטציה שלהם רשום שבתור ה-myhost יש לרשום את כתובת ה-IP של האתר. (כמובן ש-remote).

ומשום מה זה עדיין לא עובד. עצות מישהו?


dLORI9W.png  






תויגו גם עם אחת או יותר ממילות המפתח הללו: mysql, php, android

1 משתמשים קוראים נושא זה

0 משתמשים, 1 אורחים, 0 משתמשים אנונימיים