Jump to content
php.lv forumi

IP adreshu saglabaashana


Nazis

Recommended Posts

ar PHP aizraavies esmu visnotalj nesen, laikam buus tik kaads meenesis pagaajis :).

Luuk mana probleema, man ir viesugraamata, kuraa ierakstot paraadaas lietotaaja IP adrese, izmantojot sekojoshu funkciju:

<?php

function GetIP(){

if (@getenv("HTTP_CLIENT_IP") && @strcasecmp(@getenv("HTTP_CLIENT_IP"), "unknown"))

$ipxx = @getenv("HTTP_CLIENT_IP");

else if (@getenv("HTTP_X_FORWARDED_FOR") && @strcasecmp(@getenv("HTTP_X_FORWARDED_FOR"), "unknown"))

$ipxx = @getenv("HTTP_X_FORWARDED_FOR");

else if (@getenv("REMOTE_ADDR") && @strcasecmp(@getenv("REMOTE_ADDR"), "unknown"))

$ipxx = @getenv("REMOTE_ADDR");

else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && @strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))

$ipxx = $_SERVER['REMOTE_ADDR'];

else

$ipxx = "unknown";

return($ipxx);

}

$ip=GetIP($ipxx);

?>

 

tad es to ip adresi izvadu uz ekraana un nolasu pieshkjirot jaunam mainiigajam:

<?php

echo GetIP();

$ipadrese = GetIP();

?>

 

tagad es veelos, lai nolasiitaa IP adrese tiktu izvadiita administratora logaa pie tai atbilstoshaa komentaara, bet man nekaadiigi nesanaak, jo tiek izvadiita pie visiem komentaariem taa IP adrese, pie kuras pashlaik atrodos

izvadiishanai es izmantoju masiivu ar nolasiitajaam veertiibaam:

if (isloggedin()) //ja ielpgojies kaa admins

$replace=array( ($post['email']!="") ? "<a href='mailto:".emailencoder($post['email'])."'>".$post['name']."</a>" : $post['name'], bla bla bla);

 

iespeejams, ka kaut ko neesmu sapratis liidz galam, taapeec veeleejos uzzinaat, kaa juus riikojaties liidziigaas situaacijaas, manaa situaacijaa nav mysql, viss tiek glabaats kaa *.txt, liidziigus piemeerus esmu maniijis ar mysql iespeeju, bet tie neder manaa situaacijaa.

 

ar cienju, Nazis

Link to comment
Share on other sites

1) Loģiski, ka tiek izvadīta pašreizējā IP, nevis komentētāja IP, jo tu no vides mainīgijiem savāc tekošo IP un mēģini šamo attēlot. Lai dabūtu komentētāja IP, tev tas IP ir jāglabā tur pat, kur glabā pašus viesugrāmatas ierakstus.

 

2) Iesaku tev tos getenv() aizstāt ar $_SERVER, būs ātrāk. Jo getenv() ir funkcija, savukārt $_SERVER - gatavs masīvs. Tb, raksti nevis @getenv("HTTP_CLIENT_IP"), bet $_SERVER['HTTP_CLIENT_IP'].

Link to comment
Share on other sites

×
×
  • Create New...