0

クエリを実行するためにリクエストを実行できるこのコードがあります。

これで、処理されるフォームのコードは次のようになります。

<form action="edit_images.php" method="post">
<input type="hidden" value="<? echo $gal_id1 ?>" name="img_id1"  />
<input type="submit" value="Edit All Images"  />
</form>

クエリは次のようになりますが:

$img_id=$_REQUEST['img_id1'];
$sql="SELECT * FROM tbl_images WHERE Img_gal_id='$img_id'";

しかし、それは値をとらないようです...つまり、私が以前に印刷した$ img_idを認識せず、正確な値を取ります。

取得するために使用するクエリを示します。

$sql = "SELECT gal_id,gal_title,gal_image FROM tbl_galleries where gal_id='" . $_REQUEST['gid'] ."';";
      $query = mysql_query($sql) or $myErrorsP = mysql_error();
      if(isset($myErrors) && $myErrorsP!=''){     
      } else {          
          $row = mysql_fetch_row($query);
          mysql_free_result($query);
          $gal_id    = $row[0];
          $gal_id1    = $row[0];
          $gal_title = $row[1];
          $gal_image = $row[2];                     
      } 
4

1 に答える 1

2

期待どおりに値を出力していないa;が最後にありません。echoさらに、短いタグを使用しているため、問題が発生する可能性があります。<?phpあなたはそれ自体でオープニングとして使用することに切り替えたいと思うかもしれません<?

<input type="hidden" value="<?php echo $gal_id1; ?>" name="img_id1"  />

最後に、インジェクション攻撃に対するゼロプロテクションを使用しています。PDOでプリペアドステートメントを調べて、コードを更新してください。あなたが持っていない最初のインジェクション攻撃はそれをあなたに感謝します。

編集:このような問題が発生した場合は、$sql実行する直前にエコーアウトすることをお勧めします。

将来的には、次の方法でこれを行うことができます。

$sql = "SELECT gal_id,gal_title,gal_image FROM tbl_galleries where gal_id='" . $_REQUEST['gid'] ."';";
echo $sql."<br>\n";
$query = mysql_query($sql) or $myErrorsP = mysql_error();

それはおそらくあなたに問題が何であったかについての優れた指標を与えたでしょう。

于 2012-08-22T12:56:48.843 に答える