0

脚本的目标:获取正在传递的 URL 和 AdID 并在数据库中对其进行计数,然后将用户传递给传递的 url

它是如何工作的:一旦将链接传递给脚本,它就会采用 AdID 并将点击记录在数据库行 +1 中,然后将它们重定向到链接。数据库布局:

  • 表:广告
  • 行:点击

传递链接的示例:http: //yourdomain.com/clickcounter.php ?AdID=43&RedirectURL=http://stackoverflow.com

ISSUE:它没有传递任何包含特殊字符的 url。像 ?或者 &

  • 明显的问题:仍在使用 mysql_query。我还没有完全学会新的mysqli方式

故障链接示例: https ://www.demoexample.com/index.aspx?d=111&prog_id=tttt

对其他人的好处:其他人可以使用这个脚本来做我正在做的事情。计算链接/广告/任何网址被点击的次数,以衡量链接/广告的使用/点击次数。

<?php
require('config.php');

    // Update Ad Pull/Display count
    $AdID= mysql_real_escape_string($_GET['AdID']);
    $UpdateADHitDisplay = mysql_query("UPDATE ads SET clicks = clicks +1 WHERE ID = '$AdID'");

    // Get Redirection Inforamtion
    $RedirectURL = mysql_real_escape_string($_GET['RedirectURL']);
    header("Location: $RedirectURL");

?>

我不明白如何使用 urlencode 完成此操作,这是我尝试过的。

// Get Redirection Inforamtion
$RedirectURL = $_GET['RedirectURL'];
//$FixedURL = urlencode($RedirectURL); // didn't work
    function url_encode($RedirectURL){ // then i tried to create a function. it pases the first part of the url, but nothing past the first ? or special char
 return urlencode(utf8_encode($RedirectURL));

} header("位置:$RedirectURL");

4

1 回答 1

2

链接中参数RedirectURL的值必须是urlencoded,不需要mysql_real_escape_string()for$RedirectURL变量

于 2012-11-16T03:17:26.213 回答