Here is the code for the php server:
?php
//from the online tutorial:
$usr = "bikemap";
$pwd = "pedalhard";
$db = "test";
$host = "localhost";
$cid = mysql_connect($host,$usr,$pwd);
if (!$cid) { echo("ERROR: " . mysql_error() . "
"); }
$userID = $_POST['userID'];
$date = $_POST['date'];
$time = $_POST['time'];
$lat = $_POST['lat'];
$long = $_POST['longi'];
$alt = $_POST['alt'];
mysql_select_db("test");
mysql_query("INSERT INTO gpsdata (userID, date, time, lat, longi, alt) VALUES ('$userID', '$date', '$time', '$lat','$longi','$alt') ") or die(mysql_error());
/*$SQL = " INSERT INTO gpsdata ";
$SQL = $SQL . " (userID, date, time, lat, longi, alt) VALUES ";
$SQL = $SQL . " ('$userID', '$date', '$time', '$lat','$longi','$alt') ";
$result = mysql_query("$SQL");
if (!$result) {
echo("ERROR: " . mysql_error() . "
$SQL
"); } */
//echo ("New Link Added
");
mysql_close($cid);
?>
Data sent from my android app:
[userID=Loren, date=today, time=now, lat=bit 1, longi=bit 2, alt=bit 3]
For some reason my php doesnt read the data sent from the android app (shown above) properly but if I send the same data from a local web page the data posted parses as it should.
public static void sendAccelerationData(String userIDArg, String dateArg, String timeArg,
String timeStamp, String lat, String longi, String alt)
{
//Add data to be send.
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(6);
nameValuePairs.add(new BasicNameValuePair("userID", userIDArg));
nameValuePairs.add(new BasicNameValuePair("date",dateArg));
nameValuePairs.add(new BasicNameValuePair("time",timeArg));
//nameValuePairs.add(new BasicNameValuePair("timeStamp",timeStamp));
nameValuePairs.add(new BasicNameValuePair("lat",lat));
nameValuePairs.add(new BasicNameValuePair("longi",longi));
nameValuePairs.add(new BasicNameValuePair("alt",alt));
//this.sendData(nameValuePairs);
try
{
TextLog.addLogStuff("SERV Trying to connect to Server");
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new
HttpPost("http://myserver.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
Log.i("ServerConn", response.getStatusLine().toString());
TextLog.addLogStuff("SERV PostData: " +response.getStatusLine().toString());
//Could do something better with response.
}
catch(Exception e)
{
Log.e("log_tag", "Error: "+e.toString());
TextLog.addLogStuff("SERV Connection error: " +e.toString());
}
}
I'd need to see the code you are using in Android to POST the data to know for sure, but it seems like your Android app isn't posting the data in the correct format. You should be doing it something like this: Android, Java: HTTP POST Request.
As @John Watson said, it's because your android app doesn't send the data as your 'local web page'. You can post your android app code (i won't help with that) or log the sent data somewhere else to see what's incorrect. write them to a log file or send them by mail. I recommand log it.
<?php
$post = var_export($_POST, true);
$f= fopen('log', 'a+');
fwrite($f, $post);
fclose($f);
Correct file rights needed. Then watch your log file 'log'
As Said, this script is not for production, because sent data need to be checked/escaped to avoid sql injections.
I think a server redirect was messing up the information.