بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

گرفتن مقدار در PHP از اندروید

مدیریت گفتگو
علی 10 سال پیش
آخرین تغییر: 10 سال پیش

دوستان من میخام مقداری که کاربر در EditText وارد میکند بگیرم. و اونو اضافه کنم ببه اول فایلش و بفرستم به سرور . کدهای زیر برای این کارن ولی نمیدونم چرا کار نمیکنه.  در کد اندروید مقادیر ست میشن و مشکلی نیست و فایل هم ارسال میشه به سرور و در پوشه ذخیره میشه ولی اون مقداری که کاربر وارد کرده (tel$  در کد php ) ست نمیشه و تهی هست.

 ArrayList<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("mobile",CustomerMobile));
sendData(params);

-------------------------
private void sendData(ArrayList<NameValuePair> params){
String result = Webservice.readUrl(UploadServerURL, params);
}

---------------------------------------


PHP Code :


<?php

$file_path = "files/";
$dates = date('YmdHis');

$tel=$_REQUEST['mobile'];

$file_path = $file_path . $tel . $dates . basename( $_FILES['uploaded_file']['name']);

if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path)) {
echo "success";
} else{
echo "fail";
}
?>

نظرات

پاسخ‌ها 4

علی 10 سال پیش

چرا مقداری که توسط تابع sendData برگردونده میشه یعنی خط زیر fail هست ؟ کجای کار اشتباهه ؟

 String result = Webservice.readUrl(upLoadServerUri , params);

نظرات

mostafa1393 10 سال پیش

امروز این زدم جواب گرفتم
 ArrayList<NameValuePair> params = new ArrayList<NameValuePair>();
                params.add(new BasicNameValuePair("name", edtName.getText().toString()));
                params.add(new BasicNameValuePair("email", edtEmail.getText().toString()));
                params.add(new BasicNameValuePair("phone", "" + edtPhone.getText().toString()));
                params.add(new BasicNameValuePair("mtnnazar", actText.getText().toString()));
       
 <?php
if (isset($_REQUEST['action'])){ mysqli_query("SET NAMES 'utf8'"); $action = $_REQUEST['action']; } else { echo "Invalid Data"; exit; } if ($action=="insert"){ insertData(); } /** * */ function connectToDatabase(){ $connection=mysqli_connect("localhost", "root", "", "sssssss"); mysqli_set_charset($connection, 'utf8'); if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } return $connection; } function insertData(){ $connection = connectToDatabase(); $as_version=$_REQUEST['as_version']; $berand=$_REQUEST['berand']; $width=$_REQUEST['width']; $height=$_REQUEST['height']; $model=$_REQUEST['model']; $imei=$_REQUEST['imei']; $result = mysqli_query($connection, "INSERT INTO amar VALUES(0, '$as_version','$berand','$width',
'$height','$model','$imei' )"); mysqli_close($connection); }

 

 

  @Override
    public void onCreate() {
        super.onCreate();

DisplayMetrics displayMetrics = G.context.getResources().getDisplayMetrics(); TelephonyManager telephonyManager = (TelephonyManager) G.context
.getSystemService(Context.TELEPHONY_SERVICE); ArrayList<NameValuePair> params1 = new ArrayList<NameValuePair>(); params1.add(new BasicNameValuePair("width", "" + displayMetrics.widthPixels)); params1.add(new BasicNameValuePair("height", "" + displayMetrics.heightPixels)); params1.add(new BasicNameValuePair("berand", Build.BRAND)); params1.add(new BasicNameValuePair("model", Build.MODEL)); params1.add(new BasicNameValuePair("as_version", Build.VERSION.RELEASE)); params1.add(new BasicNameValuePair("imei", telephonyManager.getDeviceId())); insert2(params1);
}
  public static void insert2(ArrayList<NameValuePair> params) {
        Webservice.readUrl("http://server.ir/insert.php?action=insert", params);

    }

نظرات

علی 10 سال پیش

بله کد درسته . کد خودمم درسته ولی من مشکلم داخل تابع readUrl هست

 HttpClient client = new DefaultHttpClient();
HttpPost method = new HttpPost(url);

Log.i("LOG", " Parameters is = " + params.get(4).getName() + " " + params.get(4).getValue());

if(params!=null) {
method.setEntity(new UrlEncodedFormEntity(params));
}
HttpResponse response = client.execute(method);

InputStream inputStream = response.getEntity().getContent();
Log.i("LOG" , " InputStream Length is = " + inputStream.available());
String result = ConvertInputStreamToString(inputStream);
Log.i("LOG", " Method String Result is = " +result);
return result;
 

ولی این تابع مقادیر رو ست نمیکنه . آدرس url سایت هم درسته . چون عکسم آپلود میشه داخل سایت اما متغیر tel$ ست نمیشه. در تابع بالا هم مقادیر response  به بعد ست نشده اند.

 

نظرات

علی 10 سال پیش
تمامی Log هایی که قرار دادمم داخل تابع مقادیر صفر یا -1 برمیگردونن
mostafa1393 10 سال پیش
لطفا کدهای سمت سرور بزارین
علی 10 سال پیش


<?php

$file_path ="files/";
$dates = date('YmdHis');

$tel=$_REQUEST['mobile'];

$file_path = $file_path . $tel . $dates . basename( $_FILES['uploaded_file']['name']);

if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path)){
echo "success";
}else{
echo "fail";
}
?>
 

نظرات

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

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .