|
 |
|
[แก้ได้แล้วค่ะ]ลองทำหน้า login ของแอพ แอนดรอด์ย โดย ทำการ Check Login โดยใช้ Web Server (PHP and MySQL) แล้วมีปัญหาค่ะ |
|
 |
|
|
 |
 |
|
คือลองเปลี่ยนเทเบิลในการ SELECT ไม่สามารถรันผ่านแอพได้ทั้งๆที่ข้อมูลในฟิลด์ใช้ typeประเภทเดียวกัน

Code (PHP)
<?php
$objConnect = mysql_connect("localhost","root","ad001");
$objDB = mysql_select_db("db_timetable");
//$_POST["strUser"] = "weerachai"; // for Sample
//$_POST["strUser"] = "[email protected]"; // for Sample
$strUsername = $_POST["strUser"];
//$strPassword = $_POST["strPass"];
$strSQL = "SELECT std_id FROM student WHERE 1 AND Username = '".$strUsername."'";
mysql_query("SET NAMES UTF8");
$objQuery = mysql_query($strSQL);
$objResult = mysql_fetch_array($objQuery);
$intNumRows = mysql_num_rows($objQuery);
if($intNumRows==0)
{
$arr['StatusID'] = "0";
$arr['MemberID'] = "0";
$arr['Error'] = "Incorrect Username and Password";
}
else
{
$arr['StatusID'] = "1";
$arr['MemberID'] = $objResult["std_id"];
$arr['Error'] = "";
}
/**
$arr['StatusID'] // (0=Failed , 1=Complete)
$arr['MemberID'] // MemberID
$arr['Error' // Error Message
*/
mysql_close($objConnect);
echo json_encode($arr);
?>
https://www.thaicreate.com/mobile/android-check-login-user-password.html
Code (Android-Java)
package com.time_table.cartoon.mytimetable;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import org.json.JSONException;
import org.json.JSONObject;
import java.lang.Object;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Scanner;
import java.util.LinkedHashMap;
import java.util.Map;
import java.io.Reader;
public class LoginActivity extends AppCompatActivity {
private ProgressDialog dialog = null;
private String strUser,strPass,url;
EditText txtUser;
EditText txtPass;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
// txtUsername & txtPassword
txtUser = (EditText)findViewById(R.id.txtUsername);
//txtPass = (EditText)findViewById(R.id.txtPassword);
// btnLogin
final Button btnLogin = (Button) findViewById(R.id.btnLogin);
url = getResources().getString(R.string.URL_Server) + "AndroidLogin.php";
Log.e("my URL ; ", url);
// Perform action on click
btnLogin.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Check Username
strUser = txtUser.getText().toString();
// strPass = txtPass.getText().toString();
AlertDialog.Builder ad = new AlertDialog.Builder(LoginActivity.this);
if(txtUser.getText().length() == 0)
{
ad.setMessage("Please input [StudentID] ");
ad.show();
txtUser.requestFocus();
}
// Check Password
/* if(txtPass.getText().length() == 0 )
{
ad.setMessage("Please input [Password/Confirm Password] ");
ad.show();
txtPass.requestFocus();
}*/
if(txtUser.getText().length() > 0){
new LoginTask().execute();
}
}
});
}
@Override
protected void onResume() {
super.onResume();
txtUser.setText("");
// txtPass.setText("");
}
private class LoginTask extends AsyncTask<Void, Void, Void> {
/*** Default Value ***/
private String strStatusID = "0";
private String strMemberID = "0";
private String strError = "Unknow Status!";
String response;
private LoginTask() {
}
@Override
protected Void doInBackground(Void... args) {
Log.e("doInBackground","done");
URL url;
try{
url = new URL (getResources().getString(R.string.URL_Server) + "AndroidLogin.php");
Log.e("My URL :: ", url.toString());
Map<String,Object> params = new LinkedHashMap<>();
params.put("strUser",strUser);
//params.put("strPass", strPass);
// params.put("email", "[email protected]");
// params.put("reply_to_thread", 10394);
// params.put("message", "Shark attacks in Botany Bay have gotten out of control. We need more defensive dolphins to protect the schools here, but Mayor Porpoise is too busy stuffing his snout with lobsters. He's so shellfish.");
StringBuilder postData = new StringBuilder();
for (Map.Entry<String,Object> param : params.entrySet()) {
if (postData.length() != 0) postData.append('&');
postData.append(URLEncoder.encode(param.getKey(), "UTF-8"));
postData.append('=');
postData.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));
}
byte[] postDataBytes = postData.toString().getBytes("UTF-8");
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", String.valueOf(postDataBytes.length));
conn.setDoOutput(true);
conn.getOutputStream().write(postDataBytes);
Reader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
StringBuilder sb = new StringBuilder();
for (int c; (c = in.read()) >= 0;)
sb.append((char) c);
response = sb.toString();
Log.e("Server Response", "Code ::: " + response);
}catch (Exception e) {
e.printStackTrace();
}
JSONObject c;
try {
c = new JSONObject(response);
strStatusID = c.getString("StatusID");
strMemberID = c.getString("MemberID");
strError = c.getString("Error");
Log.e("Json Return ; " , strError);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
/**
* Runs on the UI thread before {@link #doInBackground}.
*
* @see #onPostExecute
* @see #doInBackground
*/
@Override
protected void onPreExecute() {
super.onPreExecute();
Log.e("onPreExecute","Done");
dialog = ProgressDialog.show(LoginActivity.this, "", "Connect to Server...", true);
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
Log.e("onPostExecute","Done");
dialog.dismiss();
HashMap<String, String> map;
AlertDialog.Builder ad = new AlertDialog.Builder(LoginActivity.this);
// Prepare Login
if(strStatusID.equals("0"))
{
// Dialog
ad.setTitle("Error! ");
ad.setIcon(android.R.drawable.btn_star_big_on);
ad.setPositiveButton("Close", null);
ad.setMessage(strError);
ad.show();
txtUser.setText("");
txtPass.setText("");
}
else
{
Log.e("User Name :: ", strUser);
// Toast.makeText(LoginActivity.this, "Login OK", Toast.LENGTH_SHORT).show();
if(strUser.equals("admin")){
}else {
Log.e("Login Type :: ", "User");
SharedPreferences.Editor editor = getSharedPreferences("UserName", MODE_PRIVATE).edit();
editor.putString("name",strUser);
editor.commit();
SharedPreferences.Editor MemberID = getSharedPreferences("UserName", MODE_PRIVATE).edit();
MemberID.putString("MemberID",strMemberID);
MemberID.commit();
Log.e("Log", "Failed to download result..");
Intent newActivity = new Intent(LoginActivity.this,ListSubjectActivity.class);
newActivity.putExtra("MemberID", strMemberID);
startActivity(newActivity);
Log.e("xxxxxxxxxxxxx","CCCccccccccCCCCCC");
}
}
Log.e("onPostExecute","Done");
}
}
}
Tag : Mobile, Android, JAVA, Windows, Mobile, Web Service

|
ประวัติการแก้ไข 2016-05-24 21:03:12
|
 |
 |
 |
 |
Date :
2016-05-24 19:26:58 |
By :
Laf |
View :
1050 |
Reply :
1 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
|
 |
 |
 |
 |
Date :
2016-05-28 07:39:14 |
By :
mr.win |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|
|

|
Load balance : Server 01
|