因此,我将自己的网站上传到我刚刚购买的Web服务器上,一切在我的计算机上都能正常运行。 但是现在我在数据库中插入数据时遇到了问题,我将问题归结为用户创建了要插入到每一行中的行的IP地址。

我有一个PHP函数返回ip2long值,它看起来像这样:

function ip2()
    {
        return ip2long($_SERVER['REMOTE_ADDR']);
    }

然后将其插入到我的数据库中,SQL代码如下所示:

$sql = "INSERT INTO `Users` 
                    (
                        `Username`,
                        `Password`,
                        `Email`,
                        `ip_created`
                    )
                    VALUES 
                    (
                        '".$db->sql_escape(htmlspecialchars($this->username, ENT_QUOTES))."',
                        '".$db->sql_escape($this->secure_pass)."',
                        '".$db->sql_escape($this->clean_email)."',
                        '".ip2()."'
                    )";

$db->sql_query($sql))

所述ip_created字段是一个int长度为10的

所有数据库交互都在php类中处理,也许这可能是一个问题。

我真的不知道问题出在哪里,这真的开始困扰我。 一切都在我的本地主机版本上完美运行。

#1楼 票数:3

id2long手册页注释包含:

请注意,当您在运行64位系统时,ip2long将生成不适合MySQL INT的64位整数,可以使用BIGINT或INT UNSIGNED,因为在64位系统上ip2long绝不会返回负整数。 另请参见https://bugs.php.net/bug.php?id=54338

那可能是原因吗?

  ask by Joris Blanc translate from so

未解决问题?本站智能推荐:

1回复

PHP检查数组的IP,在SQL数据库?[关闭]

所以我在这里有此代码(来自phpacademy),用于手动添加尝试访问我的论坛的垃圾邮件机器人的ips。 然后,我将获得此代码,该代码将防止ips访问我的页面,因为其在标头中为“必需”。 我想要的是让该数组查找我的SQL表“ first_name”(我太懒了,无法将名称更改为ip)。 我
1回复

如何在数据库中存储用户计算机名?

我试图将访问者计算机名称存储在数据库中。 我已经编写了以下代码,但它仅将ip地址保存在数据库中而不是计算机名称。 我已经使用gethostbyadd来获取计算机名称。 请告诉我其他将访客计算机名称存储在数据库中的方法。
3回复

PHP:如何增加表行中的值以对视图进行计数并将计数限制为一个IP地址

每当查看某些地图时,我都会使用以下代码在“ mviews”中插入一个数字。 问题1.在以下代码中的哪里添加“ ON DUPLICATE KEY UPDATE mviews = mviews + 1”,以便在重复时可以递增? 问题2.如何将计数限制为一个IP? 问题3.如何限制此IP仅
3回复

存储单个IP,IP范围,IP块和IP类的最佳方式,并快速搜索它们

在MySQL数据库中存储多种IP类型的最佳方法是什么: - 单一IP(123.123.123.123) - IP范围(123.123.123.1 - 123.123.123.121) - IP块(123.123.123.1/20) - IP类(123.123.123。*或1
1回复

在将IP地址存储在MySQL数据库表中时遇到问题

通过这段代码使用户获得ip地址。 我在数据库表中为IP设置了unsigned int字段 在本地服务器上测试网站。 问题是,ip2long转换后得到“ 63177408abbad957ed13ae1a2dd3e0b3ed47bd0b48ffcb362”。 试着 太。 仍然没有成功
2回复

当我尝试插入ip2long整数时,将错误的整数插入表中

我的代码: 但是当我检查MySQL表时, ip列下的新插入值为2147483647,即“ 127.255.255.255”。 当我运行echo($ipL); 但是,我得到2953470927。 HE-Double曲棍球棒在这里发生了什么?
1回复

将ip2long数组变成单个对象[关闭]

我正在使用ip2long函数,该函数可以正常工作并返回阵列中IP地址的一长串。 我想做的是将每个IP地址放入一个mysql数据库中,我看了几个示例,但是找不到与ip2long函数相关的任何示例,如果我说实话,它们只是让我感到困惑。 下面是我的代码, 任何建议,将不胜感激。 谢谢
1回复

插入IP到MySQL数据库的每次更改

我有一个用于记录用户IP的评级脚本,因此他们不能对文件进行多次评级。 但是,每次我对文件进行评估以进行测试时,我的$ ip都会使用ip2long()函数进行更改。 这是怎么回事? 这是我的代码: 然后检查用户是否对脚本进行了评分: 这是我所做的: 当$ ip不会放入varch