【问题标题】:Retrieving unsigned zerofill int from URL [closed]从 URL 中检索 unsigned zerofill int [关闭]
【发布时间】: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?
  • 不,整数是一个数字。您将数据与其表示混淆了。

标签: php mysql url get


【解决方案1】:

您可以将其转换为 int 或使用 is_int/ is_integer/filter_var 进行检查

另外,我个人不喜欢使用通用 id 来识别用户的想法。您可能想要创建一个函数,该函数根据 id 加上当前日期以及一些随机字符串来生成用户帐户。

【讨论】:

  • “我个人不喜欢使用通用 id 来识别用户的想法”——你能澄清一下吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-22
  • 1970-01-01
  • 1970-01-01
  • 2014-04-05
  • 1970-01-01
  • 2013-11-24
  • 1970-01-01
相关资源
最近更新 更多