2012-11-27 7 views
0

이클립스를 사용하여 응용 프로그램을 만들려고합니다. 사용자 등록 페이지에서 필요한 모든 데이터를 입력 한 후 제출 버튼을 클릭하면 "불행히도 일식이 중지되었습니다."라는 메시지가 나타납니다. 이 메시지는 무엇을 의미하며 그것을 해결하는 방법은 무엇입니까? 데이터베이스를 연결할 수 없습니다

public class UserRegister extends Activity { 

JSONParser jsonParser = new JSONParser(); 
EditText inputName; 
EditText inputUsername; 
EditText inputEmail; 
EditText inputPassword; 
RadioButton button1; 
RadioButton button2; 
Button button3; 
int success = 0; 

// url to create new product 
private static String url_register_user = "http://192.168.1.100/MEMS/add_user.php"; 

// JSON Node names 
private static final String TAG_SUCCESS = "success"; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_user_register); 

    // Edit Text 
    inputName = (EditText) findViewById(R.id.nameTextBox); 
    inputUsername = (EditText) findViewById(R.id.usernameTextBox); 
    inputEmail = (EditText) findViewById(R.id.emailTextBox); 
    inputPassword = (EditText) findViewById(R.id.pwTextBox); 

    // Create button 
    //RadioButton button1 = (RadioButton) findViewById(R.id.studButton); 
    // RadioButton button2 = (RadioButton) findViewById(R.id.shopownerButton); 
    Button button3 = (Button) findViewById(R.id.regSubmitButton); 

    // button click event 
    button3.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 

      String name = inputName.getText().toString(); 
      String username = inputUsername.getText().toString(); 
      String email = inputEmail.getText().toString(); 
      String password = inputPassword.getText().toString(); 

        if(name.contentEquals("")||username.contentEquals("")||email.contentEquals("")||password.contentEquals("")) 
      { 
       AlertDialog.Builder builder = new AlertDialog.Builder(UserRegister.this); 

       // 2. Chain together various setter methods to set the dialog characteristics 
       builder.setMessage(R.string.nullAlert) 
        .setTitle(R.string.alertTitle); 

       builder.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int id) { 
         // User clicked OK button 
        } 
       }); 

      // 3. Get the AlertDialog from create() 
      AlertDialog dialog = builder.show(); 
      } 
      else 
      { 
       new RegisterNewUser().execute(); 
      } 

     } 
    }); 
} 


     class RegisterNewUser extends AsyncTask<String, String, String>{ 
    protected String doInBackground(String... args) { 
     String name = inputName.getText().toString(); 
     String username = inputUsername.getText().toString(); 
     String email = inputEmail.getText().toString(); 
     String password = inputPassword.getText().toString(); 

     // Building Parameters 
     List<NameValuePair> params = new ArrayList<NameValuePair>(); 
     params.add(new BasicNameValuePair("name", name)); 
     params.add(new BasicNameValuePair("username", username)); 
     params.add(new BasicNameValuePair("email", email)); 
     params.add(new BasicNameValuePair("password", password)); 

     // getting JSON Object 
     // Note that create product url accepts POST method 
     JSONObject json = jsonParser.makeHttpRequest(url_register_user, 
          "GET", params); 
        // check log cat for response 
     Log.d("Send Notification", json.toString()); 

     try 
      { 
        int success = json.getInt(TAG_SUCCESS); 

        if (success == 1) 
        { 
         // successfully created product 
        Intent i = new Intent(getApplicationContext(), StudentLogin.class); 
        startActivity(i); 
        finish(); 
        } 

        else 
        { 
         // failed to register 

        } 
      } 

      catch (Exception e) 
      { 
        e.printStackTrace(); 
      } 
      return null; 
      } 
         } 
          } 

내 PHP 파일 :

<?php 

    /* 
    * Following code will create a new product row 
    * All product details are read from HTTP Post Request 
    */ 

    // array for JSON response 
    $response = array(); 
    // include db connect class 
    require_once __DIR__ . '/db_connect.php'; 

// connecting to db 
    $db = new DB_CONNECT(); 

    // check for required fields 
    if (isset($_GET['name']) && isset($_GET['username']) && isset($_GET['email']) &&    isset($_GET['password'])) { 

$name = $_GET['name']; 
$username = $_GET['username']; 
$email = $_GET['email']; 
$password = $_GET['password']; 


// mysql inserting a new row 
$result = mysql_query("INSERT INTO register(name, username, email, password) VALUES('$name', '$username', '$email', '$password')"); 

// check if row inserted or not 
if ($result) { 
    // successfully inserted into database 
    $response["success"] = 1; 
    $response["message"] = "You are successfully registered to MEMS."; 

    // echoing JSON response 
    echo json_encode($response); 
} 
else { 
    // failed to insert row 
    $response["success"] = 0; 
    $response["message"] = "Oops! An error occurred."; 

    // echoing JSON response 
    echo json_encode($response); 
} 
} else { 
     // required field is missing 
     $response["success"] = 0; 
     $response["message"] = "Required field(s) is missing"; 

     // echoing JSON response 
     echo json_encode($response); 
     } 
      ?> 
+0

포스트 등 안드로이드 오류 로그 – Ravi

답변

1

변경 코드에서 equals() 대신 contentEquals()에을 비교 한의 방법 String#equals()

뿐만 아니라 문자열의 내용을 비교하고, 또한 다른 경우 확인 object는 String의 인스턴스이기도합니다. String#contentEquals()methods은 내용 (문자 시퀀스) 만 비교하고 이 아닌이 다른 객체가 String의 인스턴스인지 여부를 확인합니다. CharSequence의 구현이거나 StringBuffer의 인스턴스 인 경우 아무거나 될 수 있습니다. 당신이 체크 문을 제거 할 경우에도

그래서이

if(name.equals("")||username.equals("")||email.equals("")||password.equals("")) 
{ 
    .... 
} 
+0

이 상황을 변경하지 않습니다 코드를 변경 –

관련 문제