Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过评论表单获取用户IP_Php_Mysql - Fatal编程技术网

Php 通过评论表单获取用户IP

Php 通过评论表单获取用户IP,php,mysql,Php,Mysql,我在我的评论表单中插入了一个隐藏的输入: $ip = $_SERVER['REMOTE_ADDR']; <input type="hidden" name="c-ip" value="<?php echo $ip; ?>"> $ip=$\u服务器['REMOTE\u ADDR']; 你是怎么回读的,你是不是在尝试: echo $_POST['c-ip']; 并确保基于表单的方法属性使用了正确的超级全局变量 您可能希望查看阵列以检查IP是否来自隐藏字段: var_dum

我在我的评论表单中插入了一个隐藏的输入:

$ip = $_SERVER['REMOTE_ADDR'];
<input type="hidden" name="c-ip" value="<?php echo $ip; ?>">
$ip=$\u服务器['REMOTE\u ADDR'];

你是怎么回读的,你是不是在尝试:

echo $_POST['c-ip'];
并确保基于表单的
方法
属性使用了正确的超级全局变量

您可能希望查看阵列以检查IP是否来自隐藏字段:

var_dump ($_POST);

更新

你也可以试试这个:

$ip = $_SERVER['REMOTE_ADDR'];
$sql = "INSERT INTO guestbook (id, date, name, email, comment, ip, status) VALUES (' ', NOW(), '$cname', '$cemail', '$ctext' , '$ip', ' ') ";

您可以看到,不需要将IP保存在隐藏字段中,以后再存储,您可以随时从PHP的超级全局数组中获取它。

整个方法都是错误的。
我不知道您为什么在表单字段中输入IP地址。
我不明白为什么你开始谈论将IP地址插入HTML表单,然后继续抱怨它没有插入SQL数据库。这些是不同的任务。
你得先拿定主意


为什么不在执行查询之前添加IP地址

在形式上,您有“c-ip”,但在将其插入数据库时,它是“cip”。你是在两者之间操纵它,还是这是一个打字错误

如果这是正确的,那么留言簿表中的“ip”字段是什么类型的


但正如其他人所说,最好不要将其放在表单中。

请编辑您的问题并添加MySQL代码;您发布的代码看起来不错。您需要展示如何将字段导入mySQL。但是像这样存储IP地址是非常愚蠢的:攻击者可以自由更改它。您应该在进行SQL查询的脚本中获取
REMOTE\u ADDR
。为什么必须从输入字段获取它?它比远程地址更容易破解。发布时只需存储远程地址。
error\u reporting(E\u ALL)-将此命令添加到运行insert查询的代码顶部,并查看其内容say@ZZ我想在管理员面板中看到评论员的IP;有了echo$ip,我就有了正确的ip值[“c-ip”]=>string(13)“87.239.19.109”@jasmine:您是如何在sql查询中构造变量
$cip
?您给这个变量分配了什么?假设$cname和$cemail直接来自表单,这里是否存在SQL注入问题,或者PHP是否会以某种方式对它们进行清理?@jasmine:您是否会在问题中发布
removeXSS
函数,以查看它到底在做什么。Thanks@Martin史密斯;它只针对发件人的IP,但我必须找到代理的解决方案。
var_dump ($_REQUEST); // not a good idea though
$ip = $_SERVER['REMOTE_ADDR'];
$sql = "INSERT INTO guestbook (id, date, name, email, comment, ip, status) VALUES (' ', NOW(), '$cname', '$cemail', '$ctext' , '$ip', ' ') ";