从我自己的网站禁止自己的错误

时间:2014-03-13 15:08:29

标签: php

无论如何,所以当我在我的数据库上添加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所以我几乎搞砸了很多,虽然我现在已经修好了,非常感谢! :)主题解决了。

2 个答案:

答案 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会自动用下划线替换传入变量名中的任何点。