检查访客IP是否在MySQL中

时间:2017-01-17 15:57:57

标签: php html mysql

我正在尝试为广播电台制作歌曲申请表,但他们不想发送垃圾邮件。我已经完成了表格等非常简单,但我试图这样做......如果访问者请求一首歌,该请求将存储在数据库中,以便DJ可以检查它。我想要它,所以DJ必须单击Played再次允许相同的访问者请求,否则它将不允许再次请求相同的IP。

问题是,检查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>

提前致谢。

1 个答案:

答案 0 :(得分:0)

目前,您已经拥有;

// $result = Do query
if(mysql_num_rows($result) > 0) {
    // Show the form
} else {
    // Show 'Already Requested' message
}

但是,这会向表格中找到IP地址的人显示 形式,而这似乎与您想要的相反。

试试这个;

// $result = Do query
if(mysql_num_rows($result) == 0) {
    // Show the form
} else {
    // Show 'Already Requested' message
}

现在只有在查询返回的行数为0时才显示表单。

您还需要在SQL中为played标志添加一个检查。并接受几条评论;