2

我试图在我的实际网站上添加一个命中计数器,以便我可以按否订购优惠。点击数。我没有收到任何错误,但我的数据库没有按照我的意愿更新,我知道原因,但我似乎无法解决问题。

这就是我在我的数据库中添加报价的方式。

if  (isset($_POST['add'])) 
{       
    require_once("mysql_connect.php");
    $id=uniqid();
    $email=$_SESSION['email'];
    $denumire_locatie=$_POST['denumire_locatie'];
    $tip_locatie=$_POST['categorie'];
    $judet=$_POST['judet'];
    $localitate=$_POST['localitate'];
    $strada=$_POST['strada'];
    $numar=$_POST['numar'];
    $telefon=$_POST['telefon'];
    $fax=$_POST['fax'];
    $descriere=$_POST['descriere'];
    $data_modificare=date("Y/m/d H:i:s", time() + 3600);
    $adresa_ofertei="oferta.php?id=['id_oferta']";
    $query="INSERT INTO oferte VALUES ('" . $id ."', '$email', '$denumire_locatie','$tip_locatie', '$judet', '$localitate', '$strada', '$numar','$telefon', '$fax', '$descriere','$id', '$data_modificare', '$adresa_ofertei')";
    mysql_query($query) or die (mysql_error());

我认为问题出现在变量“adresa_ofertei”中,因为当我添加那行代码(并更新查询)时,我无法再添加优惠了。基本上我想要的是,当添加报价以根据该条目的 id 自动生成链接并将其添加到 MySQL 时,我可以在动态生成的页面中使用它,如下所示:

<?php 
$adresa_ofertei = $_SERVER['PHP_SELF'];
$sql = "UPDATE oferte SET accesari=accesari+1 WHERE adresa_ofertei='$adresa_ofertei' LIMIT 1";
$res = mysql_query($sql); 
?>

如果它有帮助,“adresa_ofertei”表示“offer_address”,“accesari”表示“命中”。我已经仔细检查了我的数据库和代码是否有任何拼写错误,所以这可能不是问题。请尝试以这样的方式回答,它不仅可以解决我当前的问题,还可以帮助我和其他人了解如何根据动态页面制作命中计数器。非常感谢,如果我必须在降级之前以任何方式修改我的问题,请告诉我,因为我对 PHP 和 Stack Overflow 都很陌生。

4

1 回答 1

2

我认为这两点应该可以帮助您解决问题。

  1. 您应该尝试转义引号。他们可能会导致问题。
  2. 对于任何用户提交的信息,您应该使用 mysql_real_escape_string 或准备好的语句(类似于输出 html)。否则可能很危险(sql注入)!
于 2013-08-03T12:35:55.497 回答