Newsgroup: it.comp.www.php
Titolo: [URGENTE] IP con include che mi fa dannare

Ciao a tutti, questo è il mio problema:
nel file config.php effettuo un controllo sull'indirizzo IP di chi si
collega tramite il comando
$ip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
nel file function.php carico le varie parti della pagina come ad esempio:
include (menusx.php);
include (menudx.php);
.....
la pagina principale è index.php in cui all'inizio c'è
include (function.php);
Se in index.php e in menudx.php inserisco un "echo $ip;" mi vengono forniti
due valori diversi!
in index.php mi viene dato l'indirizzo del mio pc mentre in menudx.php
quello del server!
Ho notato smanettando che è un problema dato dagli include, ovvero il file
non riconosce l'indirizzo ip di chi si collega ma del server che ne richiede
appunto l'inclusione nella pagina.
Ma come faccio ad avere sempre e solo l'indirizzo IP della macchina che si
colelga al sito?
Le ho provate tutte, anche con $_SERVER e altre ma niente...
Help!
Ken

E' sicuro che nel codice degli altri file non venga cambiato il valore della 
variabile $ip ?
Ha provato con un esempio basilare con file a parte senza ulteriore codice 
per vedere se avviene lo stesso?
Saluti.
-- 
Leonardo Armando Iarrusso - J2Be
www: 
http://www.J2be.com
 - e-mail: info[at]J2Be.com 

 forniti due valori diversi!
Prova a fare l'echo di $_SERVER['REMOTE_ADDR'].
-- 
I am what I am, I do what I can
Do. Or do not. There is not try.

 Prova a fare l'echo di $_SERVER['REMOTE_ADDR'].
Si, ho provato anche quello ma mi modifica sempre la variabile $ip
Sostanzialmente se effettuo l'include della pagina dove viene caricato l'ip 
direttamente nella pagina che richiamo
es: "index php (include config.php ($ip = ...))"
tutta funziona correttamente.
Se invece faccio un include successivo è come se fosse il server (come 
effettivamente è) a richiamare il file e di conseguenza mi modifica l'ip
es: "index.php (include function.php (include config.php ($ip = ...)))"
Bho!
Comunque grazie...
Ken 

 config.php ($ip = ...)))"
Stai facendo un include tramite HTTP?
Posta un codice di esempio funzionante che riproduca il problema.


"Setec Astronomy" <setec@_NO_NOSPAM_freemail.it> ha scritto nel messaggio 
news:DwR%f.83640$A83.1...@twister1.libero.it...
[CUT]
Se si fa l'include di a.php che effettua a sua volta l'include di b.php
viene fuori l'indirizzo ip del server perchè è fisicamente il server che
richiama la pagina.
Ho risolto riducendo il tutto ad un singolo include.
Ciao e grazie comunque,
Ken

 Ho risolto riducendo il tutto ad un singolo include.
ho appena fatto un paio di  prove:
file testa.php:
<?
include("testb.php");
echo "finito";
?>
file testb.php:
<?
phpinfo();
?>
viene visualizzato in REMOTE_ADDR il mio numero ip , non quello del server.
poi ho fatto questa prova:
file testa.php:
<?
include("testb.php");
echo "finito";
?>
file testb.php:
<?
include("testc.php");
?>
file testc.php:
<?
phpinfo();
?>
anche cosi' ho il medesimo risultato della precedente.
che sia il server configurato in maniera diversa?

 server che richiama la pagina.
<?php // test.php
echo($_SERVER['REMOTE_ADDR']);
include(dirname(__FILE__) . '/a.php');
?>
<?php // a.php
echo($_SERVER['REMOTE_ADDR']);
include(dirname(__FILE__) . '/b.php');
?>
<?php // b.php
echo($_SERVER['REMOTE_ADDR']);
?>
Il risultato e' sempre lo stesso REMOTE_ADDR del client.
SE fai un include tramite HTTP allora e' ovvio che il REMOTE_ADDR sia
quello del server, ma questo NON puo' accadere se fai un include
tramite filesystem.
