如何通过用户ip

时间:2017-11-22 21:10:37

标签: php mysql variables cookies

我想给用户一个他自己独特的代码,这样每次他用ip(dekstop,mobile等)进入我的网站时,他都会收到相同的代码。

我尝试使用Cookie但是它非常令人沮丧和不专业,每次我重新启动计算机/使用其他浏览器/使用其他设备/使用隐身模式时,它都会生成一个新代码。< / p>

我对mysqli有点新意,我已经尝试更换&#34; $ cookie&#34;使用mysqli查询的行,但页面根本没有加载..

这是我的代码,非常感谢! P.S此代码有效。当我谈到没有加载的页面时,我正在谈论我试过并且没有工作的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问题的解决方案

1 个答案:

答案 0 :(得分:0)

如果仅基于IP地址,为什么还要存储代码呢?只需动起来

$ip = $_SERVER['REMOTE_ADDR'];
$today = date('Y-m-d');
$ip .= $today;
$code = sha1($ip);