PDA

View Full Version : مشکل در اتصال به سرور از طریق برنامه اندروید



m.kahtooei
شنبه 26 دی 1394, 11:12 صبح
باسلام
من یه برنامه خیلی ساده نوشتم برای اتصال به سرور که یه مقداری رو از سرور بگیره ولی هرکاری میکنم درست کار نمیکنم و یه خطایی میده که من متوجه نمیشم...
کد php که روی هاسته خیلی ساده به دیتابیس وصل میشه و یه مقداری رو از اون میخونه و نمایش میده که کدش به صورت زیره :


<?php




$con=mysql_connection("sql108.hostparse.ir","srroo_17188780","*******");
mysql_select_db("srroo_17188780_db1");


$user="mohammad";
$pass="123";


$sqlQ="select * from users where Username='$user' and Password='$pass' ";
$result=mysql_Query($sqlQ);
$row=mysql_fech_array($result);

print $row[0];


mysql_close($con);



?>






فایل php رو زمانی که از طریق مرورگر اجرا میکنم به درستی کار میکنه ولی تو برنامه جواب نمیده
کلاسی که اطلاعات رو میگیره رو به شکل زیر نوشتم




package com.example.web2proj;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

import android.os.AsyncTask;

public class getdata extends AsyncTask {


private String User="";
private String Link="";
public getdata(String link,String user){

Link=link;
User=user;
}



protected String doInBackground(Object... arg0) {

try{

URL mylink=new URL(Link);

URLConnection connect=mylink.openConnection();

BufferedReader reader = new BufferedReader(new InputStreamReader(connect.getInputStream()));

StringBuilder sb=new StringBuilder();

String line=null;

while((line=reader.readLine()) !=null){

sb.append(line);
}

Main.res=sb.toString();


}catch(Exception e){}

return "";
}

}






و در اکتیویتی اصلیم در رویداد یک دکمه اون رو به صورت زیر فراخوانی کردم که نتیجه رو توی Toast نشون بده



package com.example.web2proj;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class Main extends Activity {

public static String res="";

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Button btn=(Button) findViewById(R.id.main_get);

new getdata("http://mkahtooei.hostparse.ir/test1.php","mohammad").execute();

btn.setOnClickListener(new OnClickListener(){

public void onClick(View arg0) {

Toast.makeText(getApplicationContext(), res, 1).show();

}});
}

}





ولی نمیدنم مشکل از کجاست که درست کار نمیکنه و اروری رو نشون میده که عکسشو گذاشتم
ممنون میشم اگه کمک کنید مشکلشو پیدا کنم و رفع کنم.
باتشکر

138437

gjmkdyttyhujk
شنبه 26 دی 1394, 11:45 صبح
عزیزم این ارور نیست. نمی دونم شما چجوری برنامه نویسی می کنی و کد سمت سرور داری استفاده می کنی ولی نمی دونی این نتیجه که داره نمایش داده میشه کد HTML هست که نتایج کارتون رو نشون میده.

CsharpNevisi
شنبه 26 دی 1394, 13:55 عصر
خخخخخخخخخخ این که ارور نیست . ببین وقتی Restfull وب سرویس رو صدا میکنی محتویات صفحه رو بهت بر میگردونه ... اینم محتویات صفحته ... این تگا نباید تو نتایج وب سرویست نوشته بشه

دقیقا هم مثل ویدیو های پوریا انجمنی کد زدیا ... د خب مرد حسابی حداقل برای دلخوشی اسم متغییرارو عوض میکردی :لبخند:

m.kahtooei
شنبه 26 دی 1394, 23:17 عصر
سلام
ممنون که جواب دادین
همونطور که میبینین من مبتدی ام و تازه دارم یاد میگیرم و این سوال رو مطرح کردم به امید اینکه چندنفر که کار کردن و بلدن جواب بدن و راهنمایی کنن.
میدونم که کد html هست ولی از این بابت گفتم ارور که آخرش نوشته جاوا اسکریپت رو فعال کنید و...
من داشتم ویدیوی آموزشی آقای انجمنی رو میدیدم که کدنویسی کردم ولی نتیجه ش با اون چیزی که تو ویدیو نشون میداد مثل هم نبود بنابراین دقیقا کدهای خود برنامه که مدرس نوشته بود رو کپی کردم تا مطمئن شم مشکل از کد نیست.این کدی رو که میبینی من ننوشتم بلکه کپی اصل برنامه ست که گذاشتم.
حالا شما که کار کردین و بلدین اگه مرحمت کنید و راهنمایی کنید ممنون میشم.
نتیجه ی این برنامه که تو Toast نمایش میده همونطور که تو ویدیو آموزشی بود باید mohammad باشه یعنی فیلد اول از رکورد، که تو اینجا یه کد html رو نشون داده .حالا برای اینکه نتیجه درست رو نشون بده باید چکار کنم
ممنون

gjmkdyttyhujk
شنبه 26 دی 1394, 23:32 عصر
دقیقا هرچی که در ویدئو گفته شده رو پیاده کن. نه کمتر نه بیشتر. بعد اگه مبتدی هستی سعی کن به حرفایی که در ویدئو گفته میشه بیشتر دقت کنی.

Nevercom
یک شنبه 27 دی 1394, 09:11 صبح
متغیر row$ یک آرایه هست، بجای print از json_encode استفاده کن تا بصورت رشته ی JSON نمایشش بدی، ببین تغییری در نتیجه ایجاد می کنه ؟

CsharpNevisi
یک شنبه 27 دی 1394, 10:51 صبح
باید محتویات صفحت فقط ریزالت نشون بده .. من نمیدونم تو PHP به چه شکلی هست ولی متاستفانه بعضی افراد غیر حرفه ای تو دات نت میان مثل PHP یه صفحه وب سایت درست میکنن و نتیجه رو تو همون صفحه بدونه بدنه HTML نشون میدن دقیقا کاری که باید انجام بدی .. !!!!
یه وب سرویس آزمایشی با یه تلنولوژی کهنه دات نت که فقط و فقط وب سرویس نه چیزه دیگه : http://test.pouyanmedgroup.com/service1.asmx

m.kahtooei
دوشنبه 28 دی 1394, 09:46 صبح
سلام مجدد
ممنون از راهنمایی هاتون
کدهای خودمو با یه آدرس دیگه که تو اینترنت پیدا کردم امتحان کردم و اون آدرس رو با آدرس خودم جایگزین کردم که جواب داد و نتیجه ی مورد نظر رو گرفتم.بنابراین مشکل از کدهام نیست. فایل php که رو هاست قرار دادم دقیقا همون فایلی هست که روی آدرس جایگزین بود. به این نتیجه رسیدم که مشکل از هاستمه و احتمالا تو تنظیمات هاست یا... اشتباهی کردم
من فایل php رو تو دایرکتوری htdocs قرار دادم.
به نظرتون مشکل از کجاست؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
ممنون