Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将SharedReferences值发送到php文件?_Php_Android_Android Sharedpreferences - Fatal编程技术网

如何将SharedReferences值发送到php文件?

如何将SharedReferences值发送到php文件?,php,android,android-sharedpreferences,Php,Android,Android Sharedpreferences,我基本上想做的是,我创建一个登录应用程序,使用firebase我获取该设备的令牌并将其存储在数据库中,而当应用程序安装在设备中时,令牌存储在数据库中,在这里我将令牌存储在SharedReferences中以备以后使用,在下一个活动中,我使用数据库中的用户名和密码,我还使用SharedReferences存储值供以后使用 我想将在日志记录活动中提供用户名和密码的用户的id存储在数据库中,等同于令牌,这样我就可以知道谁的设备令牌存储在数据库中,我找到了一种方法,使用php我可以更新特定的用户id,等

我基本上想做的是,我创建一个登录应用程序,使用firebase我获取该设备的令牌并将其存储在数据库中,而当应用程序安装在设备中时,令牌存储在数据库中,在这里我将令牌存储在SharedReferences中以备以后使用,在下一个活动中,我使用数据库中的用户名和密码,我还使用SharedReferences存储值供以后使用

我想将在日志记录活动中提供用户名和密码的用户的id存储在数据库中,等同于令牌,这样我就可以知道谁的设备令牌存储在数据库中,我找到了一种方法,使用php我可以更新特定的用户id,等同于令牌列

但我的问题是,我无法将android活动中的用户名、密码、令牌发送到php文件,但我可以从SharedReferences中获取用户名、密码、令牌,使用toast我可以看到,但无法将它们发送到php文件

我的问题是如何将SharedReferences值发送到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();
            }
        }
    }
}
package com.example.calenderscheduler;
导入android.content.Context;
导入android.content.SharedReferences;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.support.v7.app.AppActivity;
导入android.widget.Toast;
导入java.io.IOException;
导入java.io.InputStream;
导入java.io.OutputStream;
导入java.net.HttpURLConnection;
导入java.net.MalformedURLException;
导入java.net.URL;
公共类注册令牌Id扩展了AppCompatActivity{
字符串名称、密码、令牌;
上下文ctx=此;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
SharedReferences mPrefs=getSharedReferences(“标识符”,Context.MODE\u PRIVATE);
Name=mPrefs.getString(“Name”,null);
Password=mPrefs.getString(“Password”,null);
Token=mPrefs.getString(“Token”,null);
Toast.makeText(Reg_Token_Id.this,“Token”+Toast.LENGTH_LONG.show();
SendDeviceDetails b=新的SendDeviceDetails();
b、 执行(名称、密码、令牌);
}
类SendDeviceDetails扩展了AsyncTask{
@凌驾
受保护的字符串doInBackground(字符串…参数){
字符串数据=”;
字符串名称=参数[0];
字符串密码=参数[1];
字符串标记=参数[2];
int tmp;
试一试{
URL=新URL(“http://localhost/sample/Scheduler/register_token_userId.php");
字符串urlParams=“Name=“+Name+”Password=“+Password+”Token=“+Token;
HttpURLConnection HttpURLConnection=(HttpURLConnection)url.openConnection();
httpURLConnection.setDoOutput(true);
OutputStream os=httpURLConnection.getOutputStream();
write(urlParams.getBytes());
os.flush();
os.close();
InputStream=httpURLConnection.getInputStream();
而((tmp=is.read())!=-1){
数据+=(字符)tmp;
}
is.close();
httpURLConnection.disconnect();
返回数据;
}捕获(格式错误){
e、 printStackTrace();
return“Exception:+e.getMessage();
}捕获(IOE异常){
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);
?>

设置您使用的请求方法。
这样,

  HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
                httpURLConnection.setRequestMethod("POST");
                httpURLConnection.setDoOutput(true);
                OutputStream os = httpURLConnection.getOutputStream();

错误是由于&,我忘了在字符串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;

您使用POST或GET的请求方法是什么?POST@Bhavya!我不明白我犯了什么错误!请更改字符串变量命名约定。我已更改它,但未在代码中处理添加请求方法类型。httpURLConnection.setRequestMethod(“POST”);我在HttpURLConnection行HttpURLConnection=(HttpURLConnection)url.openConnection()下面的一行给出了代码;但是在setRequestMethod中显示错误如下错误:(55,34)错误:无法从静态上下文引用非静态方法setRequestMethod(字符串)。没有错误,但id未插入到tableLet us中。错误不在空格中,但您忘了在参数名称之前添加(&E)。