[PHP] connaitre l'origine du client ?

connaitre l'origine du client ? [PHP] - PHP - Programmation

Marsh Posté le 12-03-2003 à 13:59:49    

je voudrai connaitre l'origine (l'url de la page) d'ou vient le client.  
je me rappelle avoir vu une variable qui fait ca mais je suis pas du tout sur, j'ai recherché mais sans resultats. Vous connaissez pas un moyen de faire ce que je cherche ?

Reply

Marsh Posté le 12-03-2003 à 13:59:49   

Reply

Marsh Posté le 12-03-2003 à 14:01:43    

C'est $_SERVER['HTTP_REFERER'] :)
 
Mais bon, cette variable n'est pas forcément renseignée, il est d'ailleurs possible de choisir de ne jamais la rendre publique avec certains browsers.

Reply

Marsh Posté le 12-03-2003 à 14:15:00    

ok merci
alors je l'introduirais que si elle existe, comme ca pas de prob

Reply

Marsh Posté le 12-03-2003 à 17:46:50    

pour être complet :

Code :
  1. $remote_addr= $HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR']
  2. ? $HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR']
  3. : $HTTP_SERVER_VARS['REMOTE_ADDR']);



---------------
...oups kernel error...
Reply

Marsh Posté le 12-03-2003 à 17:51:59    

ethernal a écrit :

pour être complet :

Code :
  1. $remote_addr= $HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR']
  2. ? $HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR']
  3. : $HTTP_SERVER_VARS['REMOTE_ADDR']);



Pour être complet ou pour être à côté de la plaque ?  :whistle:  :p
 
Ton code retourne l'IP probable du gars s'il utilise un proxy, ou son IP publique à défaut. Ca n'a rien à voir avec ce qu'il souhaite :)

Reply

Marsh Posté le 12-03-2003 à 19:09:29    

:D

Reply

Marsh Posté le 12-03-2003 à 19:09:55    

et puis c'est pas a jour :p
 
on dit $_SERVER[''], now :D

Reply

Marsh Posté le 12-03-2003 à 19:11:53    

alors y a juste le 1er ki donne l'origine c'est ca ?  
mais j'ai essayé et il marche pas, je suis sous easyphp c'est peu etre pour ca, mais normalement il fonctionne ?
 
et puis j'ai encore une question, peu on connaitre le nom du pc du client ou pas ?

Reply

Marsh Posté le 12-03-2003 à 19:14:50    

Big-Foot a écrit :

alors y a juste le 1er ki donne l'origine c'est ca ?  
mais j'ai essayé et il marche pas, je suis sous easyphp c'est peu etre pour ca, mais normalement il fonctionne ?
 
et puis j'ai encore une question, peu on connaitre le nom du pc du client ou pas ?

bin si tu teste ta page a partir de chez toi, normal que ca marche pas :p
 
pour fair le test, mets ta page sur free, et teste de chez toi

Reply

Marsh Posté le 12-03-2003 à 19:16:08    

Big-Foot a écrit :

alors y a juste le 1er ki donne l'origine c'est ca ?  
mais j'ai essayé et il marche pas, je suis sous easyphp c'est peu etre pour ca, mais normalement il fonctionne ?
 
et puis j'ai encore une question, peu on connaitre le nom du pc du client ou pas ?


 
en utilisant la fonction GetHostByAddr
 
http://www.php.net/manual/en/funct [...] byaddr.php

Reply

Marsh Posté le 12-03-2003 à 19:16:08   

Reply

Marsh Posté le 12-03-2003 à 19:16:41    

ethernal a écrit :

pour être complet :

Code :
  1. $remote_addr= $HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR']
  2. ? $HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR']
  3. : $HTTP_SERVER_VARS['REMOTE_ADDR']);



En fait c'est un peu plus compliqué que ça. Car l'une de ces variables peut contenir "unknown". Donc il faut tester ce cas là.


Message édité par gm_superstar le 12-03-2003 à 19:20:08

---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 12-03-2003 à 19:18:05    

gm_superstar a écrit :


En fait c'est un peu plus compliqué que ça. Car l'une de ces variables peut contenir "undefined". Donc il faut tester ce cas là.


Ben le IF est là pour ca, non ?

Reply

Marsh Posté le 12-03-2003 à 19:23:09    

Skylight a écrit :

Ben le IF est là pour ca, non ?


Bon j'ai édité, c'est pas "undefined" mais "unknown".
 
Non, le IF ne sert qu'à tester l'existance, mais la variable $_SERVER[""] peut contenir la chaine de caractère "unknown", donc c'est à tester.
 
De même que $_SERVER["HTTP_X_FORWARDED_FOR"] peut contenir 2 IP...


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 12-03-2003 à 19:28:02    

Citation :

en utilisant la fonction GetHostByAddr
 
http://www.php.net/manual/en/funct [...] byaddr.php


 
merci ca marche  :jap:

Reply

Marsh Posté le 12-03-2003 à 19:39:16    

euh.. bon alors ca je comrend pas trop comment ca fonctionne :  

Code :
  1. $remote_addr= $HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR'] 
  2. ? $HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR'] 
  3. : $HTTP_SERVER_VARS['REMOTE_ADDR']);


Mais ca retourne quoi en resultat ? les ip ??
pask moi au debut je parlais de la page precedente qu'a visité le client ki arrive sur le site.

Reply

Marsh Posté le 12-03-2003 à 19:44:06    

Big-Foot a écrit :

euh.. bon alors ca je comrend pas trop comment ca fonctionne :  

Code :
  1. $remote_addr= $HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR'] 
  2. ? $HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR'] 
  3. : $HTTP_SERVER_VARS['REMOTE_ADDR']);


Mais ca retourne quoi en resultat ? les ip ??
pask moi au debut je parlais de la page precedente qu'a visité le client ki arrive sur le site.

oui ca renvoie l'ip du gars qui te visite
-soit son IP directe
-soit son IP interne, derriere le proxy (s'il en utilise un)

Reply

Marsh Posté le 12-03-2003 à 19:53:22    

ah donc ca a rien a voir avec ce que je cherchais...
 
mais ca m'interesse quand meme, ca change quoi d'utiliser ca plutot que tout simblement ca $REMOTE_ADDR; ?

Reply

Marsh Posté le 12-03-2003 à 19:55:56    

Big-Foot a écrit :

ah donc ca a rien a voir avec ce que je cherchais...
 
mais ca m'interesse quand meme, ca change quoi d'utiliser ca plutot que tout simblement ca $REMOTE_ADDR; ?

2 choses :
 
d'une part, respecter les nouveaux standards donnés par php.net
 
(c'est à dire toutes les variables de ce type (en rapport avec le serveur / client) ->> $_SERVER['REMOTE_ADDR'];
 
pourquoi ? car c'est plus sécurisé, aux dires de php.net
 
 
 
et de deuxio, cette fonction renvoie une ip, meme si le gars est derriere un proxy, chose que REMOTE_ADDR ne renvoit pas .

Reply

Marsh Posté le 12-03-2003 à 20:07:02    

j'étais pas au courant pour ce standard, merci
 
et juste, pour $_SERVER[], c'est koi la difference avec d'autres trucs comme HTTP_SERVER... y a pas un site qui explik tous ca en fr ?

Reply

Marsh Posté le 12-03-2003 à 20:12:54    

Core 666 a écrit :


Pour être complet ou pour être à côté de la plaque ?  :whistle:  :p


 
je dors trop  :sleep: (ou je me réveille pas assez ?)
désolé d'avoir semé le souk dans ce topic


---------------
...oups kernel error...
Reply

Marsh Posté le 12-03-2003 à 20:20:04    

Big-Foot a écrit :

j'étais pas au courant pour ce standard, merci
 
et juste, pour $_SERVER[], c'est koi la difference avec d'autres trucs comme HTTP_SERVER... y a pas un site qui explik tous ca en fr ?


tout ce qu'il y a dans HTTP_SERVER_VARS se retrouve dans $_SERVER
 
 
tout pareil pour HTTP_COOKIES_VARS[] qui se retrouve dans $_COOKIE[]
 
 
http://www.php.net/manual/sv/reserved.variables.php

Reply

Marsh Posté le 12-03-2003 à 20:27:24    

juste entre temps j'ai trouvé ca : http://dev.nexen.net/docs/php/anno [...] %24_SERVER
alors en fait le HTTP c'est pour les enciennes verisions de php, donc ca change vraiment rien de mettre l'un ou l'autre ?

Reply

Marsh Posté le 12-03-2003 à 20:58:57    

:sleep:

Reply

Marsh Posté le 12-03-2003 à 21:05:41    

:)  cbon j'ai compris...
 
mais pourkoi si je veu fair echo $ip, il m'ecri mon ip si  
$ip = $REMOTE_ADDR
mais pas si
$ip = $_SERVER['$REMOTE_ADDR'];
 
ca veut dire tout ce qui est dans $_SERVER, est interne au serveur et ne peu etre envoyé au client ??

Reply

Marsh Posté le 12-03-2003 à 21:06:58    

Big-Foot a écrit :

:)  cbon j'ai compris...
 
mais pourkoi si je veu fair echo $ip, il m'ecri mon ip si  
$ip = $REMOTE_ADDR
mais pas si
$ip = $_SERVER['$REMOTE_ADDR'];
 
ca veut dire tout ce qui est dans $_SERVER, est interne au serveur et ne peu etre envoyé au client ??


car :  
 
$ip = $_SERVER['REMOTE_ADDR'];

Reply

Marsh Posté le 12-03-2003 à 21:18:21    

??

Reply

Marsh Posté le 12-03-2003 à 21:19:24    

Il ne faut pas mettre de '$' devant le nom de ta variable ;)
 
en fait toutes les anciennes variables sont regroupées dans un tableau $_SERVER[''], accessibles via leur nom.

Reply

Marsh Posté le 12-03-2003 à 21:38:37    

ok merci, je dois etre fatigué...
 
 
j'ai 1 autre truc encore :
 
si que ca, ca fonctionne en local :

Code :
  1. $ip = $_SERVER['REMOTE_ADDR'];


 
pourquoi ca, ca ne fonctionnerait pas en local :

Code :
  1. $remote_addr= $HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR'] 
  2. ? $HTTP_SERVER_VARS['HTTP_X_FORWARDED_FOR'] 
  3. : $HTTP_SERVER_VARS['REMOTE_ADDR']);


 
 
et pi encore un deuxieme truc  :D  :
 
avec les nouveaux standards ca donne bien ca :

Code :
  1. $remote_addr= $_SERVER['HTTP_X_FORWARDED_FOR'] 
  2. ? $_SERVER['HTTP_X_FORWARDED_FOR'] 
  3. : $_SERVER['REMOTE_ADDR']);


(les HTTP_ je dois les lesser pas vrais ?)

Reply

Marsh Posté le 12-03-2003 à 21:39:46    

tu as quelle version de PHP ? (easyphp ? )
 
Et sinon, pour ta deuxieme question, oui ;)

Reply

Marsh Posté le 12-03-2003 à 21:45:09    

pour la v. php c'est la 4.2.0
et j'utilise easyphp 1.6.0.0


Message édité par Big-Foot le 12-03-2003 à 21:45:28
Reply

Marsh Posté le 15-03-2003 à 00:14:11    

arf j'ai trouvé, il ma suffit de relir le code :
 
: $HTTP_SERVER_VARS['REMOTE_ADDR']);  
 
ca m'apprendra a copier/coller...  :D


Message édité par Big-Foot le 15-03-2003 à 00:14:52
Reply

Marsh Posté le 15-03-2003 à 00:40:15    

ethernal a écrit :


 
je dors trop  :sleep: (ou je me réveille pas assez ?)
désolé d'avoir semé le souk dans ce topic


 
merci j'ai apris quelques trucs grace a toi  :jap:    :D  
 
 
mais maintenant si quelqu'un pourais me repondre a ma 1ere question :
 
Comment connaitre (si c'est possible) la page d'ou vient le client qui se connect au script php ? je parle la d'une page qui serait une page quelquonc sur le net et non une page sur mon site.


Message édité par Big-Foot le 15-03-2003 à 00:41:49
Reply

Marsh Posté le 15-03-2003 à 00:55:49    

Big-Foot a écrit :


 
merci j'ai apris quelques trucs grace a toi  :jap:    :D  
 
 
mais maintenant si quelqu'un pourais me repondre a ma 1ere question :
 
Comment connaitre (si c'est possible) la page d'ou vient le client qui se connect au script php ? je parle la d'une page qui serait une page quelquonc sur le net et non une page sur mon site.


$_SERVER['REFERRER']

Reply

Marsh Posté le 15-03-2003 à 20:17:36    

Skylight a écrit :


$_SERVER['REFERRER']


 
je croi que c'est deja avec un seul R, mais c'est ca $_SERVER['REFERER'] ou ca $_SERVER['HTTP_REFERER'] ?
 
De toute facon ca marche pas, il m'affiche rien du tout quand j'écris ca (ou l'autre version) :  
 

Code :
  1. $prov = $_SERVER['HTTP_REFERER'];
  2. echo $prov;


 
il devrait pas m'afficher l'addresse de la page precedente ?

Reply

Marsh Posté le 15-03-2003 à 21:24:23    

Big-Foot a écrit :


 
je croi que c'est deja avec un seul R, mais c'est ca $_SERVER['REFERER'] ou ca $_SERVER['HTTP_REFERER'] ?
 
De toute facon ca marche pas, il m'affiche rien du tout quand j'écris ca (ou l'autre version) :  
 

Code :
  1. $prov = $_SERVER['HTTP_REFERER'];
  2. echo $prov;


 
il devrait pas m'afficher l'addresse de la page precedente ?


 
il ne t'affiche pas l'adresse précédente, il t'affiche l'adresse du site d'ou TU VIENS
si c'est le meme site, alors tu vera rien

Reply

Marsh Posté le 15-03-2003 à 21:34:46    

ah...  ok merci   :hello:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed