我正在通过简单的步骤从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);
Run Code Online (Sandbox Code Playgroud)
我很欣赏这方面的任何想法.我已经花了大约3个小时在发布商网站上,但我还是在第一个方面.
没有超全局数组,$POST因此您必须更改$POST['name']为$_POST['name'].
PHP无法看到该数组,因此它评估!empty($POST['name'])为false从不执行update查询代码.
而且,就像@BartFriederichs所说,买更好的书.我不认为你会从现有的东西中学到一些有价值的东西.
| 归档时间: |
|
| 查看次数: |
80 次 |
| 最近记录: |