php - 网站未将投票存入数据库

标签 php mysql

所以投票页面在Click 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);
}

?> 也不确定 gethostbyname 应该是什么...谢谢!

最佳答案

所以...一些评论

首先,你不是sanitizing your data ,这会让您容易遭受 SQL 注入(inject)。

其次,您在代码示例中发布了数据库凭据。任何阅读本文的人都可以看到它们并访问您的数据库。编辑无法解决这个问题(仍将成为历史),因此我强烈建议您更改数据库凭据。下次您可能想在发布之前删除这些内容。

第三,您需要停止使用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 .

关于php - 网站未将投票存入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20013910/

相关文章:

java - 从 JApplet 向 JavaScript 发送数据的最简单方法是什么?

Java mysql 错误 : Could not find or load main class lib\mysql-connector-java-5. 1.25-bin.jar

PHP opendir() 仅列出文件夹

php - 使用 JavaScript .match() 获取 YouTube ID

php - ajax返回成功但mysql数据库未更新

php - MYSQL 从一个表复制字段到另一个表

在 SELECT 中定义它的表达式中使用的 MySQL 用户变量

mysql - 可以 select ... into outfile 而不是将其保存到文件中,而是将其保存在 blob 中

php - 如何以表格格式显示数据

php - redbeanphp 中的多个 where 子句