Как отправить значения SharedPreferences в файл php?

В основном я пытаюсь сделать следующее: я создаю приложение для входа в систему, использую базу данных, получаю токен этого устройства и сохраняю его базу данных, в то время как когда приложение установлено в устройство, токен сохраняется в базе данных, здесь я сохранить токен в SharedPreferences для последующего использования, и в следующем упражнении я использую имя пользователя и пароль из базы данных, а также я использую SharedPreferences для хранения значения для последующего использования,

я хочу сохранить идентификатор пользователя, который дал имя пользователя и пароль при ведении журнала в базе данных, например, в токене, чтобы я мог узнать, кто токен устройства хранится в базе данных, я нашел способ сделать это используя php, я могу обновить определенный идентификатор пользователя, равный token colomn,

но моя проблема в том, что я не могу отправить имя пользователя, пароль, токен из активности android в файл php, но я могу получить имя пользователя, пароль, токен из SharedPreferences, используя тост, который я могу видеть, но не удалось отправить их в php файл.

мой вопрос, как отправить значение SharedPreferences в файл php?

мой код Android

    package com.example.calenderscheduler;

import android.content.Context;
import android.content.SharedPreferences;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.Toast;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

public class Reg_Token_Id extends AppCompatActivity {

    String Name, Password, Token;
    Context ctx = this;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        SharedPreferences mPrefs = getSharedPreferences("identifier", Context.MODE_PRIVATE);
        Name = mPrefs.getString("Name", null);
        Password = mPrefs.getString("Password", null);
        Token = mPrefs.getString("Token", null);

        Toast.makeText(Reg_Token_Id.this , " token"+Token , Toast.LENGTH_LONG).show();

        SendDeviceDetails b =new SendDeviceDetails();
        b.execute(Name,Password,Token);

    }


      class SendDeviceDetails extends AsyncTask<String, String, String> {

        @Override
        protected String doInBackground(String... params) {

            String data = "";
            String name = params[0];
            String password = params[1];
            String Token = params[2];
            int tmp;

            try {
                URL url = new URL("http://localhost/sample/Scheduler/register_token_userId.php");
                String urlParams = "Name=" + name + "Password=" + password+ "Token=" + Token;

                HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
                httpURLConnection.setDoOutput(true);
                OutputStream os = httpURLConnection.getOutputStream();
                os.write(urlParams.getBytes());
                os.flush();
                os.close();

                InputStream is = httpURLConnection.getInputStream();
                while ((tmp = is.read()) != -1) {
                    data += (char) tmp;
                }

                is.close();
                httpURLConnection.disconnect();
                return data;
            } catch (MalformedURLException e) {
                e.printStackTrace();
                return "Exception: " + e.getMessage();
            } catch (IOException e) {
                e.printStackTrace();
                return "Exception: " + e.getMessage();
            }
        }
    }
}

и мой php файл для получения имени, пароля, токена

    <?php
 require "init.php";

    $Token = $_POST["Token"];
    $Name = $_POST["Name"];
   $Password = $_POST["Password"];
    $user_id;
    $Token_id;

    // $Token = "fFQU08fqp98:APA91bGbLgJslCw8nN7NxvQnAV_Xz3RsRS76cn8DA2aysbVzG35yJZ9poCaxy9KkZ7SDm2ZhuhxVXJSv9POI5uSmFYZrkZ8kD79XmSP-0qAlafbyWM1gG9JW_7vdOTb-tSDitIXABDEK";  
    // $Name =  "rajesh";
     //$Password ="1995";


    $Sql1 = "SELECT * FROM `user_info` 
        WHERE `name`='".$Name."' AND 
        `password`='".$Password."';";

    $result1 = mysqli_query($con, $Sql1);

    while($row = mysqli_fetch_array($result1))
    {
     $user_id =  $row['id']; 


    }

     $Sql2 = "SELECT * FROM `user` 
        WHERE `Token`='".$Token."'";

    $result2 = mysqli_query($con, $Sql2);

    while($row = mysqli_fetch_array($result2))
    {
     $Token_id =  $row['id']; 

    }



        $sql6 =  "UPDATE user SET Employeeid = '".$user_id."'  WHERE id =  " . $Token_id. " ";  
        $result6 = mysqli_query($con, $sql6); 

    mysqli_close($con);
?>

это моя таблица для хранения идентификатора

давая имя, пароль, токен, давая вручную, я могу хранить идентификатор, равный токену, но не могу получить их от активности Android.

Кто-нибудь может мне помочь с этим вопросом! Пожалуйста!

2 ответа

Ошибка произошла из-за &, я забыл использовать их между строкой urlParams!

код ошибки

URL url = new URL("http://localhost/sample/Scheduler/register_token_userId.php");
            String urlParams = "Name=" + name + "Password=" + password+ "Token=" + Token;

правильный код

 URL url = new URL("http://localhost/sample/Scheduler/register_token_userId.php");
            String urlParams = "Name="+name+"&Password="+password+"&Token="+token;

Установите, какой метод запроса вы используете. Вот так,

  HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
                httpURLConnection.setRequestMethod("POST");
                httpURLConnection.setDoOutput(true);
                OutputStream os = httpURLConnection.getOutputStream();
Другие вопросы по тегам