我找到了一个重定向脚本,并且一直在尝试让它计算重定向的次数(url_hits)。我不能让它工作,我想知道有没有人能帮我。
这是重定向的部分:
if (!empty($_GET['url'])) {
$redirect = mysql_fetch_assoc(mysql_query("SELECT url_link FROM urls WHERE url_short = '".addslashes($_GET['url'])."'"));
$redirect = "http://".str_replace("http://","",$redirect[url_link]);
header('HTTP/1.1 301 Moved Permanently');
header("Location: ".$redirect);
}这是数据库
CREATE TABLE IF NOT EXISTS `urls` (
`url_id` int(11) NOT NULL auto_increment,
`url_link` varchar(255) default NULL,
`url_short` varchar(6) default NULL,
`url_date` int(10) default NULL,
`url_ip` varchar(255) default NULL,
`url_hits` int(11) default '0',
PRIMARY KEY (`url_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;发布于 2013-04-24 07:29:28
在代码中的任何一点都不要增加命中计数器。
将此行添加到if (!empty($_GET['url'])) {之后
mysql_query("UPDATE `urls` SET `url_hits` = `url_hits`+1 WHERE `url_short` = '" . addslashes($_GET['url']) . "'");额外好处:为了避免违反DRY principle,您可以将其更改为:
$urlShort = addslashes($_GET['url']);
mysql_query("UPDATE `urls` SET `url_hits` = `url_hits`+1 WHERE `url_short` = '$urlShort'");这将使您能够更改以下内容:
$redirect = mysql_fetch_assoc(mysql_query("SELECT url_link FROM urls WHERE url_short = '".addslashes($_GET['url'])."'"));要这样做:
$redirect = mysql_fetch_assoc(mysql_query("SELECT url_link FROM urls WHERE url_short = '$urlShort'"));https://stackoverflow.com/questions/16180854
复制相似问题