首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重定向计数

重定向计数
EN

Stack Overflow用户
提问于 2013-04-24 07:25:28
回答 1查看 1.3K关注 0票数 0

我找到了一个重定向脚本,并且一直在尝试让它计算重定向的次数(url_hits)。我不能让它工作,我想知道有没有人能帮我。

这是重定向的部分:

代码语言:javascript
复制
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);
}

这是数据库

代码语言:javascript
复制
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;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-24 07:29:28

在代码中的任何一点都不要增加命中计数器。

将此行添加到if (!empty($_GET['url'])) {之后

代码语言:javascript
复制
mysql_query("UPDATE `urls` SET `url_hits` = `url_hits`+1 WHERE `url_short` = '" . addslashes($_GET['url']) . "'");

额外好处:为了避免违反DRY principle,您可以将其更改为:

代码语言:javascript
复制
$urlShort = addslashes($_GET['url']);
mysql_query("UPDATE `urls` SET `url_hits` = `url_hits`+1 WHERE `url_short` = '$urlShort'");

这将使您能够更改以下内容:

代码语言:javascript
复制
$redirect = mysql_fetch_assoc(mysql_query("SELECT url_link FROM urls WHERE url_short = '".addslashes($_GET['url'])."'"));

要这样做:

代码语言:javascript
复制
$redirect = mysql_fetch_assoc(mysql_query("SELECT url_link FROM urls WHERE url_short = '$urlShort'"));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16180854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档