0

我正在通过简单的步骤从《PHP & MYSQL》一书中进行练习。它涉及一个 HTML 表单来更新数据库中的一行,然后是各种 PHP 脚本来检查 HTML 代码的输入数据并将其转换为安全格式。然而,代码并没有像书中所说的那样工作。我去了发布者的网站并下载了代码示例,但没有任何乐趣。

取而代之的是一个带有其下方行名称的表单,而是得到该表单,然后在“未提交有效的新名称”下方。然后在我要更改的表中行的当前名称下方。当我尝试将数据输入并提交到表单中时,它没有任何区别。它显示完全相同的页面。代码如下。

<!DOCTYPE HTML>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Ensuring security
    </title>
</head>
<body>

<form action="secure.php" method="POST">
    <p>New Name : <input type="text" name="name">
        <input type="submit"></p></form>



<?php

require('../connect_db.php');


if (!empty($POST['name']) && !is_numeric($_POST['name'])) {
    $name = $POST['name'];

    $name = mysqli_real_escape_string($dbc, $name);
    $name = strip_tags($name);

    $q = 'UPDATE towels SET name "' . $name . '" WHERE id= 1';
    mysqli_query($dbc, $q);
} else {
    echo 'No valid new name submitted';
}

$q = 'SELECT * FROM towels WHERE id = 1 ';
$r = mysqli_query($dbc, $q);
while ($row = mysqli_fetch_array($r, MYSQLI_NUM)) {
    echo "<p>Name : $row[1] </p>";
}
mysqli_close($dbc);

我会很感激这方面的任何想法。我花了大约 3 个小时访问了出版商的网站,但我仍然处于第一阶段。

4

1 回答 1

5

没有超全局数组$POST,因此您必须更改$POST['name']$_POST['name'].

PHP 看不到该数组,因此它评估!empty($POST['name'])false并且从不执​​行带有update查询的代码。

而且,就像@BartFriederichs 所说,买更好的书。我认为您不会从当前的学习中学到有价值的东西。

于 2013-09-16T15:35:51.250 回答