0

我有一个简单的投票系统,可以在您投票后生成一个随机代码。我有一个小回调系统来检查用户是否在网站上投票。

看起来像这样:

http://gamingtoplist.net/?hasvoted=187&ip=82.81.33.168

187 = 顶部列表中的服务器 ID IP = 刚刚投票的 ip。

如果当您转到此页面时显示为 true,则表示 IP 已投票支持该服务器 ID。如果它显示为 false,则表示该 IP 没有为服务器 ID 投票。

我刚刚投票,正如你所见,它说的是真的。

现在检查是否投票我这样做:

if (isset($_POST['submit'])) {
    $check_GTL = file_get_contents("http://gamingtoplist.net/?hasvoted=187&ip=".$_SERVER['REMOTE_ADDR']);
        if ($check_GTL != "true") {
                $errors[] = "Sorry, but it seems like you haven't voted on all links, please contact Jony.";
        }

该行检查您是否已投票:

$check_GTL = file_get_contents("http://gamingtoplist.net/?hasvoted=187&ip=".$_SERVER['REMOTE_ADDR']);

但出于某种随机原因,脚本告诉我 check_GTL 不是“真”。然而这是真的....

它有什么问题?

谢谢!

所有的:

if (isset($_POST['submit'])) {
    $check_GTL = file_get_contents("http://gamingtoplist.net/?hasvoted=187&ip=".$_SERVER['REMOTE_ADDR']);
        if ($check_GTL != "true") {
                $errors[] = "Sorry, but it seems like you haven't voted on all links, please contact Jony.";
        }


if($check_GTL == "true") { // if($votes > 0 && $check_GTL == "true") { disab led $votes cause runelocus didnt work lately for some reason.

        $insert = "INSERT INTO votes(auth, ip, received, time) VALUES('".$auth."', '".$_SERVER['REMOTE_ADDR']."', '0', '".time()."')";
        $insert = $connect->query($insert) or die(mysqli_error($connect));
        echo '<center><div class="movingerror" style="color: yellow">Thank you for voting! Your auth is <b>'.$auth.'</b>. Please type ::auth '.$auth.' to claim your reward</div></center>';


        $file = fopen("votes.txt", 'w');    
        fwrite($file, --$votes);
        fclose($file);
    }

} 
4

1 回答 1

1

编辑:误解了这个问题,打这个。

file_get_contents() 返回一个布尔值而不是字符串。两者之间存在巨大差异:

if ($check_GTL == "true")

和:

if ($check_GTL == true)

你想要后者。

于 2013-02-24T20:02:36.347 回答