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

IDフォーム入力はありますか?

<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 に答える