2012-11-16 30 views
0

脚本的目的:采取正在传递一个URL,是AdID和数据库中的数,然后用户传递到通过URL问题在通过URL特殊字符(S) - ClickCounter php脚本

工作原理:将链接传递到脚本后,它将采用AdID并将点击记录到数据库行+1,然后将它们重定向到链接。 数据库布局:

  • 表:广告
  • 行:点击通过的路段的

例如: http://yourdomain.com/clickcounter.php?AdID=43&RedirectURL=http://stackoverflow.com

ISSUE:不通过具有特殊字符的任何URL (s)在里面。像 ?或者&

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

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

BENIFIT他人:其他人可以使用该脚本做我在做什么。计算点击链接/广告/任何网址的次数,以衡量链接/广告的使用量/点击次数。

<?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完成这里是我的尝试。 header(“Location:$ RedirectURL”);};

+0

看来这mysql_real_escape_string呼吁是没有意义的,并导致了问题。 –

回答

2

参数的redirectUrl在你的链接的值必须urlencoded并且在mysql_real_escape_string()不需要$RedirectURL可变