connaitre l'origine du client ? [PHP] - PHP - Programmation
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.
Marsh Posté le 12-03-2003 à 14:15:00
ok merci
alors je l'introduirais que si elle existe, comme ca pas de prob
Marsh Posté le 12-03-2003 à 17:46:50
pour être complet :
Code :
|
Marsh Posté le 12-03-2003 à 17:51:59
ethernal a écrit : pour être complet :
|
Pour être complet ou pour être à côté de la plaque ?
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
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 ?
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 ? |
bin si tu teste ta page a partir de chez toi, normal que ca marche pas
pour fair le test, mets ta page sur free, et teste de chez toi
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 ? |
en utilisant la fonction GetHostByAddr
http://www.php.net/manual/en/funct [...] byaddr.php
Marsh Posté le 12-03-2003 à 19:16:41
ethernal a écrit : pour être complet :
|
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à.
Marsh Posté le 12-03-2003 à 19:18:05
gm_superstar a écrit : |
Ben le IF est là pour ca, non ?
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...
Marsh Posté le 12-03-2003 à 19:28:02
Citation : en utilisant la fonction GetHostByAddr |
merci ca marche
Marsh Posté le 12-03-2003 à 19:39:16
euh.. bon alors ca je comrend pas trop comment ca fonctionne :
Code :
|
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.
Marsh Posté le 12-03-2003 à 19:44:06
Big-Foot a écrit : euh.. bon alors ca je comrend pas trop comment ca fonctionne :
|
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)
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; ?
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... |
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 .
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 ?
Marsh Posté le 12-03-2003 à 20:12:54
Core 666 a écrit : |
je dors trop (ou je me réveille pas assez ?)
désolé d'avoir semé le souk dans ce topic
Marsh Posté le 12-03-2003 à 20:20:04
Big-Foot a écrit : j'étais pas au courant pour ce standard, merci |
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
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 ?
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 ??
Marsh Posté le 12-03-2003 à 21:06:58
Big-Foot a écrit : cbon j'ai compris... |
car :
$ip = $_SERVER['REMOTE_ADDR'];
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.
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 :
|
pourquoi ca, ca ne fonctionnerait pas en local :
Code :
|
et pi encore un deuxieme truc :
avec les nouveaux standards ca donne bien ca :
Code :
|
(les HTTP_ je dois les lesser pas vrais ?)
Marsh Posté le 12-03-2003 à 21:39:46
tu as quelle version de PHP ? (easyphp ? )
Et sinon, pour ta deuxieme question, oui
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
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...
Marsh Posté le 15-03-2003 à 00:40:15
ethernal a écrit : |
merci j'ai apris quelques trucs grace a toi
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.
Marsh Posté le 15-03-2003 à 00:55:49
Big-Foot a écrit : |
$_SERVER['REFERRER']
Marsh Posté le 15-03-2003 à 20:17:36
Skylight 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 :
|
il devrait pas m'afficher l'addresse de la page precedente ?
Marsh Posté le 15-03-2003 à 21:24:23
Big-Foot a écrit :
|
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
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 ?