我得到了最后一个工作(simple outbound link tracker - Why isn't this working?),问题是空格和列名大写。
现在我正试图在没有任何运气的现有数据库中实现这一点。
这是代码(不包括mysql连接数据和混淆表名)
<?php
$id = $_GET['ID'];
/** Increase the counter of the URL to which the user is going*/
mysql_query("UPDATE `table_name` SET countout = countout + 1 WHERE ID = '$id'") or die(mysql_error());
/** Retrieves URL */
$result = mysql_query("SELECT * FROM `table_name` WHERE ID = '$id'") or die(mysql_error());
$row = mysql_fetch_array($result);
//redirects them to the link they clicked
header( "Location:" .$info['Url'] );
?>
同样重要的是,这是db表结构的屏幕截图,其中包含数据:
http://cl.ly/323A1i3L0n181P3H0J2B/Image%202012-01-05%20at%201.39.41%20PM.png
当我尝试
时out.php?id=36
我得到一个空白页
编辑:@RunarJørgensen提供了修复程序。只是试图从SQL注入中保护它
答案 0 :(得分:1)
您的脚本中有一些应该更正的错误。您应该在开发时启用错误,以便查看脚本无法使用的内容。
首先:变量区分大小写,如果您的链接为out.php?id=36
,则应使用$_GET['id']
而不是$_GET['ID']
。
其次:据您所见,您正在重定向到未设置的网址。您应该将标头标记编辑为如下所示:header("Location: " . $row['Url']);
您还应该了解SQL注入,并了解如何处理它们。