begin process at 2012 05 27 13:22:37
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > AFFICHER DES INFORMATIONS CONCERNANT LE VISITEUR

AFFICHER DES INFORMATIONS CONCERNANT LE VISITEUR


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
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 :24/03/2010 18:35:07 Vu :13 426

Auteur : spidermario

Ecrire un message privé
Site perso
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, mais des parties du code peuvent être réutilisées en cas de besoin.

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="application/xhtml+xml;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'])))
  • {
  • ?>
  • <script type="text/javascript">
  • <!--/*--><![CDATA[/*><!--*/
  • 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="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">
  • <input type="hidden" name="width" />
  • <input type="hidden" name="height" />
  • <input type="hidden" name="nb_plugins" />
  • </form>
  • <?php
  • }
  • else
  • {
  • ?>
  • </head>
  • <body>
  • <p>Votre r&eacute;solution est de <?php echo $_POST['width']; ?>&times;<?php echo $_POST['height']; ?>.</p>
  • <p>Vous avez <?php echo $_POST['nb_plugins']; ?> plugins install&eacute;s.</p>
  • <?php
  • }
  • ?>
  • <p>Votre navigateur est <?php echo $_SERVER['HTTP_USER_AGENT']; ?>.</p>
  • <p>Votre adresse IP est <?php echo $ip; ?>.</p>
  • </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="application/xhtml+xml;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'])))
			{
		?>
		<script type="text/javascript">
		<!--/*--><![CDATA[/*><!--*/
			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="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">
			<input type="hidden" name="width" />
			<input type="hidden" name="height" />
			<input type="hidden" name="nb_plugins" />
		</form>
		<?php
			}
			else
			{
		?>
	</head>
	<body>
		<p>Votre r&eacute;solution est de <?php echo $_POST['width']; ?>&times;<?php echo $_POST['height']; ?>.</p>
		<p>Vous avez <?php echo $_POST['nb_plugins']; ?> plugins install&eacute;s.</p>
		<?php 
			}
		?>
		<p>Votre navigateur est <?php echo $_SERVER['HTTP_USER_AGENT']; ?>.</p>
		<p>Votre adresse IP est <?php echo $ip; ?>.</p>
	</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
24 mars 2010 18:35:07 :
Réindentation, réorganisation partielle.

 Sources de la même categorie

Source avec une capture MODULE JOOMLA 1.5 NOW LISTENING par Alcantornet
Source avec Zip Source avec une capture UPLOAD CENTER par basssem81
Source avec Zip COMPTEUR DE CLIQUE PHP AVEC JQUERY par devgoneti
Source avec Zip LIVRE D'OR SIMPLE (POUR DÉBUTANT) par devgoneti
Source avec Zip SCRIPT TRAVAUX POUR VOTRE SITE par FleuryK

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture [POO] MENU XHTML HORIZONTAL EXTENSIBLE (MENUEXTENSIBLEX.PHP) par Dariumis
Source avec Zip NAVIGATOR (+CSSDETECTOR) par xXVoxPopuliXx
Source avec Zip Source avec une capture MESVISITEURS par pgl10
Source avec Zip Source avec une capture INFOS LIB par Mini92
Source avec Zip Source avec une capture STATS FAI par ImmortalPC

Commentaires et avis

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

Commentaire de johann1 le 25/04/2006 08:49:39

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

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...

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>

@+

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']).

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.

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.

Commentaire de spidermario le 25/04/2006 14:15:35

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

Commentaire de spidermario le 25/04/2006 14:16:23

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

Commentaire de Sannazzarotiti le 25/04/2006 14:17:01

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

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

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 ^^

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?

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 ;)

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

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

Commentaire de Sannazzarotiti le 25/04/2006 15:12:21

chez moi il y a pas de probleme. Bonne chance

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>

Commentaire de Sannazzarotiti le 25/04/2006 16:25:48

cool, voila qui est mieu

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...?

Commentaire de FhX le 25/04/2006 18:32:16

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

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.

Commentaire de coucou747 le 25/04/2006 20:26:26 administrateur CS

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...

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".

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 :-)

Commentaire de coucou747 le 26/04/2006 09:51:12 administrateur CS

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...

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 )

Commentaire de coucou747 le 26/04/2006 11:34:46 administrateur CS

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

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>

++

Commentaire de coucou747 le 26/04/2006 12:26:12 administrateur CS

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>

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.





Commentaire de coucou747 le 26/04/2006 12:37:20 administrateur CS

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 ?

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!

Commentaire de coucou747 le 26/04/2006 13:08:38 administrateur CS

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)

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 :-)

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

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>

Commentaire de coucou747 le 26/04/2006 15:40:07 administrateur CS

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

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

Informations de vos visiteurs par email [ par bigrat ] [b]Recevoir les informations des personnes qui passe sur votre site web.[/b] [code=php]<? $lang = $_SERVER["HTTP_ACCEPT_LANGUAGE"]; $user = $_SERVER[" repeter un champs formulaire [ par nash7 ] bonjour tt le monde; chui entrain de creer un formulaire de contact pour recrutement et je veux que quand le condidat finisse de remplir les informat Formulaire de retour et PHP [ par jangel ] Bonjour, J'ai un formulaire à faire remplir sur un site web. Lorsque le client soumets le formulaire, je reçoit les informations par courriel. Quand déconnexion utilisateur fermeture navigateur (requête sql) [ par lectpe ] Bonjour à tous. Je suis en-train de réaliser un site web sur lequel peuvent s'inscrire puis se connecter des utilisateurs. Dans ma base de données, u Update BoutonRadio [ par ManuAntibes ] Bonjour J'ai un problème, pour enregistrer les infos dans une base de donnée. j'ai des infos à recup et à enregistrer dans une BDD, les infos provie Tester le type de navigateur dont mon site web est lancé? [ par niss87 ] bonjour; je veux faire un test en php, sur la navigateur dont l'utilisateur a lancé mon site web genre: si le site est lancé dans IE alors traitement1 besoin d'aide [ par katsudouka ] Voila je suis en stage, et je dois creer un script PHP pour recupérer sur le reseau local de l'entreprise les informations suivante: -l'adresse IP de Problême html pour forcer un telechargement et pas l'ouvrir dans le navigateur [ par petiflamand ] Bonjour , je sait que je ne suit pas dans la bonne section mais je ne trouve nul par de l'aide sur ce problême. Je voudrais avoir un liens pour un do Simuler un navigateur lors d'un parse [ par touchcream ] Bonjour à tous, J'ai besoin de parser un site en php pour un outil de statistique mais je suis confronté à un problème, celui-ci affiche un contenu d migration d informations vers une base de données [ par inblossom ] Mon projet De stage consiste a creer une application ainsi une base de donnée dont les infos sont inserer automatiquement dans cette base de donnée .


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,905 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales