【发布时间】:2018-05-10 15:34:13
【问题描述】:
数据库不会更新。问题是什么?我尝试了很多方法,都失败了。我阅读了 mysqli 字典,代码应该可以工作,但事实并非如此。
这是edit.php
<?php require_once 'header.php' ?>
<?php
$id = $_GET['id'];
?>
<div class="container">
<form method="post" <?php echo "action='edit_resultu.php?id=".$id."'"; ?>>
<input type="text" name="track" class="form-control" placeholder="Enter track" maxlength="70"/>
<button type="submit" class="btn btn-block btn-primary" name="update">Submit</button>
</form>
</div>
</body>
</html>
这是edit_resultu.php
<?php
if(isset($_POST['update']))
{
$id = $_GET['id'];
$track = $_POST['track'];
$query = "UPDATE `db71038521`.`packs` SET track = `$track` WHERE `packs`.`id` = '$id'";
if(!mysqli_query($conn, $query))
{
die('Could not update data: ' . mysqli_error($query));
}
echo "Updated data successfully\n";
}
?>
</body>
</html>
【问题讨论】:
-
危险:此代码是vulnerable to XSS 用户输入需要转义才能插入到 HTML 文档中!。
-
危险:你很容易受到SQL injection attacks的影响,你需要自己从defend那里得到。
-
此代码应生成错误警告:mysqli_query() 期望参数 1 为 mysqli,给定 null。可以?您是否确保 PHP 已配置为向您显示错误?
-
@MasivuyeCokile — 使用带有
method="post"的表单不会阻止您将数据放入查询字符串并在$_GET中读取。 -
@Quentin 我没有说它,它只是一个坏主意,你也知道这一点