2016-11-20 29 views
-2

ログインは正常ですが、登録したデータがデータベースに追加されていないようです。私は運がないまま長い間問題を解決しようとしました。たぶんあなたのうちの何人か「明るい」人々が私のばかげたお尻を助けることができます!それにもかかわらず、ここにすべてがあります:あなたが私を助けてくれれば、それはRegister.phpの問題だと思うよ。登録データがデータベースに送信されていません

LoginActivity.java:

import android.app.AlertDialog; 
import android.content.Intent; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 

import com.android.volley.RequestQueue; 
import com.android.volley.Response; 
import com.android.volley.toolbox.Volley; 

import org.json.JSONException; 
import org.json.JSONObject; 

public class LoginActivity extends AppCompatActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_login); 

     final EditText etUsername = (EditText) findViewById(R.id.etUsername); 
     final EditText etPassword = (EditText) findViewById(R.id.etPassword); 
     final TextView tvRegisterLink = (TextView) findViewById(R.id.tvRegisterLink); 
     final Button bLogin = (Button) findViewById(R.id.bSignIn); 

     tvRegisterLink.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent registerIntent = new Intent(LoginActivity.this, RegisterActivity.class); 
       LoginActivity.this.startActivity(registerIntent); 
      } 
     }); 

     bLogin.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       final String username = etUsername.getText().toString(); 
       final String password = etPassword.getText().toString(); 

       // Response received from the server 
       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) { 
           String name = jsonResponse.getString("name"); 

           Intent intent = new Intent(LoginActivity.this, UserAreaActivity.class); 
           intent.putExtra("name", name); 
           intent.putExtra("username", username); 
           LoginActivity.this.startActivity(intent); 
          } else { 
           AlertDialog.Builder builder = new AlertDialog.Builder(LoginActivity.this); 
           builder.setMessage("Login Failed") 
             .setNegativeButton("Retry", null) 
             .create() 
             .show(); 
          } 

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

       LoginRequest loginRequest = new LoginRequest(username, password, responseListener); 
       RequestQueue queue = Volley.newRequestQueue(LoginActivity.this); 
       queue.add(loginRequest); 
      } 
     }); 
    } 
} 

LoginRequest.java:

import com.android.volley.Response; 
import com.android.volley.toolbox.StringRequest; 

import java.util.HashMap; 
import java.util.Map; 

public class LoginRequest extends StringRequest { 
    private static final String LOGIN_REQUEST_URL = "https://mysite567356ht7ieyjr6u7je.000webhostapp.com/Login.php"; 
    private Map<String, String> params; 

    public LoginRequest(String username, String password, Response.Listener<String> listener) { 
     super(Method.POST, LOGIN_REQUEST_URL, listener, null); 
     params = new HashMap<>(); 
     params.put("username", username); 
     params.put("password", password); 
    } 

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

Login.php:

<?php 
$con = mysqli_connect("localhost", "id177667_root", "***", "id177667_loginb"); 

    $username = $_POST["username"]; 
    $password = $_POST["password"]; 

    $statement = mysqli_prepare($con, "SELECT * FROM user 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); 

    $response = array(); 
    $response["success"] = false; 

    while(mysqli_stmt_fetch($statement)){ 
     $response["success"] = true; 
     $response["name"] = $name; 
     $response["username"] = $username; 
     $response["password"] = $password; 
    } 

    echo json_encode($response); 
?> 

RegisterActivity.java:

import android.app.AlertDialog; 
import android.content.Intent; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 

import com.android.volley.RequestQueue; 
import com.android.volley.Response; 
import com.android.volley.toolbox.Volley; 

import org.json.JSONException; 
import org.json.JSONObject; 

public class RegisterActivity extends AppCompatActivity { 

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


     final EditText etName = (EditText) findViewById(R.id.etName); 
     final EditText etUsername = (EditText) findViewById(R.id.etUsername); 
     final EditText etPassword = (EditText) findViewById(R.id.etPassword); 
     final Button bRegister = (Button) findViewById(R.id.bRegister); 

     bRegister.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       final String name = etName.getText().toString(); 
       final String username = etUsername.getText().toString(); 
       final String password = etPassword.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(RegisterActivity.this, LoginActivity.class); 
           RegisterActivity.this.startActivity(intent); 
          } else { 
           AlertDialog.Builder builder = new AlertDialog.Builder(RegisterActivity.this); 
           builder.setMessage("Register Failed") 
             .setNegativeButton("Retry", null) 
             .create() 
             .show(); 
          } 
         } catch (JSONException e) { 
          e.printStackTrace(); 
         } 
        } 
       }; 

       RegisterRequest registerRequest = new RegisterRequest(name, username, password, responseListener); 
       RequestQueue queue = Volley.newRequestQueue(RegisterActivity.this); 
       queue.add(registerRequest); 
      } 
     }); 
    } 
} 

RegisterRequest.java:

import com.android.volley.Response; 
import com.android.volley.toolbox.StringRequest; 

import java.util.HashMap; 
import java.util.Map; 

public class RegisterRequest extends StringRequest { 
    private static final String REGISTER_REQUEST_URL = "https://mysite567356ht7ieyjr6u7je.000webhostapp.com/Register.php"; 
    private Map<String, String> params; 

    public RegisterRequest(String name, String username, String password, Response.Listener<String> listener) { 
     super(Method.POST, REGISTER_REQUEST_URL, listener, null); 
     params = new HashMap<>(); 
     params.put("name", name); 
     params.put("username", username); 
     params.put("password", password); 
    } 

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

Register.php:

<?php 
$con = mysqli_connect("localhost", "id177667_root", "***", "id177667_loginb"); 
    $name = $_POST["name"]; 
    $username = $_POST["username"]; 
    $password = $_POST["password"]; 
    $statement = mysqli_prepare($con, "INSERT INTO user (name, username, password) VALUES (?, ?, ?)"); 
    mysqli_stmt_bind_param($statement, "siss", $name, $username, $password); 
    mysqli_stmt_execute($statement); 

    $response = array(); 
    $response["success"] = true; 

    echo json_encode($response); 
?> 
+0

'' siss "' => '' sss "' –

+0

ありがとう、それは働いた! –

答えて

0

mysqli_stmt_bind_param($声明、 "SISS"、$名、$ユーザ名、$パスワード); この行でsissをsssに変更します。

関連する問題