【发布时间】:2014-07-31 01:14:11
【问题描述】:
场景:我通过 URL 传递帐户的 ID。帐户 ID 必须始终有 5 位数字,这就是为什么我使用 zerofill int 并自动增加我在数据库中添加的每个用户帐户的原因。通过传递 ID,我将使用它来查询涉及用户帐户的其他表
问题:似乎如果我通过 $_GET 从 URL 中检索 ID,它会给我一个普通的 int。是否可以获取此数字的填零版本以将其与我的数据库进行比较?
示例: website.php?id=00032
附:我是 PHP 的新手,所以请放轻松。另外,我知道通过 URL 传递 ID 是一个主要的安全问题,但我现在并不担心
【问题讨论】:
-
"它给了我一个普通的 int" --- 你怎么知道的?
var_dump()? “我知道通过 URL 传递 ID 是一个主要的安全问题”——不是。 Stackoverflow 在 url 中传递问题 id,它们仍然存在。 -
让我重新表述一下。当我通过 get 检索它时,它会返回一个字符串,因为当我回显它时,它会像示例一样给我通常的 00032。当我将它转换为 INT 以便我可以将它与也是 INT 类型的数据库进行实际比较时,它会删除零并给我留下 32,至少这是我认为正在发生的事情
-
没错,因为它是
32整数,而不是000000000000000000032。您要求 php 将字符串转换为整数 - 它执行了它。不知道是什么问题。 -
嗯,这就是确切的问题。有没有办法让它成为一个 zerofill int?
-
不,整数是一个数字。您将数据与其表示混淆了。