PHP通过比较当前URL获取数据库中的ID

时间:2013-06-10 08:57:35

标签: php

我正在构建一个访问者跟踪系统,我希望它尽可能抽象,而不必将静态变量放在代码中。 广告系列表的结构是这样的:

ID - NAME - URL - REDIRECT URL

如果ID是广告系列的ID(自动递增),NAME是广告系列的名称,URL是广告系列的网址。 事实上,我应该根据我们实际的广告系列获取广告系列的ID,并通过将当前网址与数据库中的网址进行比较来实现。通过这样做,我获得了活动ID并完成了剩下的工作。 问题是,通过我的功能,我正确地获取了广告系列的网址,但在将其与数据库中的网址进行比较时,并不总是会返回预期的内容。 我试图获取包含所有可能变量的URL,但有时URL没有以正确的方式返回,并且在DB中无法识别ID。 我该如何解决这个问题?我可以使用另一种逻辑而不是比较URL吗?

$campaign = getCampaignDetails("url", cleanUrl($_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']));

function cleanUrl($url) {
    $url = str_ireplace("http://www.", "", $url);
    $url = str_ireplace("http://", "", $url);
    $url = str_ireplace("www.", "", $url);
    $url = str_ireplace(".php", "", $url);
    $url = str_ireplace("https://www.", "", $url);
    $url = str_ireplace("https://", "", $url);
    return $url;
}

function getCampaignDetails($table, $var) {
    $query = "SELECT * FROM _campains WHERE ".$table." = '$var'";
    $result = mysql_query($query) or die("Getting campaign details via url failed: " . mysql_error());
    while ($row = mysql_fetch_assoc($result)) {
        return $row;
    }
}

数据库中广告系列的值示例:

ID = 1, Name = tgcampaign, URL = site.com/campains/tgadv

现在为了避免意外错误,我只是直接在文件中传递ID,但这是我想避免的,如下所示:

$campaignId = "1";
$campaign = getCampaignDetails("id", $campaignId);

0 个答案:

没有答案
相关问题