views:

129

answers:

3

We've developing mobile application using CodeIgniter PHP framework. App was tested on several hardware phones and emulators. Everything works fine everywhere - except Nokia S40 built-in browser. When browsing via thatbrowser, it reveals that $_SERVER['HTTP_REFERER'] is not set at all - even using straight PHP with no frameworks. Specifically, app was tested on Nokia 3500 Classic and 6300. Also, when using Opera Mini on the same phones, all worked like a charm. Server is Apache2 with PHP5, CodeIgniter 1.7, but I don't think it's a framework issue.

Strange thing is, it seems that only a few people in the world got, or mentioned, this issue, with no answer. Well, the question is - do we missing something? Does Nokia S40 built-in browser really strips out HTTP_REFERER, or is it server issue? What could be done to fix or mitigate it?

+3  A: 

Referers are not required to be sent by any browser. Do not build anything assuming you will be getting them from a browser; there are other things that can block their appearance (browser plugins, security software, etc.)

Joe
A: 

In order for HTTP_REFERER to exist, there needs to be a HTTP_REFERER header. This header does not exist if someone types in the URL directly (ie: does not follow a link to the page). It only exists when someone clicks on a link from another page. And, some browsers don't send them.

Sander
A: 

Yes, HTTP_REFERER are optional http headers. Some carrier, or his transcoders (proxies), are deleting HTTP_REFERER header.

fravelgue