【发布时间】:2012-12-21 15:57:15
【问题描述】:
我尝试使用的代码如下,我仔细检查了它和所有内容,它一直说这个错误:致命错误:调用未定义的函数 Votifier(),我不知道问题出在哪里。这是我在这里问的最后手段,我已经在谷歌上搜索了 2 个小时.. 提前致谢。
<?php
if (isset($_COOKIE['votfed']) && $_COOKIE['vofted'] == 'true') {
exit();
} else {
mysql_connect("", "", "")or die("cannot connect");
mysql_select_db("")or die("cannot select DB");
$result = mysql_query('SELECT * FROM servers WHERE id = "' . $_GET["server"] . '"');
while ($row = mysql_fetch_array($result)) {
$public_key = $row['votifier_key'];
$server_ip = $row['ip'];
$server_port = $row['votifier_port'];
$username = 'USERNAME';
}
$username = preg_replace("/[^A-Za-z0-9_]+/", '', $username);
if (Votifier($public_key, $server_ip, $server_port, $username)) {
echo 'Success!';
} else {
echo 'Error!';
}
ini_set('error_reporting', E_ALL);
function Votifier($public_key, $server_ip, $server_port, $username) {
$public_key = wordwrap($public_key, 65, "\n", true);
$public_key = <<<EOF
-----BEGIN PUBLIC KEY-----
$public_key
-----END PUBLIC KEY-----
EOF;
$address = $_SERVER['REMOTE_ADDR'];
$timestamp = time();
$string = "VOTE\MC-ServerLists.com\n$username\n$address\n$timeStamp\n";
$leftover = (256 - strlen($string)) / 2;
while ($leftover > 0) {
$string .= "\x0";
$leftover--;
}
openssl_public_encrypt($string, $crypted, $public_key);
$socket = fsockopen($server_ip, $server_port, $errno, $errstr, 3);
if ($socket) {
fwrite($socket, $crypted);
return true;
} else
return false;
}
mysql_connect("", "", "")or die("cannot connect");
mysql_select_db("")or die("cannot select DB");
mysql_query('insert into voters (server_id, ipaddress) VALUES ("' . $_GET["server"] . '", "' . $_SERVER['REMOTE_ADDR'] . '")');
}
【问题讨论】:
-
欢迎来到 Stack Overflow! Please, don't use
mysql_*functions in new code。它们不再维护and are officially deprecated。看到red box?改为了解prepared statements,并使用PDO 或MySQLi - this article 将帮助您决定哪个。如果你选择 PDO,here is a good tutorial. -
这种缩进样式就是所谓的“代码墙”。请格式化您的代码,使其可读,我不认为您在编辑器中看起来像那样。至少,我希望你不要。
标签: mysql cookies php minecraft