我想通过点击链接统计这一链接的点击数,点击某一链接,每个用户只能点击一次,24小时内无论点击多少次将不再统计~~而且链接有很多,用户点击进一链接进行统计,再点击一次不进行统计,但是点击另一链接又能统计另一链接的点击数,这样的效果要怎么实现,请教高手解答~~
每一链接在数据库里都有一个字段来存储它的点击量,现在的问题是点击不同的链接要能进行识别该用户是否已点击过该链接
每一链接在数据库里都有一个字段来存储它的点击量,现在的问题是点击不同的链接要能进行识别该用户是否已点击过该链接
解决方案 »
- 如何动态的在aspx页面中加入新的HTML代码?
- listview datapager分页禁止刷新页面
- COMBOX 处理信息
- Global.asax文件
- 路径问题
- 如何实现www.sd.gov.cn首页上标题图片的自动生成?大家研究一下
- 高手解疑阿!!!用户控件调用CSS的奇怪问题!
- UTF8转GB2312部分出现乱码!注意,是部分!
- 关于ExecuteReader的问题,请各位大侠帮帮忙
- ACT测试的一个奇怪问题
- WebPart EditorZone的问题求解,大大们帮忙
- asp.net 配置文件里 <providerOption name="CompilerVersion" value="v3.5"/> 不允许有子节点
统计IP地址不准确,用户可能重启机器了IP就变了
你可以直接获取用户机器CPU编号,每个机器的CPU编号不可能一样吧
看看这个
http://blog.csdn.net/pgameli/archive/2009/03/16/3994692.aspx
public string GetCpuID()
{
try
{
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();
string strCpuID = null;
foreach (ManagementObject mo in moc)
{
strCpuID = mo.Properties["ProcessorId"].Value.ToString();
break;
}
return strCpuID;
}
catch
{
return "";
}
}
//获取网卡mac地址
public string GetMac()
{
try
{
ManagementObjectSearcher query = new ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration");
ManagementObjectCollection queryCollection = query.Get();
foreach (ManagementObject mo in queryCollection)
{
if (mo["IPEnabled"].ToString() == "True")
return mo["MacAddress"].ToString();
}
return "";
}
catch
{
return "";
}
}
这个东西本身欺骗的价值就不大,没人会故意修改cookies来猛点击
不用那么费事的,
一个用户点击了a链接,这时数据库a的统计字段就+1,然后用户再点击a,a的统计字段就不+1了,但是当用户去点击b的时候,b的统计字段+1我现在实现了的是点击链接之后链接的统计字段就+1,下次无论点击多少次都不加,但是没有实现的是点击别的链接也无法统计了
这个做的方法是点击进去的时候,创建一个session,并且给session赋一个值,下次点击进去就判断session是否为null,但是这个并不能实现我要的至于楼上的朋友们说的用CPU编号,我不是很理解诸位的思路,能给我讲一下那个思路吗,我怎么都想不明白怎么去写代码让链接去识别当前链接被当前用户点击了还是没有点击
既然这个已经实现了,那么给不同的链接添加不同的ID,一个ID对应一个链接,点相应链接时相应字段+1不就可以了么
我觉得是用cookie能实现
cookie的存活期是一天。在点击了链接时,产生一个记录该链接的id的cookie。这样就可以了啊~~
那要是我把浏览器的cookie禁用掉,那不是一样没用了?
如果用户和游客都可以点击,要判断简单的就用IP来判断了。这样点击的时候判断IP是不是当天已经点击。否则+1就可以了
)判断。
但是我的这个链接的url是通过数据库读出来绑定到控件上的,这个链接的标识要怎么加上去呢
比方说你链接的url是www.sina.com
你可以做一个页面来记录保存的操作:saveurl.aspx那么你绑定到控件上的链接应该是saveurl.aspx?A=www.sina.com&B=标识
这样在saveurl.aspx做完判断是否+1的操作后,跳转到www.sina.com为了数据的正确和安全,你可以加密www.sina.com和标识
然后设计一个表:包括4个字段(ID,a,b,c)
其中:ID 就是一个标识(例如:IP等);
a,b,c(默认为整形0)表示3个链接;
(0表示没有点击,1表示点击过);
这样你当用户点击某个链接的时候 你查出来判断下应该就可以了
以记录登陆情况,
这样应该就可以解决LZ的问题了,
LZ的问题好像与IP等都无关啊.
赞同用CPU序列号和MAC地址做判断
不过得注意:
譬如笔记本,是有两块网卡的