【问题标题】:Insert IP address into table from form从表格中将 IP 地址插入表中
【发布时间】:2014-03-20 16:21:58
【问题描述】:

当我的 PHP 表单被提交时,我试图获取最终用户的 IP 地址并将其与记录一起插入到数据库表中。

我的表单发布到另一个 php 页面。:

<form name="contact_form" method="post" action="http://x.com/promotions/boston_mailer.php">
<table border="0"> ...etc...

我设置我的 boston_mailer.php 来获取 IP 地址:

$ipaddress = $_SERVER['REMOTE_ADDR'];   
$sql = "INSERT INTO 
            ucm_signup 
            ( fname, lname, email, phone, iama, buyfrom, ipaddress )
        VALUES
            ( '$_POST[fname]', '$_POST[lname]', '$_POST[mail]', '$_POST[phone]',
              '$_POST[iama]', '$_POST[buyfrom]', '$_SERVER[$ipaddress]')";

我的数据库表 (phpMyAdmin) 有一个名为“ipaddress”的列,并设置为 VARCHAR,大小为 30。

当我提交表单时,IP 地址为零。 “”。我错过了什么?我需要在我的 form.php 页面中添加一些内容吗?谢谢

【问题讨论】:

  • 您可能还需要考虑将您的 IP 地址存储为十进制值 (geektools.com/geektools-cgi/ipconv.cgi)
  • 我猜这会产生很多Use of undefined constant fname 类型的通知?它看起来也容易受到 SQL 注入的影响——将变量插入到查询中并不是最好的主意,当它们没有被清理时更糟。顺便说一句 - $_SERVER['REMOTE_ADDR'] 对于唯一识别访问者(路由器、代理、负载平衡系统......)并不完全可靠
  • @CD001 我实际上不知道在哪里可以找到错误。我将研究将变量插入到查询中,你有什么其他的参考建议吗?
  • 使用 PHP 执行 SQL 的最佳选择是使用 PDO 和绑定参数或绑定值(如果您不使用存储过程的响应更新参数):@987654322 @ - 从不信任来自用户空间的输入数据:| mysqli 也支持绑定参数:uk.php.net/manual/en/mysqli-stmt.bind-param.php
  • 绑定值和绑定参数对 SQL 注入都是安全的——您可以在创建语句时选择使用哪个;这与仅仅构建一个 SQL 字符串并将其扔到数据库服务器不同,您构建一个 Statement 对象,将参数(或值)绑定到它然后执行它:完整的 PDO 手册在这里uk1.php.net/pdo。绑定参数和值之间的主要区别在于,参数是通过引用传递的变量,因此它们可以通过 SQL 服务器的响应进行更新......值只是值,它们进入并且不会返回。

标签: php sql forms


【解决方案1】:

在您的查询中发送 $ipaddress 而不是 $_SERVER[$ipaddress] ,因为 $_SERVER[$ipaddress] 未定义。

正确的方法...

$ipaddress = $_SERVER['REMOTE_ADDR'];   
$sql = "INSERT INTO 
            ucm_signup 
            ( fname, lname, email, phone, iama, buyfrom, ipaddress )
        VALUES
            ( '$_POST[fname]', '$_POST[lname]', '$_POST[mail]', '$_POST[phone]',
              '$_POST[iama]', '$_POST[buyfrom]', '$ipaddress')";

【讨论】:

  • 这是有道理的,+1 用于解释。 :)
猜你喜欢
  • 1970-01-01
  • 2013-01-06
  • 2012-04-14
  • 2016-04-21
  • 2011-03-31
  • 2020-03-26
  • 2017-12-15
  • 1970-01-01
  • 2020-12-07
相关资源
最近更新 更多