全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 2373|回复: 16
打印 上一主题 下一主题

[经验] 对于小夜短网址Bug的一些建议

[复制链接]
跳转到指定楼层
1#
发表于 2011-4-29 22:32:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
function get_url($alias) {
    $db_result = mysql_query("SELECT url FROM ".DB_PREFIX."urls WHERE BINARY code = '$alias' OR alias = '$alias'") or db_die(__FILE__, __LINE__, mysql_error());

    if (mysql_num_rows($db_result) > 0) {
        $db_row = mysql_fetch_row($db_result);

        return $db_row[0];
    }

    return false;
}

这样可能会返回错误的结果,建议小夜把code更改成数字id或者是规定一个开头。
2#
发表于 2011-4-29 22:38:25 | 只看该作者
谢谢!能帮忙改一下吗?
3#
发表于 2011-4-29 22:40:07 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
4#
发表于 2011-4-29 22:42:42 | 只看该作者
自已的t.cn的走过。。。。。
5#
发表于 2011-4-29 22:42:46 | 只看该作者
越描越黑,程序BUG而已。
6#
 楼主| 发表于 2011-4-29 22:46:18 | 只看该作者

回复 3# 的帖子

code的生成过程是按照数字的,有人生成的时候正好是排列到那个。
7#
发表于 2011-4-29 22:49:45 | 只看该作者
程序没问题的
  1.         if ($create) {
  2.             do {
  3.                 $code = generate_code(get_last_number());

  4.                 if (!increase_last_number()) {
  5.                     die("System error!");
  6.                 }

  7.                 if (code_exists($code) || alias_exists($code)) {
  8.                     continue;
  9.                 }

  10.                 break;
  11.             } while (1);

  12.             $id = insert_url($url, $code, $alias);
  13.         }
复制代码
那段只是用来生成一个类UUID的唯一值而已,插入过程会检测是否存在的,而且code是个varchar(20),不是char(3),不可能xxx和xxxyyy结果一样的
8#
发表于 2011-4-29 22:55:12 | 只看该作者
好了啦.这样没有意思啦
替换了就替换了.你也可以从那个短链里直接拿到生成的
9#
发表于 2011-4-29 23:05:05 | 只看该作者
你拿那么多种方式来证明419是无辜的
你拿查数据库的
我玩数据库6年,可从来没有装where uid=1234找到123这个ID的数据去哦
你拿url来 听说linux连字母大小写都分得一清二楚吧.难不成linux眼睛有时没滴珍视明?眼花了,看多出一个O出来?
别越描越黑,静静的淡忘,其实这也没什么大不了的,只是提醒下大家,随便也提醒下还在做这种"生意"的工作者.
别太XXOO,这如同欺诈
10#
发表于 2011-4-29 23:08:10 | 只看该作者
大家理解就行了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-11-11 21:30 , Processed in 0.142478 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表