Per una soluzione facile dare un'occhiata here. L'intestazione user-agent potrebbe rivelare alcune informazioni sul sistema operativo, ma non ci conterei.
Per il tuo caso, farei una chiamata ajax utilizzando javascript dal lato client per informare il tuo server del sistema operativo del client. E fallo impermeabile.
Ecco un esempio.
Javascript (lato client, il rilevamento del browser + chiamata AJAX):
window.addEvent('domready', function() {
if (BrowserDetect) {
var q_data = 'ajax=true&browser=' + BrowserDetect.browser + '&version=' + BrowserDetect.version + '&os=' + BrowserDetect.OS;
var query = 'record_browser.php'
var req = new Request.JSON({url: query, onComplete: setSelectWithJSON, data: q_data}).post();
}
});
PHP (lato server):
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$session = session_id();
$user_id = isset($user_id) ? $user_id : 0;
$browser = isset($_POST['browser']) ? $_POST['browser'] : '';
$version = isset($_POST['version']) ? $_POST['version'] : '';
$os = isset($_POST['os']) ? $_POST['os'] : '';
// now do here whatever you like with this information
}
http://stackoverflow.com/questions/228256/operating-system-from-user-agent-http-header – user187291
possibile duplicato di [Ottieni informazioni sul sistema operativo con PHP] (http://stackoverflow.com/questions/18070154/get-operating-system-info-with-php) –