1

画像ギャラリーを含むプロジェクトに取り組んでいます。次に、クリック数/カウント値をデータベース(MySQLで開発)に保存したいと思います。私は自分のやり方でそれをやろうとしましたが、問題はすべての画像のカウント/クリック値が同じ値としてデータベースに保存されていることです。

以下のコードは、データベースから取得した画像を表示するファイルmain.phpにあります。picture.phpは、データベースから画像を取得するものです。画像がクリックされるたびにカウントされるように、 picture.phpのクリック数をカウントするコードを追加しました。

main.php

    $query="SELECT * FROM files";
    $result=mysql_query($query) or die(mysql_error());
    while($fetch=mysql_fetch_array($result)){
         echo "<div class=single>
               <div class=wrap>
                   <a href=picture.php?fid=".$offer_id.">
                       <img src=picture.php?fid=".$offer_id."\">
                   </a>
               </div>
               </div>";
    }

picture.php

    if(isset($_GET['fid']))
    {
         include "connect.php";
         $fid=$_GET['fid'];
         $query="SELECT * FROM offers_em WHERE o_id =$fid";
         $result=mysql_query($query) or die(mysql_error());

         $sql="UPDATE offers_em SET count+=1 WHERE o_id=".$fid;
         $sql2=mysql_query($sql);
         
         $name=mysql_result($result,0,"pic_name");
         $size=mysql_result($result,0,"size");
         $type=mysql_result($result,0,"type");
         $content=mysql_result($result,0,"content");
   
         header("Content-Disposition: attachment; filename=$name");
         header("Content-length: $size");
         header("Content-type: $type");
         echo $content;
    }
    else{
         die("No file ID given...");
    }
4

2 に答える 2

0

MySQLが「+=」をサポートしているかどうかわかりません。試してみてください SET count = count + 1

編集:投稿の下のコメントに記載されているように、インジェクションの脆弱性を分類することを確実に検討してください。

于 2012-11-13T10:01:36.167 に答える
0

SQLインジェクションとは何の関係もありません。

問題は、リンクをループで呼び出しているため、すべてのクリック値が更新されていることです。別のcount_link.phpファイルを作成し、ユーザーが画像リンクをクリックしたときにのみ呼び出されます。

$query="SELECT * FROM files";
    $result=mysql_query($query) or die(mysql_error());
    while($fetch=mysql_fetch_array($result)){
         echo "<div class=single>
               <div class=wrap>
                   <a href=count_link.php?fid=".$offer_id.">
                       <img src=picture.php?fid=".$offer_id."\">
                   </a>
               </div>
               </div>";
    }

とにかくあなたの時間の人に感謝します..:)

于 2012-11-22T06:16:12.343 に答える