0

在编写了一大堆更复杂且运行良好的代码之后,这就是给我带来问题的代码。

简单的模式

<form action="res/scripts/editsubscriber.php" method="post">
<label for="name">Name: </label>
<input name="name" type="text" value="<?php echo $name; ?>">
...etc, etc...
</form>

提交到这个脚本:

  include('appvars.php');  
  if(isset($_POST['submit'])){
$id = $_POST['id'];
$name = $_POST['name'];
$email = $_POST['email'];
$month = $_POST['month'];
$day = $_POST['day'];
$year = $_POST['year'];
$date =  $_POST['date'];
$time = substr($date, 0, (stripos($date, " ")+1));
$time = str_replace($time, '', $date);
$created = $year.'-'.$month.'-'.$day.' '.$time;
$query = "UPDATE newslettersubscribers SET name = '$name', email = '$email', created = '$created' WHERE id = $id)";
mysqli_query($dbc, $query);
 }

它发布,我已经回显了所有变量,它们改变得很好,但它仍然不会更新数据库。有人请告诉我我错过了什么......

4

4 回答 4

2
于 2012-11-13T00:51:57.000 回答
0

您的 SQL 查询中有一个奇怪的尾随)。您是否在 SQL 客户端中执行过它?

于 2012-11-13T00:50:24.237 回答
0

你有身份证输入吗?

<input name="id" type="text" value="<?php echo $id; ?>">

此外,您没有转义 sql/html。

于 2012-11-13T00:51:48.673 回答
0

此代码将严重危害您的数据库的安全性。由于在包含在查询中之前没有对任何参数进行清理,因此具有基本安全知识的任何人都可以在几秒钟内接管您的应用程序。

要解决安全问题您的错误,您可能需要查看 http://php.net/manual/en/pdo.prepared-statements.php

于 2012-11-13T00:52:46.383 回答