【发布时间】:2016-09-20 17:54:11
【问题描述】:
我正在尝试将一个变量从 android 传递给 php,而在 php 中接收值在空格之后没有得到值。我正在传递变量,
private void register(String txtname) {
String urlSuffix = "?name="+txtname;
Log.d("unmae",txtname);
class RegisterUser extends AsyncTask<String, Void, String>{
ProgressDialog loading;
@Override
protected void onPreExecute() {
super.onPreExecute();
loading = ProgressDialog.show(UserRegister.this,"Please Wait","Loading...");
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
loading.dismiss();
}
@Override
protected String doInBackground(String... params) {
String s = params[0];
BufferedReader bufferReader = null;
try {
URL url = new URL(REGISTER_URL+s);
HttpURLConnection con= (HttpURLConnection) url.openConnection();
bufferReader=new BufferedReader(new InputStreamReader(con.getInputStream()));
String result;
result = bufferReader.readLine();
return result;
} catch (Exception e) {
return null;
}
}
}
RegisterUser ru = new RegisterUser();
ru.execute(urlSuffix);
}
在 PHP 方面
$uname = $_GET['name'];
记录变量时,输出是这样的
例如:unmae:first second
php 端的 echo 是这样的
例如:$uname = $_GET['name'];
echo $uname;
output:first
【问题讨论】:
-
发生这种情况是因为我认为参数中不能有空格,尝试用符号替换空格,然后在 php 中找到该符号并将其设为空格
-
将其替换为“%20”
-
不清楚变量名或值中是否有空格。你没有展示你在做什么。为什么我们必须猜测?如果它在
txtname中,则 url 参数及其值还有其他“禁止”字符。你应该先对整个字符串进行 url 编码。 -
@Tony:任何其他选项我都有很多这样的变量。
-
你能显示应用程序发送到服务器的最终 URL 吗?