when sending data to a php server through android I cam across this error: “Notice: Undefined index: IT in C:\xampp\htdocs\hello.php on line 4”. After a few hours of messing around with it I can’t solve my issue.
hello.php :
<?php
mysql_connect("localhost","user","pass");
mysql_select_db("mmo");
$r=mysql_query("update players set X = '".$_REQUEST['IT']."' where 22=22");
if(!$r)
echo "Error in query: ".mysql_error();
mysql_close();
header('Refresh: 0.01; URL=http://localhost/hello.php');
?>
update method in android:
public void UpdateSeverWithPlayer()
{List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("IT","3"));
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://10.0.2.2/hello.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
Log.e("log_tag", "Error in http connection"+e.toString());
}}
I am working on the android emulator and do have the internet permission. As always help is greatly appreciated.
EDIT 1: It appears the issue is in the android and not the php code.
You’re not sending your query string propertly somehow, so there is no
$_REQUEST['IT']on the PHP side. do avar_dump($_REQUEST)to see what’s coming through. Or better yet, don’t use $_REQUEST. It’s somewhat insecure. Better use the superglobal directly related to your HTTP method, _GET or _POST.As well, the
Refreshheader is non-standard. it’ll work, but you shouldn’t depend on it. An HTTP level redirect uses the Location: header. Refresh: is a non-standard old-school Netscape extension.