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

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

totof78
WRInaute discret
WRInaute discret
 
Messages: 62
Inscription: Dim Nov 06, 2005 15:48

[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: 6929
Inscription: Ven Jan 09, 2004 16:21

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 passionné
WRInaute passionné
 
Messages: 684
Inscription: Dim Avr 30, 2006 18:42

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: 6929
Inscription: Ven Jan 09, 2004 16:21

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: Dim Nov 06, 2005 15:48

Message le Lun Mai 28, 2007 21:07

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


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité