无论如何,所以当我在我的数据库上添加IP时,它会将IP添加到我的MySQL数据库中,但是有一些错误,如果我输入一个随机IP,它会禁止我从网站上,当我进入MySQL数据库时它没有告诉我什么IP被禁止,字段是空的,日期和时间只是00-00-00 00:00之类的东西,我真的找不到错误..
我认为这是代码搞砸了,但我不太确定,因为我是PHP的新手,而且我之前还有一些其他代码有些错误。
<?php
// Check if user is banned
function check_banned($ip) {
$query = mysql_query("SELECT ip FROM ip_ban WHERE ip='$ip'");
if(mysql_num_rows($query) != 0) {
die("This ip <b>$ip</b> has been banned from this website!");
} else {
return false;
}
}
// Add a user ip to the database
function add_ban($ip) {
$datetime = strftime("&Y-%n-%d %H:%M:%S");
$query = mysql_query("INSERT INTO ip_ban (ip, datetime) VALUES ('$ip', '$datetime')");
if($query == true) {
echo "The IP <b>$ip</b> has been banned!";
} else {
echo "There was something wrong!<br/>Error: ". mysql_error();
}
}
// Removes a user ip from the database
function remove_ban($ip) {
$query = mysql_query("DELETE FROM ip_ban WHERE ip='$ip'");
if($query == true) {
echo "The IP <b>$ip</b> has been unbanned!";
} else {
echo "There was something wrong!<br/>Error: ". mysql_error();
}
}
?>
这是添加IP禁止列表代码:
<?php
include "core/init.php";
echo "<h1>Welcome to the Administrator page!</h1>";
echo "<a href='index.php'>Home</a> | <a href='admin.php'>Admin</a> | <a href='add.php'>Add</a> | <a href='remove.php'>Remove</a> | <a href='all.php'>Banned IPs</a>";
echo "<hr/>";
if(isset($_POST['add_btn'])) {
add_ban($_POST ['ip.txt']);
}
?>
<form action="add.php" method="post">
<input type="text" name="ip.txt" />
<input type="submit" name="add.btn" value="Add" />
</form>
好的感谢所有评论/帮助我感谢所有人! 我刚刚意识到我写了%n而不是%m所以我几乎搞砸了很多,虽然我现在已经修好了,非常感谢! :)主题解决了。
答案 0 :(得分:2)
$datetime = strftime("&Y-%n-%d %H:%M:%S");
^---not a valid formatting char
由于&
,您生成的日期类似于
&Y-03-14 09:16:00
当插入到数据库中时,将被声明为无效,并且您将获得全零日期。
答案 1 :(得分:1)
而不是:
if(isset($_POST['add_btn'])) {
add_ban($_POST ['ip.txt']);
}
这样做:
if(isset($_POST['add_btn'])) {
add_ban($_POST ['ip_txt']);
}
重要的是要注意PHP会自动用下划线替换传入变量名中的任何点。