사용DB는 Mysql 이고요 php를 웹서비스로 두었습니다.
자꾸 막히네요 고수님들 어디가 문제인지 도와주세요...생 초짜라 많이 모자랍니다 .
php 부분입니다...
<?
include "config.php";
$connect=my_connect($host,$dbid,$dbpass,$dbname);
mysql_query('set names euckr');
$input_id = $_REQUEST['aId'];
$input_pw = $_REQUEST['aPw'];
$query="select * from member where id = '$input_id' and passwd='$input_pw' ";
$result = mysql_query($query, $connect);
$xmlList.="<?xml version='1.0' encoding='euc-kr'?>";
$rows = mysql_fetch_array($result);
if(!$rows) {
$rs="fail";
$xmlList.="<v1>$rs</v1>";
echo $xmlList;}
else {
$rs="ok";
$xmlList.="<v1>$rs</v1>";
echo $xmlList;}
?>
안드로이드 부분입니다...
try{
Id=((EditText)(findViewById(R.id.auc_id))).getText().toString();
Pw=((EditText)(findViewById(R.id.auc_pwd))).getText().toString();
URL url = new URL("http://localhost/server/login.php?aId="+Id+"&aPw="+Pw);
InputStream stream = url.openStream();
DocumentBuilder build = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = build.parse(stream,null);
NodeList result = doc.getElementsByTagName("v1");
stream.close();
String aaa = result.item(0).getFirstChild().getNodeValue();
String Ok="ok";
if(aaa.equals(Ok)){
Intent intent = new Intent(login.this, main.class);
startActivity(intent);
}
else{
String msg="로그인 실패";
int du = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(getApplicationContext(), msg, du);
toast.show();
}
}
catch(Exception e){
String msg="접근 실패";
int du = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(getApplicationContext(), msg, du);
toast.show();
}
현재의 상황은 이러합니다 ㅡㅡㅋ
실행하면 바로 접근실패라는 상황입니다. ㅜㅜ
안드로이드의
URL url = new URL("http://localhost/server/login.php?aId="+Id+"&aPw="+Pw);
부분에서 서버 주소를 pc의 ip주소 혹은 도메인 등으로 해보세요. localhost는 현재 자신의 루프백으로서 안드로이드에서는 안드로이드의 주소가 됩니다. pc에서는 해당 pc 주소...
id와 pw는 알파벳이나 숫자는 상관없겠지만, 한글 및 특수문자 등의 멀티바이트 문자열이면 인코딩 해주셔서 보내주시는 것이 좋습니다 ;)
PS. 집에서 하시는 것이라면.. 기본적(ISP에서)으로 80번 포트가 막혀있기 때문에, 웹서버의 포트를 변경해주셔야 합니다. ex) 8080




우선 궁금한건 php 에서 REQUEST 로 받으셔도 되나요?
현재 날리시는 주소는 GET 인데 GET으로 받으시고
왠만하면 POST를 사용하세요,
또한 쿼리 날리는 주소에 해당 id 와 pw 는 인코딩 되서 날라갑니다.
get 방식 인코더 함수로 변경하신뒤에 날리셔야해요