[Resolu] Résultat d'un $_SERVER["REMOTE_ADDR"] dan

totof78
WRInaute discret
WRInaute discret
 
Messages: 62
Inscription: 6 Nov 2005

[Resolu] Résultat d'un $_SERVER["REMOTE_ADDR"] dan

Message le Dim Mai 27, 2007 9:14

Bonjour,

sur un site A, je fais un include d'un script php situé sur un site B :
Code: Tout sélectionner
<?php
include ('http://www.siteB.com/includes/infos.php');
?>


Dans infos.php, je recherche entre autre l'adresse IP du visiteur :
Code: Tout sélectionner
function realip() {
  if (isSet($_SERVER)) {
    if (isSet($_SERVER["HTTP_X_FORWARDED_FOR"])) {
     $realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
    } elseif (isSet($_SERVER["HTTP_CLIENT_IP"])) {
     $realip = $_SERVER["HTTP_CLIENT_IP"];
    } else {
     $realip = $_SERVER["REMOTE_ADDR"];
    }

   }
   else {
    if ( getenv( 'HTTP_X_FORWARDED_FOR' ) ) {
     $realip = getenv( 'HTTP_X_FORWARDED_FOR' );
    } elseif ( getenv( 'HTTP_CLIENT_IP' ) ) {
     $realip = getenv( 'HTTP_CLIENT_IP' );
    } else {
     $realip = getenv( 'REMOTE_ADDR' );
    }
   }
   return $realip;
}


Comme vous pouvez vous en douter, je cherche à récuperer l'adresse IP des visiteurs.

Comme j'ai plusieurs sites à gérer, j'ai mit mon script sur l'un d'eux et je l'appelle depuis les autres.

Mon problème est le suivant :
Le script n'affiche pas l'adresse IP du visiteur mais celle du site depuis lequel l'include est réalisé.

bizarre non ?
Dernière édition par totof78 le Lun Mai 28, 2007 21:08, édité 1 fois.


dmathieu
Modérateur
Modérateur
 
Messages: 7245
Inscription: 9 Jan 2004

Message le Dim Mai 27, 2007 9:29

Un include a pour effet d'ouvrir un fichier et de lire son contenu dans ta page.

Etant donné que tu fait ton include avec une url, le serveur ouvre donc un fichier en passant par l'extérieur, comme si un internaute ouvrait ce même fichier.

Ouvre ton fichier en mettant :
Code: Tout sélectionner
include('../chemin/vers/le/fichier.php');


Et si le fichier n'est pas situé sur le même serveur que toi, tu n'a aucune solution que de passer la valeur dans l'url
Code: Tout sélectionner
include('http://www.example.com/?ip='.$_SERVER['REMOTE_ADDR']);

FloBaoti
WRInaute impliqué
WRInaute impliqué
 
Messages: 755
Inscription: 30 Avr 2006

Message le Dim Mai 27, 2007 9:46

kazhar a écrit:Et si le fichier n'est pas situé sur le même serveur que toi, tu n'a aucune solution que de passer la valeur dans l'url
Code: Tout sélectionner
include('http://www.example.com/?ip='.$_SERVER['REMOTE_ADDR']);
??? Ca marche ça ?? :roll: Ca n'a jamais marché chez moi (le passage de paramètres en URL dans un include).

Il vaut mieux utiliser des fonctions "plus faites pour ça" comme file_get_contents ou file ou fopen ...


dmathieu
Modérateur
Modérateur
 
Messages: 7245
Inscription: 9 Jan 2004

Message le Dim Mai 27, 2007 9:51

Effectivement, les fonctions d'ouverture/fermeture sont à préférer. Désolé d'avoir oublié de le préciser.

Et oui, l'include sur une url fonctionne en fonction de la configuration de php. Mais beaucoup d'hébergeurs le désactivent.

totof78
WRInaute discret
WRInaute discret
 
Messages: 62
Inscription: 6 Nov 2005

Message le Lun Mai 28, 2007 21:07

Merci de votre aide à tous.
Je vais recopier certains script en local, ce sera plus simple.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités