I'm using a shared web hosting account on a Linux server. My server-side PHP script can be called from my Windows (client) application using Windows sockets. Without showing too much code (which is a basic connection via HTTP protocol to port 80) the client application may send the following header to the PHP script:
POST
/php/checkupdates.php?ver=1.2.3.4&ref=&nam=some%20name
HTTP/1.0
Accept: text/plain, text/html, */*
Accept-Language: en-us
Accept-Encoding: deflate
User-Agent: My own agent
Host:
mydomain.com
But for some reason this script returns the 403 Forbidden
error. Interestingly enough, if I load this same URL in a web browser, the PHP script runs just fine.
Purely by trial and error process I discovered that if I add the following line to the header my PHP script starts to work fine:
Content-Length: 0
Well, this is all good. But the issue is that to add this line I need to update all client (Windows) applications that my users have downloaded and been using for a while. In other words, it's not as easy to do.
So I was hoping to try to fix this from a server (i.e. PHP) side. Any ideas?
PS. I should also point out that this used to work when I hosted with a previous web hosting company (i.e. without the Content-Length
line.)
PS2. I tried contacting my current web hosting provider but their tech support keep asking for my public IP. (Possibly to whitelist me so I don't see this error, which won't solve it for others.) In other words I'm not really sure that they know what they're doing. So I thought to understand it first before I contact them again.