我让我的Android-App用户能够回复我的反馈。 从技术上讲,我只是对我的PHP脚本执行HTTP-Post,它作为我的数据库的连接器,存储反馈。
由于我的应用程序正在全球范围内扩展,我遇到了多种语言的问题。我遇到这些语言的问题:
Espagnol - España
Arabic - الØ&
Korean - 대한ë¯&f
Hungary - Magyarország
Turkey - Türkiye
Austria - Österreich
实施适用于全球各地的反馈系统的最佳做法是什么?
到目前为止,我做了一个AsyncTask,它启动了一个为HttpPost提供动力的HttpClient。有我的代码:
public class reqeust_online extends AsyncTask<Void, Integer, Boolean>
{
@Override
protected void onPostExecute(Boolean result)
{
}
@Override
protected Boolean doInBackground(Void... params)
{
int request_widget = 0;
if(((CheckBox)request_dialog.findViewById(R.id.chx_request_widget)).isChecked())
{
request_widget = 1;
}
int request_gallery = 0;
if(((CheckBox)request_dialog.findViewById(R.id.chx_request_gallery)).isChecked())
{
request_gallery = 1;
}
int request_sound = 0;
if(((CheckBox)request_dialog.findViewById(R.id.chx_request_sound)).isChecked())
{
request_sound = 1;
}
/* End */
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(URI.create((getResources().getString(R.string.url_request_send))));
try {
ArrayList<NameValuePair> nameValuePair = new ArrayList<NameValuePair>();
nameValuePair.add(new BasicNameValuePair("request_widget", request_widget +""));
nameValuePair.add(new BasicNameValuePair("request_gallery", request_gallery +""));
nameValuePair.add(new BasicNameValuePair("request_sound", request_sound +""));
nameValuePair.add(new BasicNameValuePair("request_custom", ((EditText)request_dialog.findViewById(R.id.edt_request)).getText().toString()));
// Debug information
nameValuePair.add(new BasicNameValuePair("device_country", Locale.getDefault().getDisplayCountry()));
nameValuePair.add(new BasicNameValuePair("device_language", Locale.getDefault().getLanguage()));
nameValuePair.add(new BasicNameValuePair("device_model", android.os.Build.MODEL));
nameValuePair.add(new BasicNameValuePair("device_manufacturer", android.os.Build.MANUFACTURER));
post.setEntity(new UrlEncodedFormEntity(nameValuePair, "UTF-8"));
HttpResponse response = client.execute(post);
StatusLine statusLine = response.getStatusLine();
if(statusLine.getStatusCode() == HttpURLConnection.HTTP_OK)
{
return true;
}
}
catch (Exception e) {}
return false;
}
}
这是我的PHP代码,它存储传输到我的MysqlDB中的值
connect_mysql();
$country = clean($_POST['device_country']);
$language = clean($_POST['device_language']);
$model = clean($_POST['device_model']);
$manufacturer = clean($_POST['device_manufacturer']);
$widget = clean($_POST['request_widget']);
$gallery = clean($_POST['request_gallery']);
$sound = clean($_POST['request_sound']);
$custom = clean($_POST['request_custom']);
mysql_query("INSERT INTO wm2014_request (widget,gallery,sound,custom,country,language,model,manufacturer) VALUES ('$widget','$gallery','$sound','$custom','$country','$language','$model','$manufacturer')") or die (http_response_code(204));
http_response_code(200);
function clean($str)
{
$str = @trim($str);
$str = htmlentities($str);
if(get_magic_quotes_gpc())
{
$str = stripslashes($str);
}
$str = mysql_real_escape_string($str);
$str = addslashes($str);
return $str;
}
我使用utf8_general_ci
设置MySQL数据库,所以这应该不是问题。
你能帮助我吗?
答案 0 :(得分:0)
function clean($str)
{
$str = @trim($str);
if(get_magic_quotes_gpc())
{
$str = stripslashes($str);
}
return mysql_real_escape_string($str);
}