Php 从URL检索未签名的zerofill int

Php 从URL检索未签名的zerofill int,php,mysql,url,get,Php,Mysql,Url,Get,场景:我正在通过URL传递帐户ID。帐户ID必须始终有5位数字,即:;这就是为什么我使用zerofill int并在数据库中添加的每个用户帐户中自动递增它。通过传递ID,我将使用它查询涉及用户帐户的其他表 问题:如果我通过$\u GET从URL检索ID,它会给我一个正常的int。是否可以获取此数字的zerofill版本以将其与我的数据库进行比较 例如: php?id=00032 另外,我是PHP的新手,所以请对我放松点。另外,我知道通过URL传递ID是一个主要的安全问题,但我现在不担心这一点您可

场景:我正在通过URL传递帐户ID。帐户ID必须始终有5位数字,即:;这就是为什么我使用zerofill int并在数据库中添加的每个用户帐户中自动递增它。通过传递ID,我将使用它查询涉及用户帐户的其他表


问题:如果我通过$\u GET从URL检索ID,它会给我一个正常的int。是否可以获取此数字的zerofill版本以将其与我的数据库进行比较

例如: php?id=00032


另外,我是PHP的新手,所以请对我放松点。另外,我知道通过URL传递ID是一个主要的安全问题,但我现在不担心这一点

您可以将其强制转换为int,或者使用
is_int
/
is_integer
/
过滤器


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

“它给了我一个正常的整数”——您怎么知道的<代码>变量转储()
?“我知道通过URL传递ID是一个主要的安全问题”——事实并非如此。Stackoverflow在url中传递问题id,但它们仍然存在。让我重新表述一下。当我通过get检索它时,它会返回一个字符串,因为当我回显它时,它会给出通常的00032,如示例所示。当我将它转换为INT以便我可以将它与同样是INT类型的数据库进行比较时,它删除了0,留下了32,至少我认为这是正确的,因为它是
32
整数,而不是
000000000000000000032
。您要求php将字符串转换为整数-它执行了转换。我不确定问题出在哪里。好吧,这就是问题所在。有没有办法把它变成一个零填充整数?不,整数是一个数字。你把数据和它的表示混淆了。“我个人不喜欢使用公共id来识别用户的想法”——你能澄清一下吗?