PHP geliştiriciler kimi zaman bazı scriptlerde, projelerde kullanıcı verisi toplaması gerekiyor. Bazen müşteri talebiylede projeye bu özellikleri eklemek gerekebiliyor.
KVKK, Çerez ve gizlilik politikası gibi detayları sitenize eklediğiniz sürece bu verileri toplamak hiç bir şekilde suç değildir.
Google gibi firmalar kime platonik olduğunuzu bile tahmin edebilirken bu tarz basit verilerin hiç bir sorun oluşturmayacağını bilmeniz yeterli

Bilmeyenler yada yeni başlayanlar için faydalı bir konu olacağını düşünüyorum.
IP Adresi Öğrenme
function getUserIP()
{
if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
$_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
$_SERVER['HTTP_CLIENT_IP'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
}
$client = @$_SERVER['HTTP_CLIENT_IP'];
$forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
$remote = $_SERVER['REMOTE_ADDR'];
if(filter_var($client, FILTER_VALIDATE_IP))
{
$ip = $client;
}
elseif(filter_var($forward, FILTER_VALIDATE_IP))
{
$ip = $forward;
}
else
{
$ip = $remote;
}
return $ip;
}
$ipadresi = getUserIP();Tarayıcı Bilgisi Çekmefunction getBrowser() {
$user_agent = $_SERVER['HTTP_USER_AGENT'];
$browser = "N/A";
$browsers = array(
'/msie/i' => 'Internet explorer',
'/firefox/i' => 'Firefox',
'/safari/i' => 'Safari',
'/chrome/i' => 'Chrome',
'/edge/i' => 'Edge',
'/opera/i' => 'Opera',
'/mobile/i' => 'Mobile browser'
);
foreach ($browsers as $regex => $value) {
if (preg_match($regex, $user_agent)) { $browser = $value; }
}
return $browser;
}
$tarayici = getBrowser();Useragent Bilgisi Çekme$detayli_tarayici = $_SERVER['HTTP_USER_AGENT'];İşletim Sistemi Bilgisi Çekme
function getOS() {
$user_agent = $_SERVER['HTTP_USER_AGENT'];
$os_platform = "Bilinmeyen İşletim Sistemi";
$os_array = array(
'/windows nt 10/i' => 'Windows 10',
'/windows nt 6.3/i' => 'Windows 8.1',
'/windows nt 6.2/i' => 'Windows 8',
'/windows nt 6.1/i' => 'Windows 7',
'/windows nt 6.0/i' => 'Windows Vista',
'/windows nt 5.2/i' => 'Windows Server 2003/XP x64',
'/windows nt 5.1/i' => 'Windows XP',
'/windows xp/i' => 'Windows XP',
'/windows nt 5.0/i' => 'Windows 2000',
'/windows me/i' => 'Windows ME',
'/win98/i' => 'Windows 98',
'/win95/i' => 'Windows 95',
'/win16/i' => 'Windows 3.11',
'/macintosh|mac os x/i' => 'Mac OS X',
'/mac_powerpc/i' => 'Mac OS 9',
'/linux/i' => 'Linux',
'/ubuntu/i' => 'Ubuntu',
'/iphone/i' => 'iPhone',
'/ipod/i' => 'iPod',
'/ipad/i' => 'iPad',
'/android/i' => 'Android',
'/blackberry/i' => 'BlackBerry',
'/webos/i' => 'Mobile'
);
foreach ( $os_array as $regex => $value ) {
if ( preg_match($regex, $user_agent ) ) {
$os_platform = $value;
}
}
return $os_platform;
}
$kullanici_os = getOS();ISS Çekme$kullanici_net = gethostbyaddr($_SERVER['REMOTE_ADDR']);IP ile ISS Çekme
$kullanici_real_net = gethostbyaddr($ipadresi);API ile GEO2IP Bilgisi Çekme | Tam Konum Bilgisi (%90)
$urlxx = "http://api.ipstack.com/";
$ipxx = $ipadresi;
$apikey = 'API_KEYINIZ';
$parameter = "?access_key=$apikey&format=1";
$sorguxx = "$urlxx$ipxx$parameter";
$json = file_get_contents("$sorguxx");
$obj = json_decode($json);
$bolge = $obj->city;
$lat = $obj->latitude;
$longi = $obj->longitude;
$ulke = $obj->country_name;
//ulke değişkeni ülke bilgisini, longi longitude bilgisini, lat latitude bilgisini, bolge şehir bilgisini çekmektedir.
//Bu api ile ülkeye göre bayrak svg dosyası, ilçe bilgisi, başkent bilgisi gibi diğer bilgileride alabilirisiniz.
//API KEY İÇİN ipstack.com sitesinde ÜCRETSİZ üyelik alabilirsiniz.Forumda PHP'nin bu işlerin duayenleri var
Bu bilgiler dışında başka hangi kullanıcı verileri PHP ile toplanabilir konu altında paylaşabilirsiniz. Herkese faydalı bir içerik oluşur. (bkz. r10 footer: “İnsanların en hayırlısı, insanlara faydalı olandır”. H.Ş. )