Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

AFFICHER DES INFORMATIONS CONCERNANT LE VISITEUR


Information sur la source

Catégorie :Divers Classé sous : infos, informations, visiteurs, résolution, navigateur Niveau : Débutant Date de création : 24/04/2006 Date de mise à jour : 13/01/2007 17:12:32 Vu : 9 384

Note :
5,8 / 10 - par 5 personnes
5,80 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (39)
Ajouter un commentaire et/ou une note

Description

Ce code PHP affiche la résolution, le navigateur et l'adresse IP d'un visiteur.
Rien d'extraordinaire, quoi.
 

Source

  • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  • <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
  • <head>
  • <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
  • <title>Vos informations</title>
  • <?php
  • if(!$ip=getenv('HTTP_CLIENT_IP'))
  • {
  • if(!$ip=getenv('HTTP_X_FORWARDED_FOR'))
  • {
  • if(!$ip=$_SERVER['REMOTE_ADDR'])
  • {
  • $ip=getenv('REMOTE_ADDR');
  • }
  • }
  • }
  • if(!isset($_POST['height']) || !isset($_POST['width']) || !isset($_POST['nb_plugins']))
  • {
  • echo '<script type="text/javascript">
  • <!--
  • function complete()
  • {
  • document.infos=document.getElementById("infos");
  • document.infos.nb_plugins.value=navigator.plugins.length;
  • document.infos.width.value=screen.width;
  • document.infos.height.value=screen.height;
  • document.infos.submit();
  • }
  • //-->
  • </script>
  • </head>
  • <body onload="complete();">
  • <form id="infos" action="'.$_SERVER['REQUEST_URI'].'" method="post">
  • <input type="hidden" name="width" />
  • <input type="hidden" name="height" />
  • <input type="hidden" name="nb_plugins" />
  • </form>';
  • }
  • else
  • {
  • echo '</head>
  • <body>';
  • echo 'Votre r&eacute;solution est de '.$_POST['width'].'&times;'.$_POST['height'].'.<br />';
  • echo 'Vous avez '.$_POST['nb_plugins'].' plugins install&eacute;s.<br />';
  • }
  • echo 'Votre navigateur est '.$_SERVER['HTTP_USER_AGENT'].'.<br />Votre adresse IP est '.$ip.'.';
  • ?>
  • </body>
  • </html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title>Vos informations</title>
<?php
if(!$ip=getenv('HTTP_CLIENT_IP'))
{
if(!$ip=getenv('HTTP_X_FORWARDED_FOR'))
{
if(!$ip=$_SERVER['REMOTE_ADDR'])
{
$ip=getenv('REMOTE_ADDR');
}
}
}
if(!isset($_POST['height']) || !isset($_POST['width']) || !isset($_POST['nb_plugins']))
{
echo '<script type="text/javascript">
<!--
function complete()
{
document.infos=document.getElementById("infos");
document.infos.nb_plugins.value=navigator.plugins.length;
document.infos.width.value=screen.width;
document.infos.height.value=screen.height;
document.infos.submit();
}
//-->
</script>
</head>
<body onload="complete();">
<form id="infos" action="'.$_SERVER['REQUEST_URI'].'" method="post">
<input type="hidden" name="width" />
<input type="hidden" name="height" />
<input type="hidden" name="nb_plugins" />
</form>';
}
else
{
echo '</head>
<body>';
echo 'Votre r&eacute;solution est de '.$_POST['width'].'&times;'.$_POST['height'].'.<br />';
echo 'Vous avez '.$_POST['nb_plugins'].' plugins install&eacute;s.<br />';
}
echo 'Votre navigateur est '.$_SERVER['HTTP_USER_AGENT'].'.<br />Votre adresse IP est '.$ip.'.';
?>
</body>
</html>

Conclusion

Vous pouvez voir ce que ce script donne sur http://spidermario.free.fr/infos_visiteur.php
 

Historique

25 avril 2006 15:04:16 :
Suite aux demandes, j'ai recodé la source
25 avril 2006 15:05:44 :
J'avais oublié d'enlever un truc -_-
13 janvier 2007 17:12:32 :
Passage au XHTML 1.1

Commentaires et avis

signaler à un administrateur
Commentaire de spidermario le 24/04/2006 18:30:08

Oups, erreur, l'adresse exemple est http://spidermario.free.fr/infos_visiteur.php
J'avais mis un "s" en trop :S

signaler à un administrateur
Commentaire de johann1 le 25/04/2006 08:49:39

J'avais justement besoin d'un petit code comme celui-çi! Merci spidermario

signaler à un administrateur
Commentaire de malalam le 25/04/2006 09:05:54 administrateur CS

Hello,

eh beh, moi qui comptait effacer ce code...si il plait, il reste.
Néanmoins, je fais mes critiques :
- le html n'est pas terrible, autant le revoir pour être plus aux normes.
- pourquoi passer par la soumission d'un formulaire pour récupérer la résolution dans une variable php...??? Puisque tu dois utiliser du javascript, pourquoi n'utilises-tu pas QUE du javascript...? Ca éviterait une soumission.
- je trouve que c'est franchement léger comme code, d'une manière générale, mais bon...

signaler à un administrateur
Commentaire de ImmortalPC le 25/04/2006 10:02:51

Salut,

Je suis tout à fait d' accord avec Malalam.
Voilà le code refait sans formulaire et aux normmes xhtml 1.0 ( j'avais la flèmme de chercher le DTD XHTML 1.1 :p)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"><head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Vos informations</title>

</head>
<body>
<script language="JavaScript" type="text/javascript">
<!--
document.write('Votre r&eacute;solution est de '+screen.width+' X '+screen.height+'.<br />');
//-->
</script>
<?php
// on prend l'ip de la meilleure manière qu'il soit
function get_ip(){
if(getenv('HTTP_CLIENT_IP')){
$ip = getenv('HTTP_CLIENT_IP');

}elseif(getenv('HTTP_X_FORWARDED_FOR')){
$ip = getenv('HTTP_X_FORWARDED_FOR');

    }elseif($_SERVER['REMOTE_ADDR']){
        $ip = $_SERVER['REMOTE_ADDR'];

    }else{
$ip = getenv('REMOTE_ADDR');
}
return $ip;
}
echo 'Votre navigateur est ',$_SERVER['HTTP_USER_AGENT'],'.<br />',"\r\n"
,'Votre adresse IP est ',get_ip(),'.';
?>
</body></html>

@+

signaler à un administrateur
Commentaire de wizad le 25/04/2006 11:01:46

je trouve personnelement que le code original (pour répondre à ImmortalPC) reste intérréssant puisque présentant une technique correct pour récupérer la résolution du visiteur et la traiter dans du php (statistique, redimensionnement des images,... tout est possible). Il est vrai que l'exemple en lui même ne nécessiterai pas la récupération dans des variables php. Mais cela reste un exemple clair d'une méthode comme une autre (je cherche toujours l'autre ^^).

"- je trouve que c'est franchement léger comme code, d'une manière générale, mais bon..." (malalam) C'est vrai mais les exemple les plus simple sont parfois les meilleurs à condition qu'ils soient BIEN CODé!! ;-)

Sur ceux pense à intégréles correction d'html d'ImmortlPC voir de dévelloper un peu la partie PHP (meilleur traitement des informations fournient par $_SERVER['HTTP_USER_AGENT']).

signaler à un administrateur
Commentaire de malalam le 25/04/2006 11:15:37 administrateur CS

Immortal => getenv () ne fonctionne pas sur certaine serveurs (dont IIS); autant éviter de l'utiliser donc.

Wizad => je ne trouve pas ça très bien codé, justement, comme je l'ai dit (enfin, je parle surtout du html, vu le peu de php...peu qui est correct, néanmoins!) L'attribut onload est déprécié, par exemple...ennuyeux pour cet exemple. D'autant plus qu'on peut s'en passer, en virant la fonction, par exemple : on lance le javascript séquentiellement.
Quant à "l'autre" méthode pour récupérer des variables js en php, il n'y en a pas : enfin en tous cas, il y a une nécessité, qui est utilisée ici d'une manière (il y en a d'autres, là, par contre) : celle de repasser par le serveur. Ici, on poste un formulaire en POST. Ok. On peut le faire en GET, on peut se passer d'un formulaire et requêter la page directement avec des requêtes xmlhttp...etc.

signaler à un administrateur
Commentaire de Sannazzarotiti le 25/04/2006 12:31:14

Je suis sur que l'on peut rajouter des choses (comme les codecs installés, le systeme d'exploitation, le langage utiliser ). J'ai trouver sa dans un livre javascript:

<script language="JavaScript"><!--

  var nbplugin = navigator.plugins.length;
  // La variable contient le nombre de plug-ins installés

  var win = window.open  
   ("","Plugins","width=400,height=350,resizeable,scrollbars=yes");  
  //Ouverture d'une fenêtre pour la liste des plug-ins

  var i = -1;

  win.document.write("<b>Les plug-ins installés :</b><br><br>");
  win.document.write("<u>Nombre de plug-ins :" + nbplugin +  
                    "</u><br><br>");
  // Le nombre es plug-ins est affiché
  // dans la fenêtre

  while (i < nbplugin)  
  {
    i++;
    win.document.write(navigator.plugins[i].name + "<br>");
    // Affichage des noms des plug-ins
  }

// --></script>

Ce code affiche dans une popup tous les puddings installer (il n'est pas de moi je le repete). Tu pourait t'en inspirer pour améliorer ta sources.

signaler à un administrateur
Commentaire de spidermario le 25/04/2006 14:15:35

Les puddings installés ? Installés où ? Dans mon assiette ? :D

signaler à un administrateur
Commentaire de spidermario le 25/04/2006 14:16:23

Mais sinon, merci de vos commentaires et de votre aide.

signaler à un administrateur
Commentaire de Sannazzarotiti le 25/04/2006 14:17:01

les puddings installer sur l'ordi(sa parait logique)

signaler à un administrateur
Commentaire de Sannazzarotiti le 25/04/2006 14:18:48

ensuite, aussi tu pourait faire un truc qui donne sa comme resultat:
Hauteur : 1024
Largeur : 1280
Profondeur de Couleurs : 32
Profondeur de Pixels : 32
Hauteur disponible : 994
Largeur disponible : 1280

signaler à un administrateur
Commentaire de spidermario le 25/04/2006 14:30:31

C'est plug-in et pas pudding, c'est pour ça que je faisais cette remarque ^^

signaler à un administrateur
Commentaire de Sannazzarotiti le 25/04/2006 14:32:05

oui je me comprend, (jamais reussi a l'ecrire). Sinon tu pensse pourvoir l'ameliorer?

signaler à un administrateur
Commentaire de spidermario le 25/04/2006 14:34:28

Je sais pas si j'aurais le temps de le faire, mais je vais essayer ;)

signaler à un administrateur
Commentaire de Sannazzarotiti le 25/04/2006 14:36:42

Sa donnerait un vréritable interet a ta source. pour les plug-in (j'ai bien ecrit) le code est deja fait

signaler à un administrateur
Commentaire de spidermario le 25/04/2006 15:10:44

Pour le nombre de plug-ins, ça marche, mais pas pour le nom des plug-ins

signaler à un administrateur
Commentaire de Sannazzarotiti le 25/04/2006 15:12:21

chez moi il y a pas de probleme. Bonne chance

signaler à un administrateur
Commentaire de ImmortalPC le 25/04/2006 16:16:27

Salut,

Malalam => "getenv () ne fonctionne pas sur certaine serveurs (dont IIS); autant éviter de l'utiliser donc."
>> C' est pour ça qu' il y a des if ^^.
Je regarde si l' ip est stocké dans la variable, si oui je donne une valeur à $ip sinon je passe à la condition suivante.

J' ai réécrit le code en donnant le nom du navigateur, les plug-ins installés :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"><head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Vos informations</title>
<style type="text/css" media="screen">
<!--
.Gras {
    font-weight: bolder;
}
//-->
</style>
</head>
<body>
<script language="JavaScript" type="text/javascript">
<!--
//******************************************************************************
// Largeur X Hauteur
//******************************************************************************
document.write('Votre r&eacute;solution est de <span class="Gras">'+screen.width+'</span> X <span class="Gras">'+screen.height+'</span>.<br />');

//******************************************************************************
// Plug-ins
//******************************************************************************
// Nombre de plug-ins installés
var nbplugin = navigator.plugins.length;
if(nbplugin){
    document.write('Plug-ins installés ( <span class="Gras">' + nbplugin + '</span> ) :<br />');

    document.write('<ul style="list-style:none; margin-top:0px;">');
    var i = -1;
    while (i < nbplugin){// Affichage des noms des plug-ins
        i++;
        document.write('<li>' + navigator.plugins[i].name + '</li>');
        if(i == nbplugin-1){
            document.write('</ul>');
        }
    }
}else{
    document.write('Il n\' y a aucun plug-ins installé.<br />');
}
//-->
</script>
<?php
//******************************************************************************
// On prend l' ip de la meilleure manière qu'il soit
//******************************************************************************
if(function_exists('getenv')){
    if(getenv('HTTP_CLIENT_IP')){
        $ip = getenv('HTTP_CLIENT_IP');

    }elseif(getenv('HTTP_X_FORWARDED_FOR')){
        $ip = getenv('HTTP_X_FORWARDED_FOR');

    }elseif($_SERVER['REMOTE_ADDR']){
        $ip = $_SERVER['REMOTE_ADDR'];

    }else{
        $ip = getenv('REMOTE_ADDR');
    }
}else{
    $ip = $_SERVER['REMOTE_ADDR'];
}

//******************************************************************************
// Navigateur
//******************************************************************************
$nav = 'Inconnu';
$browser = array('Internet Explorer'=>'MSIE', 'Firefox', 'Mozilla', 'Netscape', 'Safari', 'Konqueror', 'Epiphany', 'Lynx', 'Opera');
foreach($browser as $cle => $val){
    if(strchr($_SERVER['HTTP_USER_AGENT'], $val)){
        if(is_numeric($cle)){
            $nav = $val;
        }else{
            $nav = $cle;
        }
        break;
    }
}

echo 'Votre navigateur est <span class="Gras">',$nav,'</span>.<br />',"\r\n"
,'Voici toutes les référances de votre navigateur : <span class="Gras">',$_SERVER['HTTP_USER_AGENT'],'</span>.<br />',"\r\n"
,'Votre adresse IP est <span class="Gras">',$ip,'</span>.',"\r\n";
?>
</body></html>

signaler à un administrateur
Commentaire de Sannazzarotiti le 25/04/2006 16:25:48

cool, voila qui est mieu

signaler à un administrateur
Commentaire de malalam le 25/04/2006 16:50:36 administrateur CS

>> C' est pour ça qu' il y a des if ^^.
Ben ouais, mais dans ce cas, ça sert à quoi, à part à alourdir le code...?

signaler à un administrateur
Commentaire de FhX le 25/04/2006 18:32:16

Moi j'ose même pas commenter le code :p

signaler à un administrateur
Commentaire de Sannazzarotiti le 25/04/2006 18:35:32

Niveau code je peut pas trop juger. Pour les site (comme le mien) qui mette des video ou des musique, a savoir si il possede le plug-ins necessaire. IL peut y avoir d'autre fonction utile je pensse.

signaler à un administrateur
Commentaire de coucou747 le 25/04/2006 20:26:26

selon moi, publier une page qui nécéssite des plugins particuliers nuit au référencement et à la disponibilitée, et pour ce qui est de la résolution, autant charger un css à la volée en javascript pour que le site passe corectement avec la résolution choisie...

signaler à un administrateur
Commentaire de Sannazzarotiti le 25/04/2006 20:28:46

Lors de la premiere visite, un message apparait et demande si il veut la musique. Il peut l'enlever quand il veut ce qui ne gene en rien la navigation. Ca sert de "bonus".

signaler à un administrateur
Commentaire de malalam le 26/04/2006 07:19:09 administrateur CS

Bon moi je commente celui d'Immortal, puisqu'il est exposé aux débutants :-)

- je ne pige pas le style Gras. Pourquoi faire ? Quand on a une balise <strong>? Vu la mise en page, c'est inutile.

- à moins qu'un truc ne m'échappe, je ne vois tjrs pas l'intérêt de getenv ().

- l'attribut language pour la balise script est déprécié.

- document.write () est horrible (enfin, à mon avis hein...je ne suis pas un spécialise du JS ;-) ). Javascript est un langage fortement orienté DOM, quand même...il y a des façons plus élégantes de faire. On fout le html d'un côté, le js de l'autre, le php pour arbitrer... ;-) Bref, plus DOM pour js... :-)

- t'as commencé à sortir les styles, dommage que tu te sois arrêté en route ?

- if(function_exists('getenv'))...mouais. getenv() est dispo depuis php3, ne nécessite aucune installation particulière, aucune extension, et est standard par défaut. Manquerait plus qu'on fasse des function_exists () sur tout ce qui bouge! ;-)

- la boucle sur strchr est lourde. D'une part, strchr est un alias de strstr, alors je me demande pourquoi tu choisis strchr, mais bon...ensuite, strpos sera sans doute plus rapide. Pi là il est trop tôt, mais je pense que tu peux largement alléger cette partie :-)

signaler à un administrateur
Commentaire de coucou747 le 26/04/2006 09:51:12

var box = document.createElement("div");
box.setAttribute("id","monid");
document.body.appendChild(box);

voilà comment on peut ajouter une div en javascript, de manière propre.... sinon, il y a les innerHTML, mais ça reste relativement crade (et ne marche pas en XUL...)

pour Sannazzarotiti : en js, tu regardes si le gars à un cookie qui dit si il veut de la musique ou non, si il ne l'a pas : vérifies que le gars a le plugin, si il l'a, alors tu mets un if confirm pour savoir si il veut la musique, si il en veut, alors tu ajoutes ton interface de gestion de musique, et tu démare la musique, et tu met dans un cookie qu'il veut de la musique. Et si le gars a le cookie, alors tu replace toute ton interface...

selon moi, c'est meilleur car tu n'as pas de rechargement de page...

signaler à un administrateur
Commentaire de ImmortalPC le 26/04/2006 11:20:39

Salut,

>> Malalam <<
"je ne pige pas le style Gras. Pourquoi faire ? Quand on a une balise <strong>? Vu la mise en page, c'est inutile."
>> Car la balise <strong> ne laisse pas le choix d' ajustement de l' épaisseur
http://wiki.media-box.net/documentation/css/font-weight

"à moins qu'un truc ne m'échappe, je ne vois tjrs pas l'intérêt de getenv ()."
>> C' est pour être sur de trouver l' ipôn essaie plusieur possiblité jusqu'a trouvé l' ip.

"l'attribut language pour la balise script est déprécié."
>> Oups, je savais pas. Pourtant mes page codé en XHTML 1.0 passe sans problème.
Et il ne faut pas oublié que l' on peut utlisé la balise <script> pour faire du php et du vb (je crois).

"document.write () est horrible (enfin, à mon avis hein...je ne suis pas un spécialise du JS ;-) ). Javascript est un langage fortement orienté DOM, quand même...il y a des façons plus élégantes de faire. On fout le html d'un côté, le js de l'autre, le php pour arbitrer... ;-) Bref, plus DOM pour js... :-)"
>> 2 Questions :
- En quoi document.write () est horrible ??
- C' est quoi DOM ?

"t'as commencé à sortir les styles, dommage que tu te sois arrêté en route ?"
>> Pour le peu de mise en forme qu' il y a je vois pas ce que je peux mettre en style en plus.

"if(function_exists('getenv'))...mouais. getenv() est dispo depuis php3, ne nécessite aucune installation particulière, aucune extension, et est standard par défaut. Manquerait plus qu'on fasse des function_exists () sur tout ce qui bouge! ;-)"
>> Absolument ;-)
Mais comment tu l' as dit plus haut, getenv () ne fonctionne pas sur certains serveurs (dont IIS).

"la boucle sur strchr est lourde. D'une part, strchr est un alias de strstr, alors je me demande pourquoi tu choisis strchr, mais bon...ensuite, strpos sera sans doute plus rapide. Pi là il est trop tôt, mais je pense que tu peux largement alléger cette partie :-)"
>> Je ne savais pas que strpos était plus rapide que strchr.
Je corrige ça de suite ;-)
Je ne vois pas comment je puis plus allèger cette partie !
Foreach et pourtant plus rapide que :
while(list($cle,$val) = each($array)){.....}


>> Coucou747 <<
J' ai essayé d' intégré ton code :
var box = document.createElement("div");
box.setAttribute("id","monid");
document.body.appendChild(box);
Mais comment ajout on ce qui doit être entre les balises <div></div> sans innerHTML ???


Voilà le code :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"><head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Vos informations</title>
<style type="text/css" media="screen">
<!--
.Gras {
    font-weight: bolder;
}

.marge_plug_ins {
    margin-left: 25px;
}
//-->
</style>
</head>
<body>
<script language="JavaScript" type="text/javascript">
<!--
//******************************************************************************
// Création d' un element div ( Merci à Coucou747 )
//******************************************************************************
var box = document.createElement('div');
document.body.appendChild(box);

//******************************************************************************
// Largeur X Hauteur
//******************************************************************************
box.innerHTML = 'Votre r&eacute;solution est de <span class="Gras">' + screen.width + '</span> X <span class="Gras">' + screen.height + '</span>.<br />';

//******************************************************************************
// Plug-ins
//******************************************************************************
// Nombre de plug-ins installés
var nbplugin = navigator.plugins.length;
if(nbplugin){
    box.innerHTML += 'Plug-ins installés ( <span class="Gras">' + nbplugin + '</span> ) :<br />';

    var i = -1;
    while (i < nbplugin){// Affichage des noms des plug-ins
        i++;
        box.innerHTML += '<div class="marge_plug_ins">' + navigator.plugins[i].name + '</div>';
    }
}else{
    box.innerHTML += 'Il n\' y a aucun plug-ins installé.<br />';
}
//-->
</script>
<?php
//******************************************************************************
// On prend l' ip de la meilleure manière qu'il soit
//******************************************************************************
if(function_exists('getenv')){
    if(getenv('HTTP_CLIENT_IP')){
        $ip = getenv('HTTP_CLIENT_IP');

    }elseif(getenv('HTTP_X_FORWARDED_FOR')){
        $ip = getenv('HTTP_X_FORWARDED_FOR');

    }elseif($_SERVER['REMOTE_ADDR']){
        $ip = $_SERVER['REMOTE_ADDR'];

    }else{
        $ip = getenv('REMOTE_ADDR');
    }
}else{
    $ip = $_SERVER['REMOTE_ADDR'];
}

//******************************************************************************
// Navigateur
//******************************************************************************
$nav = 'Inconnu';
$browser = array('Internet Explorer'=>'MSIE', 'Firefox', 'Mozilla', 'Netscape', 'Safari', 'Konqueror', 'Epiphany', 'Lynx', 'Opera');
foreach($browser as $cle => $val){
    if(strpos($_SERVER['HTTP_USER_AGENT'], $val)){
        if(is_numeric($cle)){
            $nav = $val;
        }else{
            $nav = $cle;
        }
        break;
    }
}

echo 'Votre navigateur est <span class="Gras">',$nav,'</span>.<br />',"\r\n"
,'Voici toutes les référances de votre navigateur : <span class="Gras">',$_SERVER['HTTP_USER_AGENT'],'</span>.<br />',"\r\n"
,'Votre adresse IP est <span class="Gras">',$ip,'</span>.',"\r\n";
?>
</body></html>

@+ ( une note lol )

signaler à un administrateur
Commentaire de coucou747 le 26/04/2006 11:34:46

et bien le dom, c'est ma méthode :)
c'est ce qui marche en xul, ça revient à manipuler ton document comme php manipule un xml...

c'est l'ensemble des fonctions :

insertBefore, createElement, setAtribute, getAtribute, appendChild... t'en as aussi pour supprimer un élément, et pour faire plein de choses avec... on s'en sert très souvent pour les listes déroulantes (<select>), en xul, on n'a que ça... document.write ne marche pas, et innerHTML non plus...

et bien pour insérer du contenu dans ma dic, tu fais exactement comme ce que j'ai fais...

var box = document.createElement("div");
box.setAttribute("id","monid");
document.body.appendChild(box);

var image = document.createElement("img");
image.setAttribute("src","url");
box.appendChild(image);

on peut ajouter autre chose qu'une image, on peut tout ajouter... l'avantage, c'est qu'on aura pas d'erreur de validation xhtml, mais le désavantage, c'est que le référencement ne sera pas bon pour les liens insérés grace à cette méthode, mais bon, pour afficher une interface pour un player mp3, je penses que le référencement du player n'est pas important...

va voir ma source ou je montre un cahier de rdv en xul (ou un agenda, comme vous voulez) t'as des "bons" exemples de dom dans les deux fichiers

signaler à un administrateur
Commentaire de ImmortalPC le 26/04/2006 12:15:07

Salut,

t' as pas compris,  comment mettre "salut ça va ?" dans entre les balise div ??
ex: <div>salut, ça va ?</div>

++

signaler à un administrateur
Commentaire de coucou747 le 26/04/2006 12:26:12

http://xulfr.org/xulplanet/xultu/dommodify.html

<html>
<body>
<script type="text/javascript">
var box = document.createElement("div");
box.textContent="mon super texte dans la super div";
document.body.appendChild(box);
</script>
</body>
</html>

signaler à un administrateur
Commentaire de malalam le 26/04/2006 12:28:29 administrateur CS

Immortal =>
>> Car la balise <strong> ne laisse pas le choix d' ajustement de l' épaisseur
=> ah bon? La balise strong n'accepte pas de css...?

>> C' est pour être sur de trouver l' ipôn essaie plusieur possiblité jusqu'a trouvé l' ip.
=> mais getenv () renvoie une variable d'environnement. $_SERVER contient des variables d'environnement...y a rien qui te choque ?


>> Oups, je savais pas. Pourtant mes page codé en XHTML 1.0 passe sans problème.
Et il ne faut pas oublié que l' on peut utlisé la balise <script> pour faire du php et du vb (je crois).
=> Déprécié quand même, et en html 4 en plus : http://www.w3.org/TR/html4/interact/scripts.html#edef-SCRIPT

>>DOM
=> Coucou a très bien répondu. C'est aussi ce que je fais, autant que possible. Et DOM, c'est quand même peu ou prou la base du web ;-)
http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/

>> Pour le peu de mise en forme qu' il y a je vois pas ce que je peux mettre en style en plus.
=> mea culpa, j'ai mal lu ton code

>> Absolument ;-)
Mais comment tu l' as dit plus haut, getenv () ne fonctionne pas sur certains serveurs (dont IIS).
=> voili voili... :-) Déjà répondu.

strpos renvoie un entier ou false, strstr renvoie une chaîne (et l'extirpe, avant). M'est avis que c'est plus lent. En plus, tu n'as pas besoin de cette chaîne, mais juste de savoir si une chaîne est présente dans une autre.





signaler à un administrateur
Commentaire de coucou747 le 26/04/2006 12:37:20

malalam, sur ton lien, le w3c dit qu'on peut faire du tcl sur une page web, j'ai jamais testé, mais ça marche partout ??? même sous IE ?

signaler à un administrateur
Commentaire de malalam le 26/04/2006 13:03:44 administrateur CS

Coucou => je n'ai jamais essayé. Mais j'en doute fort...d'un côté, il y a les recommendations du consortium, de l'autre, la réalité du terrain ;-) Mais ça vaut le coup d'essayer!

signaler à un administrateur
Commentaire de coucou747 le 26/04/2006 13:08:38

c'était une simple curiosité... j'aime bien le tcl, mais je ne maitrise pas asez bien pour expérimenter sur une page web en faisant un truc interessant... et si ça ne marche pas sou IE, alors aucun interet.... je serais déja franchement étoné que ça marche sous mozilla... je testerais quand j'aurais le temps (mardi prochain, j'ai le concours prologin à préparer avant)

signaler à un administrateur
Commentaire de aquewel le 26/04/2006 13:40:27

aussi ce qu'il seait interessant c'est de localiser le visiteur ! on peut le faire ca ?

Trouver son pays et si il est francais trouver sa région ! Ca c'est cool :-)

signaler à un administrateur
Commentaire de ImmortalPC le 26/04/2006 15:03:39

Salut,

>> Malalam <<
"Car la balise <strong> ne laisse pas le choix d' ajustement de l' épaisseur
-ah bon? La balise strong n'accepte pas de css...?"
>> Si mais l' épaisseur du Gras nan je préfère utiliser un span et lui donner un style avec une feuille de style ;-)

"C' est pour être sur de trouver l' ip on essaie plusieur possiblité jusqu'a trouvé l' ip.
- mais getenv () renvoie une variable d'environnement. $_SERVER contient des variables d'environnement...y a rien qui te choque ?"
>> getenv est disponnible depuis la version 3 de php alors que getenv n' est dispo que depuis la version 4. C' était en partie une question de portabilité ;-)
J' ai viré les getenv et j' ai tout transformé en $_SERVER

"Oups, je savais pas. Pourtant mes page codé en XHTML 1.0 passe sans problème.
Et il ne faut pas oublié que l' on peut utlisé la balise <script> pour faire du php et du vb (je crois).
=> Déprécié quand même, et en html 4 en plus : http://www.w3.org/TR/html4/interact/scripts.html#edef-SCRIPT"
>> C' est bon j' ai viré language="JavaScript" à contre coeur.

"strpos renvoie un entier ou false, strstr renvoie une chaîne (et l'extirpe, avant). M'est avis que c'est plus lent. En plus, tu n'as pas besoin de cette chaîne, mais juste de savoir si une chaîne est présente dans une autre."
>> Exacte 20/20 ;-)

>> Aquewel <<
Pour la localisation du visiteur aucune idée.

Voilà le code

signaler à un administrateur
Commentaire de ImmortalPC le 26/04/2006 15:04:11

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"><head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Vos informations</title>
<style type="text/css" media="screen">
<!--
.Gras {
    font-weight: bolder;
}

.marge_plug_ins {
    margin-left: 25px;
}
-->
</style>
</head>
<body>
<script type="text/javascript">
<!--
//******************************************************************************
// Création d' un element div ( Merci à Coucou747 )
//******************************************************************************
var box = document.createElement('div');
document.body.appendChild(box);// On envoie le tout

//******************************************************************************
// Largeur X Hauteur
//******************************************************************************
box.innerHTML = 'Votre r&eacute;solution est de <span class="Gras">' + screen.width + '</span> X <span class="Gras">' + screen.height + '</span>.<br />';

//******************************************************************************
// Plug-ins
//******************************************************************************
// Nombre de plug-ins installés
var nbplugin = navigator.plugins.length;
if(nbplugin){
    box.innerHTML += 'Plug-ins installés ( <span class="Gras">' + nbplugin + '</span> ) :<br />';

    var i = -1;
    while (i < nbplugin){// Affichage des noms des plug-ins
        i++;
        box.innerHTML += '<div class="marge_plug_ins">' + navigator.plugins[i].name + '</div>';
    }
}else{
    box.innerHTML += 'Il n\' y a aucun plug-ins installé.<br />';
}
//-->
</script>
<?php
//******************************************************************************
// On prend l' ip de la meilleure manière qu'il soit
//******************************************************************************
if(IsSet($_SERVER['HTTP_X_FORWARDED_FOR'])){
    $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];

}elseif(IsSet($_SERVER['HTTP_CLIENT_IP'])){
    $ip = $_SERVER['HTTP_CLIENT_IP'];

}else{
    $ip = $_SERVER['REMOTE_ADDR'];
}

//******************************************************************************
// Navigateur
//******************************************************************************
$nav = 'Inconnu';
$browser = array('Internet Explorer'=>'MSIE', 'Firefox', 'Mozilla', 'Netscape', 'Safari', 'Konqueror', 'Epiphany', 'Lynx', 'Opera');
foreach($browser as $cle => $val){
    if(strpos($_SERVER['HTTP_USER_AGENT'], $val)){
        if(is_numeric($cle)){
            $nav = $val;
        }else{
            $nav = $cle;
        }
        break;
    }
}

echo 'Votre navigateur est <span class="Gras">',$nav,'</span>.<br />',"\r\n"
,'Voici toutes les référances de votre navigateur : <span class="Gras">',$_SERVER['HTTP_USER_AGENT'],'</span>.<br />',"\r\n"
,'Votre adresse IP est <span class="Gras">',$ip,'</span>.',"\r\n";
?>
</body></html>

signaler à un administrateur
Commentaire de coucou747 le 26/04/2006 15:40:07

pour la localisation du visiteur, faut faire un whois sur son ip, mais on n'a aucune précision, et aucune certitude...

signaler à un administrateur
Commentaire de kymm le 04/03/2008 17:38:13

Pour les webmasters qui le désirent, je fournis un script PHP sur mon site Internet http://www.WeLive.fr dans la rubrique Géolocalisation par IP.
Le script PHP vous retourne les informations sous forme de variables PHP : Pays, Drapeau du pays, Région-Département-Code Postal pour la France, Ville.
Celui-ci nécessite une inscription préalable aux fins d'éviter que n'importe qui l'utilise.

A bientôt

WeLive.fr

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Bouton Actualiser de navigateur crée des doublons dans ma base de données [ par Max ] Bonjour,J'ai un problème avec ma page php. En appuyant sur le bouton j'envoie les données de mon formulaire au serveur et elles sont inscrites dans m DONNER DES INFOS SUR LE VISITEUR [ par kindool ] Bonjour, je recherche tout type de code php donnant des infos sur le visiteur du site, si vous en connaissez, merci de me répondre :)genre d'infos rec cache du navigateur [ par booth ] c'est encore moa....Désolé mais j'ai un projet à terminer dans peu de temps alors...J'ai pas trouvé le moyen de forcer le navigateur (et le proxy pend Problèmes formulaire [ par JTR ] Bien le bonjour tous :)Alors je veux faire un formulaire de modification d'informations. ( Nom, prénom, adresse ...)Les informations sont dans une bas Avoir des infos sur un user [ par Yuleesize ] Ehh bjr. En fait j'aimerait bien savoir komment on fé pour avoir des infos sur l'user... Comme par ex l'host... l'os... le navigateur... etc... En fai récupération d'informations contenu dans une page web [ par malice120 ] Est t'il possible de récupérer des informations contenu dans une page web dans une base de donnée?bonne annee 2003 a tous script sur la résolution d'écran [ par vopicek ] Pour dimmensionnner une galerie d'icones de photos, il est intéressant d'avoir la résolution d'écran du visiteur.Il y a une astuce sur le site, mais i Besoin de conseils [ par Spoutnik ] Salut,Je suis étudiant et je voudrais savoir ou avoir des informations sur les differents systemes de bases de donnees, que ce soit en environnement l Prb d'adresse [ par saad123 ] bonjourg un ch'tit problème! en fait , c pour changer l'adresse qu'il y'a dans la barre "adresse" du navigateur ( en dessous de précédent) . l'utilisa serveur d'informations et d'actualités [ par hackoo ] Salut, je cherche un script complet pour la création d'un seveur d'informations et d'actualités dans lequel le lecteur peut devenir acteur ,avec la po


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,593 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.