0

我在 PHP 中创建了一个在线调查,它工作正常,但有一个例外。

我希望我的选民只能投一票,我决定通过他们的 IP 地址来跟踪他们。不幸的是,我提出的代码似乎根本不起作用:

<?php

session_start();
require('execute.php');

if($_SERVER['REQUEST_METHOD'] == 'POST')
{

$track = ($_POST['track']);
$address = ($_SERVER['REMOTE_ADDR']);

if(empty($_POST['track']))
{
    echo 'Please select one of the tracks';
}
else
{
    $t = mysqli_real_escape_string($dbc, trim ($track));
}

if(empty($_SERVER['REMOTE_ADDR']))
{
echo '';
}
else
{
$i = mysqli_real_escape_string($dbc, trim ($address));
}


if(!empty($_POST['track']))
{
$q = "SELECT track_id FROM track WHERE address = '$i'";
$r = mysqli_query($dbc, $q);
if(mysqli_num_rows($r) != 0)
{
    echo 'You have already voted';
}
else
{
$q = "INSERT INTO track (track, ip_address) VALUES ('$t', '$i')"; 
$r = mysqli_query($dbc, $q);
echo 'Thank you for voting';
mysqli_close($dbc);
}
}

}
?>

我遇到问题的地方是

$q = "SELECT track_id FROM track WHERE address = '$i'";

IP 记录保存在数据库中,但条件未能正确执行,因此用户仍然可以多次投票。

欢迎任何建议。

问候

亚采克

4

0 回答 0