我正在尝试为广播电台制作歌曲申请表,但他们不想发送垃圾邮件。我已经完成了表格等非常简单,但我试图这样做......如果访问者请求一首歌,该请求将存储在数据库中,以便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>
提前致谢。
答案 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
标志添加一个检查。并接受几条评论;