2013-08-03 157 views
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和堆栈溢出都很陌生。

回答

2

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

  1. 你应该尽量避免引号。他们可能会导致问题。
  2. 您应该为任何用户提交的信息使用mysql_real_escape_string或预处理语句(类似于输出html)。否则,它可能是危险的(SQL注入)!
+0

你是对的,我只是意识到我一直在做的重大错误,因为没有保护数据。但是,我没有看到我必须在上面的代码中避开引号,而我没有。 – SporeDev

+0

很高兴我能帮到你。我讨论的是$ adresa_ofertei变量,因为有时候人们会把''''换成'''作为外部引用而没有意识到它,它可能会导致未来的问题,也许现在不会。如果你觉得这样做有帮助,那么可以自由地upvote :) 。 需要帮助请叫我 :) – woofmeow