J'essaie de comprendre que le système d'exploitation du visiteur est soit une Windows, Mac ou Linux à l'aide de PHP (je n'ai pas besoin de la version, Distro Info .. etc.). Il y a plusieurs méthodes là-bas, mais ils ont l'air un peu trop compliqué pour cette exigence simple. P>
Y a-t-il des moyens simples qui pourraient fournir ce type d'informations tout en étant encore assez fiable? P>
Merci d'avance. P>
3 Réponses :
Pour une solution facile, j'ai un look ici . L'en-tête d'agent utilisateur peut révéler certaines informations du système d'exploitation, mais je ne compterais pas à ce sujet.
Pour votre cas d'utilisation, je ferais un appel AJAX à l'aide de JavaScript à partir du client pour informer votre serveur du système d'exploitation du client. Et faites-le imperméable. P>
Voici un exemple. P>
JavaScript (côté client, détection de navigateur + appel AJAX): P>
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
}
Semble fiable. Cependant, je suppose que la détection ne se produit qu'après la charge de la page?
Sans charge de page Vous ne pourrez pas récupérer plus que ce que l'en-tête d'agent utilisateur révèle. Eh bien, vous pouvez enregistrer le système d'exploitation Utilisateurs lors de l'initialisation de la session (sur la charge de première page), une solution de contournement pourrait être de rediriger à une deuxième page après avoir détecté le système d'exploitation sur la première page.
Utilisez le package Net_UserAgent P>
docu est ici: http: // poire. php.net/package/net_useragent_detect/docs/latest/net_useragent/net_useragent_detect.html#methodgetossTring P>
Obtenez le fichier PHP ici: Emballage / Net_useragent_Detect / Docs / Dernier / __ Filesource / fsource_net_useragent__net_useragent_detect-2.5.1Detect.php.html P>
<?php
$agent = $_SERVER['HTTP_USER_AGENT'];
if(preg_match('/Linux/',$agent)) $os = 'Linux';
elseif(preg_match('/Win/',$agent)) $os = 'Windows';
elseif(preg_match('/Mac/',$agent)) $os = 'Mac';
else $os = 'UnKnown';
echo $os;
?>
Stackoverflow.com/questions/228256 / ...
Dupliqué possible de Obtenez des informations système d'exploitation avec PHP