私はラジオ局の曲要求フォームを作成しようとしていますが、スパム送信は望ましくありません。私は非常にシンプルなフォームなどを行ってきましたが、私はそれをそうしようとしています...訪問者が曲をリクエストすると、そのリクエストはデータベースに保存され、DJはそれを確認できます。同じ訪問者のリクエストを再び許可するには、DJがPlayedをクリックする必要があります。そうしないと、同じIPが再度リクエストすることはできません。訪問者のIPアドレスがMySQLに登録されていることを確認してください
問題は、IPが正常に機能していないかどうかを確認することです。ここで
コード、それ多分簡単に修正...事前に
<?php include "db.php"; ?>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<h3> Request a song</h3>
<?
$ip = mysql_real_escape_string($_SERVER['REMOTE_ADDR']);
$query = "SELECT * FROM requests WHERE ip='". $_SERVER['REMOTE_ADDR'] ."'";
$result = mysql_query($query);
if (mysql_num_rows($result) > 0) {
echo "<form action='thankyou.php' method='post'>
Your Name:<br>
<input type='text' name='name' required><br>
Artist:
<input type='text' name='artist' required><br>
Song:<br>
<input type='text' name='song' required><br>
Message:<br>
<input type='text' name='message' required><br>
<input type='submit' value='Submit'><br>
</form>";
}
else {
echo "Your song hasn't been played yet.";
}
?>
</body>
</html>
感謝。
確かにあなたの 'if'ステートメントは反対のケースをチェックする必要がありますか?テーブルにIPが見つかった場合(つまり、0行以上が見つかった場合)、メッセージを表示します。それ以外の行が見つからない場合は、フォームを表示しますか? – Tom
http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php – AbraCadaver
基本的にええ、それを行う方法はわかりませんが、訪問者のIPがそこにいる場合はリクエスト。 – MBell86