Hi all,
I have an android application which communicates with a php page to insert data into mysql table. it was functioning well on an windows server. Recently we were forced to move the application to a linux sever for some other reason. After that some error is returned. When I cross checked every thing, no data is received from the android application to the php page.
Android send data using post method. Content type is "application/x-www-form-urlencoded". Data is encoded using UTF-8 format.
I can see the variables values correctly in android app. But when we fetch it in Php page "null" is returned. When we assign a value in php page it works
The same code was working finely on windows server. So I have concluded that problem was with the server settings.
Default charset of server was not UTF-8 and I asked server team to set it so and they did the same adding the following code .htaccess file
// .htaccess code
suPHP_ConfigPath /home/vyapary/php.ini
## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 week"
ExpiresByType image/jpeg "access 1 week"
ExpiresByType image/gif "access 1 week"
ExpiresByType image/png "access 1 week"
ExpiresByType text/css "access 1 week"
ExpiresByType application/pdf "access 1 week"
ExpiresByType application/x-javascript "access 1 week"
ExpiresByType application/x-shockwave-flash "access 1 week"
ExpiresByType image/x-icon "access 1 week"
ExpiresDefault "access 2 days"
</IfModule>
## EXPIRES CACHING ##
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>
<IfModule mod_php5.c>
php_value default_charset "UTF-8"
</IfModule>
<IfModule mod_php5.c>
php_value safe_mode off
</IfModule>
<IfModule mod_php4.c>
php_value safe_mode off
</IfModule>
Is there any other setting to be changed or added in .htacess to get it working
Android code
String pdts=jsonobj.toString(); String citms=citm.toString(); url = new URL("http://www.mydom.in/myphppage.php"); String pdtsenc=URLEncoder.encode(pdts, "UTF-8"); String citmsenc=URLEncoder.encode(citms, "UTF-8"); String param = "cdt=" + pdtsenc + "&idt=" + citmsenc; conn=(HttpURLConnection)url.openConnection(); conn.setDoOutput(true); conn.setRequestMethod("POST"); conn.setFixedLengthStreamingMode(param.getBytes().length); conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); PrintWriter out = new PrintWriter(conn.getOutputStream()); out.print(param); out.close();
Php code
$cdt = urldecode($_POST['cdt']);
//this returns null
$cdt = json_decode($cdt , true);
$idt = urldecode($_POST['idt']);
// this returns null
$idt = json_decode($idt , true);
Please suggest a solution for this
Thanks in Advance!!!