0

私を助けてくれる人がいることを願っています。テキストエリアのある PHP フォームを使用して、データを MySql データベースに更新しようとしています。ページの最初に定義されているランダムな文字列でデータベースを更新する限り、問題なく動作します。しかし、フォームから受け取った $_POST['text'] でデータベースを更新しようとすると、データベースの値が更新されません。

何が問題なのか本当にわからないので、この作業を手伝ってくれる人がいるといいのですが。私の質問が十分に明確でない場合はお知らせください。

test.php

<html>
<head>
  <script type="text/javascript" src="./js/tinymce/tinymce.min.js"></script>
  <script type="text/javascript">
    tinymce.init({
      selector: "textarea",
      plugins : 'advlist autolink autoresize autosave link image lists charmap media paste preview spellchecker',
      image_advtab: true
    });
  </script>
</head> 

<body>
  <?php
    $con=mysqli_connect("example.com","test","abc123","my_db");
    // Check connection
    if (mysqli_connect_errno())
    {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }                                  

    $result = mysqli_query($con,"SELECT content FROM page_content WHERE page = 'Zangpedagoog'");

    while($row = mysqli_fetch_array($result))
    {
      $text=$row['content'] ;
    }    
  ?>

  <form method="post" action="./send.php">
    <textarea name="text" width="100%">
    <?php echo $text ?>
    </textarea>
    <input id="submit" name="submit" type="submit" value="Send"></form></body></html>

send.php

<?php
  $update = $_POST['text'];
  echo $update;

  $random = '123456';
  echo $random;

  $con=mysql_connect("example.com","test","abc123","my_db");
  // Check connection
  if (!$con)
  {
    echo "Failed to connect to MySQL: " . mysql_connect_error();
  }

  mysql_query("UPDATE page_content SET content=$update WHERE page='Zangpedagoog'",$con);

  mysql_close($con);

?> 
4

1 に答える 1

0

私はそれがここにあると思います:

mysql_query("UPDATE page_content SET content=$update WHERE page='Zangpedagoog'",$con);

$update を文字列に直接入れています。それは非常に危険でばかげていますが、それはあなたが来た目的ではありません。本当にエラーを引き起こしているのは、$update の周りに ''s がないことだと思います。これで、取得した値が、文字列としてではなく、クエリに直接入力されます。これは SQL インジェクションに対して非常にオープンであることに注意してください。固定コード:

mysql_query("UPDATE page_content SET content='$update' WHERE page='Zangpedagoog'",$con);
于 2013-10-08T20:25:28.563 に答える