PDA

View Full Version : سوال: بازدید بر اساس ip



soroush.r70
پنج شنبه 11 دی 1393, 18:12 عصر
دوستان چطور میتونم بازدید بر اساس ip رو بدست بیارم ممنون میشم یه نمونه معرفی کنید

kabootar_y
پنج شنبه 11 دی 1393, 20:40 عصر
یه تابع واسه این کار
امیدوارم به دردت بخوره




<?php
function get_client_ip() {
$ipaddress = '';
if (getenv('HTTP_CLIENT_IP'))
$ipaddress = getenv('HTTP_CLIENT_IP');
else if(getenv('HTTP_X_FORWARDED_FOR'))
$ipaddress = getenv('HTTP_X_FORWARDED_FOR');
else if(getenv('HTTP_X_FORWARDED'))
$ipaddress = getenv('HTTP_X_FORWARDED');
else if(getenv('HTTP_FORWARDED_FOR'))
$ipaddress = getenv('HTTP_FORWARDED_FOR');
else if(getenv('HTTP_FORWARDED'))
$ipaddress = getenv('HTTP_FORWARDED');
else if(getenv('REMOTE_ADDR'))
$ipaddress = getenv('REMOTE_ADDR');
else
$ipaddress = 'UNKNOWN';
return $ipaddress;
}
?>

soroush.r70
پنج شنبه 11 دی 1393, 23:22 عصر
مرسی حالا چطور میتونم بازدید واقعی سایتو نشون بدم طبق این تابع شما
یا دوستان راه دیگه ای وجود داره لطف کنند بگن

ostadsho
جمعه 12 دی 1393, 00:11 صبح
function getRealIpAddr()
{
if (!empty($_SERVER['HTTP_CLIENT_IP']))
//check ip from share internet
$ip=$_SERVER['HTTP_CLIENT_IP'];
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
//to check ip is pass from proxy
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
else
$ip=$_SERVER['REMOTE_ADDR'];

return $ip;
}

$ip=getRealIpAddr();



$db=new PDO('mysql:host=localhost;dbname=yourdatabase','us er','password',array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));


$tarikh='tarikhe emrooz'

$sql="select * from tblbazdid where tarikh='".$tarikh."' and ip='".$ip."'";


$stmt=$db->prepare($sql);
$stmt->execute();
$count=$stmt->rowCount();
$result=$stmt->fetch(PDO::FETCH_ASSOC);
$id=$result['id'];


if($count==0){

$sql="insert into tblbazdid (tarikh,ip,bazdid) values ('".$tarikh."','".$ip."','1')";

}
else{

$sql="update tblbazdid set bazdid=bazdid+1 where id=".$id."";


}

$stmt=$db->prepare($sql);
$stmt->execute();







فقط یوزنیم و پسورد و نام دیتابیستون رو به جای userو password و yourdatabase بنویسید،توضیح اینکه اول چک می کنیم ببینیم که آیا همچین آی پی توی جدول هست یا نه؟اگر آی پی توی جدول بود به فیلد bazdid یه واحد اضافه میشه وگرنه که توی جدول insert میشه.ip رو هم با اون تابع بالایی می گیریم.

تاریخ رو هم میتونید با مثلا jdf بگیرید.

اما شما اگر قصد دارید سیستم آماریتون کاملا واقعی و اصولی باشه بایستی تاریخ رو هم مد نظر قرار بدید.اگر مشکلی بود بفرمایید.توی جدولتون هم فیلد های لازم رو بسازید.(tarikh,ip,bazdid)