şimdiye kadar ip için sadece $_SERVER['REMOTE_ADDR']; ifadesini kullandım. herhangi bir sıkıntı da yaşatmadı bana. içinde (,) olması geçersiz kılar bu ip'yi, net bilgim olmamasına rağmen ifadenin herzaman ve geçerli ip döndürmesi gerekiyor. ip'siz bir istem olamayacağını sanıyorum. tabi buna sunucu bölümündeki arkadaşlar daha net cevap verebilirler.
2009/1/29 Nuri Akman <[email protected]>: > Arkadaşlar, > > Aşağıdaki PHP fonksiyonuyla kullanıcı sisteme girdiğinde IP'sini alıyorum ve > bir session değişkeninde saklıyorum. Kullanıcı ikinci bir diğer sayfaya > tıkladığında bu fonksiyonu çağırarak tekrar IP'sini alıyorum ve Session > değişkeni ile karşılaştırarak IP'nin değişip değişmediğini kontrol ediyorum. > > Kullanıcılarımın birinde şöyle bir durum oluştu: > getip() fonksiyonu değer doğru bir şekilde IP bilgisini alıyor ve Session > değişkeninde saklıyor (Örnek: 123.123.123) > İkinci bir sayfaya girdiğimde Session değişkeni aynı değeri korurken > (123.123.123.123) getip() fonksiyonum bana şu sonucu döndürüyor: > 123.123.123.123, localhost > > Bu durumda karşılaştırma yaptığım zaman "123.123.123.123" == > "123.123.123.123, localhost" aynı olmadığı için hataya düşüyor. > > Sorunu tespit ettim ve localhost ifadesini çıkararak çözdüm. Ancak, getip() > fonksiyonunun ilk çalışmasında gelen sonuç ile ikindi bir sayfada > çalıştırdığımda gelen sonucun farklı olmasını anlayabilmiş değilim. > > SORULAR: > 1.) Sizler böyle bir sorun yaşadınız mı? > 2.) aşağıdaki getip() fonksiyonu yerine önerebileceğiniz bir başka şey > olabilir mi? > > Selamlar, > Nuri AKMAN > > > function getip() { > if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), > "unknown")) > $ip = getenv("HTTP_CLIENT_IP"); > > else if (getenv("HTTP_X_FORWARDED_FOR") && > strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")) > $ip = getenv("HTTP_X_FORWARDED_FOR"); > > else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), > "unknown")) > $ip = getenv("REMOTE_ADDR"); > > else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && > strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")) > $ip = $_SERVER['REMOTE_ADDR']; > > else > $ip = "unknown"; > > return($ip); > } //getip > > > _______________________________________________ > Linux-programlama mailing list > [email protected] > http://liste.linux.org.tr/mailman/listinfo/linux-programlama > > -- Elvin Şiriyev http://siriyev.net _______________________________________________ Linux-programlama mailing list [email protected] http://liste.linux.org.tr/mailman/listinfo/linux-programlama
