【发布时间】:2012-07-24 00:20:15
【问题描述】:
我有一个脚本,当用户输入我希望它添加到数据库总数中的代码时,我正在使用该脚本,但是没有任何反应。
这是我目前的代码:
$err = array();
if (isset($_POST['doSubmit4']) === true ) // Was if ($_POST['access']=='submit')
{
$code = mysql_real_escape_string($_POST['access-key']); // Was $data['access-key']
$result = mysql_query("SELECT `akid`,`key`,`total_access` FROM access_keys WHERE id='$_SESSION[user_id]' AND type='1'") or die (mysql_error());
$num = mysql_num_rows($result);
// Match row found with more than 1 results - the key exists.
if ( $num > 0 ) {
list($akid,$key,$total_access) = mysql_fetch_row($result);
if ($code == $key) {
if(empty($err)){
$total_access++;
mysql_query("update access_keys set total_access='$total_access' where akid='$akid'") or die(mysql_error());
header("Location: ./");
}
} else {
$err[] = "Invalid Access Key. Please try again with correct access key.";
}
} else {
$err[] = "Error - Invalid Access Key. No access exists for your user ID.";
}
}
我希望每次用户输入正确的代码时都将其添加到“总访问权限”字段中,但它不起作用。
这是我的表单代码:
<form name="postAccess" id="postAccess" method="post" action="access.php">
<input type="password" name="access-key" id="access-key" style="background-color:black;color:white;" size="40" /><br/>
<input name="doSubmit4" type="submit" id="doSubmit4" value="submit">
</form>
【问题讨论】:
-
"它不工作。" 问题出在哪里?如果您遇到一些错误,请通过编辑您的问题来附加它们。
-
强制:您应该使用 PDO 而不是 mysql_* 函数,该代码看起来容易受到 SQL 注入的攻击。
-
这就是调试的目的。确定问题所在。你有很多 if 语句。我觉得问题出在父括号 (
if($_POST['access']=='submit')) 上,因为您没有else声明超出这一点。在if括号中做一些回声,看看什么出现了,什么没有。这将有助于确定您的问题。 -
@Lion 它没有增加 $total_access 数字。假设从数据库中提取该数字并将其加 1,但没有发生任何事情。但它也没有向我的页面抛出任何错误。
-
@Kush 我是 PHP 的 MySQL 方面的新手,不知道如何正确使用它们。如果你能给我一些链接会有所帮助。 :)。 “mysql_real_escape_string”不起作用吗?