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 に答える