抱歉标题措辞不好,我不知道还能称呼这种情况。
这是我的困境,为了好玩,我正在制作一个小玩意儿,这样人们就可以提交战地 3 服务器的名称、平台和位置,这样他们就不再需要依赖口耳相传了。
这个旧代码工作正常,它删除记录并完成它的工作。
<?php
mysql_connect('localhost', 'root', 'pass');
mysql_select_db('database');
$server_secret = mysql_real_escape_string($_POST['secret_initial']);
$server_confirm = mysql_real_escape_string($_POST['secret_verify']);
if ($server_secret == $server_confirm) {
echo "Both matched.";
if ((strlen($server_secret) < 6) and (strlen($server_verify) < 6)) {
echo "Password too short.";
} else {
echo "Password is of proper length.";
$sql = "DELETE FROM `servers` WHERE secret='" . sha1($server_secret) . "'";
mysql_query($sql) or die("Couldn't delete record. " . mysql_error());
}
} else {
echo "Mismatch.";
}
?>
但是,如果我使用这个:
<?php
mysql_connect('localhost', 'root', 'pass');
mysql_select_db('database');
// Create variables from form
$server_secret = mysql_real_escape_string($_POST['secret_initial']);
$server_confirm = mysql_real_escape_string($_POST['secret_verify']);
// Check for verification
if ($server_secret == $server_confirm) {
// Delete from database
$sql = "DELETE FROM `servers` WHERE secret='" . sha1($server_secret) . "'";
if (mysql_query($sql) or die("Couldn't delete record. " . mysql_error()) {
$success = true;
} else {
$success = false;
}
}
?>
它总是将 $success 报告为真,即使它是假的,而且让我感到困惑的是,即使秘密和验证都正确,该条目也没有从 MySQL 数据库中删除。
旧版本虽然工作正常。这就是让我感到困惑的地方。
我用于检查成功的相同方法if (mysql_query($sql)
(
如果有人可以在这里帮助我,我将不胜感激。
请注意:我是 PHP/MySQL 的新手,请见谅。