Jump to content
php.lv forumi

IP adreshu saglabaashana


Recommended Posts

Posted

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

Posted

Saglabā to IP adresi pie paša posta txt failā, tāpat kā epastu vai citus lietotāja datus.

Un tad, kad izvadi to postu, tad izvadi arī to lietotāja IP kopā ar citiem datiem.

Posted

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'].

×
×
  • Create New...