【发布时间】:2018-05-06 17:40:36
【问题描述】:
我想为用户提供他自己的唯一代码,以便他每次使用他的 ip(桌面站、移动设备等)进入我的网站时都会收到相同的代码。
我尝试过使用 cookie,但它非常令人沮丧和不专业,以至于每次我重新启动计算机/使用不同的浏览器/使用不同的设备/使用隐身模式时,它都会为我生成一个新代码。
我是 mysqli 的新手,我已经尝试用 mysqli 查询替换“$cookie”行,但是页面根本没有加载..
这是我的代码,非常感谢! PS此代码有效。当我谈到无法加载的页面时,我是在谈论我尝试过但不起作用的 mysqli 选项。
<?php
header("Refresh: 360;");
?>
<?
include "config.php";
if(isset($_COOKIE['my_code'])){
$code = $_COOKIE['my_code'];
}else{
$code = rand(1,9).date('Y').date('m').date('d').date('h').date('i').date('s');
$code = rand_uniqid($code);
setcookie("my_code",$code, 9999999999);
$insert = "insert into cookie_code(user_ip,user_code) values('".getRealIpAddr()."','".$code."');";
@mysql_query($insert);
我想用任何 mysql 选项更改 $cookie 选项,该选项将检查用户的 ip 是否已经在数据库中,如果是,那么将给出来自同一行(ip)的代码给用户。 如果没有与用户的ip匹配的ip,他将得到一个新的生成代码。
编辑,常见问题解答:
- 没有登录详细信息,我没有制作任何登录面板 使用用户名和密码注册。我希望访问者进入我的网站 并获得一个将跟随他们的唯一代码,除非他们更改 ip。
我知道 IP 地址不可信,因为它是动态的,我 考虑到有来自同一家庭的人
将具有相同的 IP。我不希望人们注册,因为我会失去很多潜力 用户由于他们的懒惰(人们不想浪费时间在
注册)。这将是一个小项目,将产生 每天一个新代码(我想每 24 小时清理一次数据库),
这就是为什么我不在乎使用 ip.. 我只需要它保持 24
小时。- 我知道我正在使用mysql,我将尽快将其更改为mysqli 我会找到解决这个 IP 问题的方法
.
【问题讨论】:
-
你为什么不用他的用户名?
-
我觉得非常有趣的是,您担心跨浏览器拆分 cookie 的专业性,但您却在个人资料照片中关闭了摄像头。
-
永远不要相信一个 ip,除非你在一个每个设备都有自己的静态 ip 的 Intranet 上。通过 ISP 发布的 IP 是动态分配的,并且大多数会在给定的时间范围后发生变化,通常会被回收给其他用户。
-
这些用户登录了吗?如果是这样,您可以将代码添加到用户表中。题外话你不应该使用 mysql_* 函数,它们已从以后的 PHP 版本中删除,应该避免使用,以上是非常正确的,一个 IP !=一个用户
-
来自同一家庭的用户呢?即使它们在不同的计算机上,它们也可能具有相同的 IP 地址。
标签: php mysql variables cookies