已解决:修正拼写错误后,我的工作方式无效。但我修好了。错误在$ ip2。由于HTTP_X_FORWARDED_FOR并不总是有输入,我的数据库将“”作为现有的ip调用,并且没有添加新的投票。我通过添加if($ ip2 =“”)语句然后添加投票来修复它。
编辑:我改变了错字,但它似乎只给了我“你已经投票”的页面,即使有代理来改变IP。
编辑2:所以我检查了一些内容:我投了一次,这项工作一切都被添加到我的数据库中,而不是我用我的代理投票给了另一个ip1,但它仍然告诉我我已投票了。所以我只能投票一次。
所以我目前有这个代码,但它什么也没有返回:
<?php
$con = mysqli_connect("localhost","root","PASSWORD","DATABASE");
$ip1 = $_SERVER['REMOTE_ADDR'];
$ip2 = $_SERVER['HTTP_X_FORWARDED_FOR'];
if (mysqli_connect_errno())
{
echo "Unable to connect: " . mysqli_connect_error();
}
$count1 = mysqli_num_rows(mysqli_query($con, "SELECT * FROM votes WHERE voteip1 = '$ip1'"));
$count2 = mysqli_num_rows(mysqli_query($con, "SELECT * FROM votes WHERE voteip2 = '$ip2'"));
if (($count1 > 0) || ($count2 > 0))
{
echo "You already voted, you can leave this page.";
mysqli_close($con);
}
else
{
$sql="INSERT INTO votes (vote, voteip1, voteip2)
VALUES
('$_POST[vote]','$ip1','$ip2')";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
echo "Thanks for voting, you can leave this page.";
mysqli_close($con);
}
?>
我尝试过很多不同的事情。任何人都可以告诉我我做错了什么。
对不起我的英语,这不是我的第一语言,我还在学习