2011-07-21 34 views
0

目前,我将地址限制为100个字符,没有关于它必须组成的规则。标点符号,数字,字母;都欢迎。什么是验证物理商业/住宅地址的正确方法?

我使用strip_tags将地址保存到我的数据库(准备语句)。当使用$this->escape()(Zend Framework)将其回显到页面时,我使用$this->escape()(Zend Framework)。

我不想发疯,但我认为我需要更严格一点。我错过了什么?

+3

开车去看看它是否存在。 – alex

+0

为什么'strip_tags()'在插入数据库之前?只是转义依赖于输出上下文的特殊字符。 – alex

+1

我不知道任何,但你可能想要找到一个标准化地址输入的库 – Ben

回答

2

如果这些地址是美国地址,则应使用美国邮政服务的API查找并标准化地址。

http://www.usps.com/webtools/

+0

+1表示授权。对于低容量要求,您可以使用其邮政编码查找手动检查地址。 http://zip4.usps.com/zip4/welcome.jsp但根据我的经验,USPS在地址变更上落后于地方政府。不是很多,但这对一些应用程序有所不同。 –

0

要建立在丹的回答,我想提出的是对你最好的办法是进行一个简单的请求一个地址验证服务,如SmartyStreets' LiveAddress(它是完全免费的,使用官方USPS数据)。我实际上是为SmartyStreets工作的,所以我一次又一次地经历了这些循环。

我阅读了关于你的问题的评论,尽管它看起来不是标准化地址的问题,但它真的到了最后。用户可以输入不好的数据 - 如果他们故意这样做,确实告诉你一些事情,就像Catcall提到的 - 并且你想确保它是正确和完整的。经CASS认证的供应商可以提供这项服务,而且我认为最容易/最实惠的供应商是LiveAddress。

没有正确的表达方式可以做到这一点,甚至USPS API也有其主要缺点/局限性,尽管它具有权威性(例如,它的传递能力并不总是很清楚)。

当您验证任何输入,即使是地址,其有效性也会建立用户的信任,以便他们知道您关心他们与您的交互。

相关问题