网站没有对数据库进行投票

时间:2013-11-16 02:26:47

标签: php mysql

所以投票页面位于点击here 用户名应该进入文本框,在两台服务器上投票后,它应该将用户名发送到数据库。

    <form name="vote" class="short style" method="post" target="_blank">
    <input name="username" type="text" size="30" maxlength="30"       placeholder="Username"><button id="nextbutton" type="button" onClick="next();">Next</button>
    <div style="display: none;" id="button" class="button"><button type="submit" onClick="changeAction('http://www.rune-server.org/toplist.php?do=vote&sid=8289&name=');")>Rune-Server</button><button type="submit" onClick="changeAction('http://www.runelocus.com/toplist/index.php?action=vote&id=30838&id2=');")>RuneLocus</button></div>
</form><br>

我不知道要添加什么,我想我需要用下一个按钮做一些事情..但请帮忙!另一件事是它的HTML ...它应该是PHP吗? 但是mysql工作正常并且正在发送给客户端。 它只是将用户名发送到数据库, 继续检查投票

    if (!$con) {
    die("Could not connect to database: " . mysql_error());
}
mysql_select_db("a5999082_oxidepk", $con);
$username = mysql_escape_string($_GET['username']);
if (isset($_GET['username'])) {
    $result = mysql_query("SELECT * FROM `votes` where username = '$username'") or die(mysql_error());
    $row = mysql_fetch_array($result);
    if($row['username'] == $username) {
        mysql_query("DELETE FROM `votes` where username = '$username'");
        echo "true";
    } else {
        echo "false";
    }
}
mysql_close($con);

然后继续回电

<?php
$rspscoding = gethostbyname("http://www.oxidepkz.net63.net");
    if($_SERVER['REMOTE_ADDR'] == $rspscoding) {
        $con = mysql_connect("mysql1.000webhost.com", "a5999082_oxidepk", "password");
        if (!$con) {
            die("Could not connect to database: " . mysql_error());
        }
        mysql_select_db("a5999082_oxidepk", $con);
        $username = mysql_escape_string($_GET['username']);
        if (isset($_GET['username'])) {
            mysql_query("INSERT INTO `votes` (username) VALUES ('$username')") or die(mysql_error());  
        }
        mysql_close($con);
}

&GT?; 也不确定gethostbyname应该是什么...谢谢!

1 个答案:

答案 0 :(得分:2)

所以...几条评论

首先,你不是sanitizing your data,这使你对SQL注入开放。

其次,您在代码示例中发布了数据库凭据。阅读此内容的任何人都可以看到并访问您的数据库编辑不会修复(仍将在历史记录中)所以我强烈建议您更改数据库凭据。下次您可能希望在发布之前删除它们。

第三,您需要停止使用mysql并切换到mysqli Why shouldn't I use mysql_* functions in PHP?

第四,你正在使用(以一种令人困惑的方式)

$rspscoding = gethostbyname("http://www.oxidepkz.net63.net");
if($_SERVER['REMOTE_ADDR'] == $rspscoding) { }

这永远不会成功,因为$_SERVER['REMOTE_ADDR']包含用户的IP,而不是主机名(并且您的用户也不会从您的服务器发布,这是我假设的$rspscoding) 。查看PHP $_SERVER reference