1

我正在开发一个包含图片库的项目。现在我想将点击次数/计数值存储到我的数据库中(在 MySQL 中开发)。我试图以自己的方式来做,但问题是所有图像的计数/点击值都存储在数据库中作为相同的值。

下面给出的代码在文件main.php中,它显示从数据库中检索到的图像。picture.php是从数据库中检索图像的那个。我已经附加了代码来计算picture.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>";
    }

图片.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 回答