Mth*_*eti 4 email zend-framework magento
当我尝试在我正在开发的 magento 商店上注册电子邮件时,我遇到了我以前从未见过的错误:
"Email" is not a valid hostname
does not appear to be a valid local network name
appears to be a DNS hostname but cannot match TLD against known list magento
Run Code Online (Sandbox Code Playgroud)
当我进行研究时,我发现这些错误是由 Zend 主机名验证引起的。
是否有可能解决这些问题或根本没有解决方案
我遇到了同样的错误:
"Email" is not a valid hostname.
'example.example' appears to be a DNS hostname but cannot match TLD against known list
'example.example' appears to be a local network name but local network names are not allowed
Run Code Online (Sandbox Code Playgroud)
从 Magento 1 来看,Zend 似乎正在使用 Tlds 的硬编码列表:
/**
* Array of valid top-level-domains
*
* @see ftp://data.iana.org/TLD/tlds-alpha-by-domain.txt List of all TLDs by domain
* @see http://www.iana.org/domains/root/db/ Official list of supported TLDs
* @var array
*/
protected $_validTlds = array(
'ac', 'ad', 'ae', 'aero', 'af', 'ag', 'ai', 'al', 'am', 'an', 'ao', 'aq', 'ar', 'arpa',
[...]
'ye', 'yt', 'yu', 'za', 'zm', 'zw'
);
Run Code Online (Sandbox Code Playgroud)
所以,有一些选择:
对于选项 2,我们可以对以下文件执行安全升级,或查看选项 3添加$validator->getHostnameValidator()->setValidateTld(false);
,从 复制它:
/lib/Zend/Validate/Hostname.php
到 :
/app/code/local/Zend/Validate/Hostname.php
然后寻找这块代码,只注释三行:
if (!in_array($this->_tld, $this->_validTlds)) {
// $this->_error(self::UNKNOWN_TLD);
// $status = false;
// break;
}
Run Code Online (Sandbox Code Playgroud)
对于选项 3,我们可以对以下文件执行安全升级,从以下位置复制它:
app/code/core/Mage/Eav/Model/Attribute/Data/Abstract.php
到 :
/app/code/local/Mage/Eav/Model/Attribute/Data/Abstract.php
然后替换此代码:
$validator = new Zend_Validate_EmailAddress();
Run Code Online (Sandbox Code Playgroud)
经过 :
// 1. we check mx record
$validator = new Zend_Validate_EmailAddress(
array(
'allow' => Zend_Validate_Hostname::ALLOW_DNS,
'mx' => true
)
);
// 2. we remove TLD validation :
$validator->getHostnameValidator()->setValidateTld(false);
Run Code Online (Sandbox Code Playgroud)
不要忘记查找Zend_Validate_EmailAddress
可以在社区或自定义扩展中使用的类的每个调用(例如:onestepcheckout)。
归档时间: |
|
查看次数: |
5158 次 |
最近记录: |