Codeigniter 未解码电子邮件地址
Codeigniter is not decoding email address
我通过 ajax 提交给控制者的表单发送我的电子邮件地址,ajax 的数据由此函数创建:
// Function "serializeToJson" - Serialize form data, merge new object and returns json object
function serializeToJson(element, newObj){
// Serialize form and split into Json Object
var data = element.serialize().split("&");
var object = {};
for(var key in data){
object[data[key].split("=")[0]] = data[key].split("=")[1];
}
// Merge new json obj to existing json object
const target = {};
$.extend(target, newObj, object);
// return the final json object
return target;
}
在我的 ajax
data : serializeToJson(SUform, {action:'process_signup'}),
通过表单发送的电子邮件正在进行 urlencode,即
xxxxxxxxxx%40gmail.com
当我在控制器中接收数据时,%40 应该被解码为 @。
在我的控制器中,我为电子邮件设置了以下表单验证规则:
$this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email|is_unique[users.email]');
错误:
The Email field must contain a valid email address
我想要什么?
有什么方法可以在表单验证中对电子邮件进行 urldecode 吗?
您可以使用:
trim|urldecode|valid_email
它应该像文档所说的那样工作,您可以将任何 php 函数用作 "rule" 并且它将适用。
当你将它放入数据库时,你仍然需要再次urldecode
它。
我通过 ajax 提交给控制者的表单发送我的电子邮件地址,ajax 的数据由此函数创建:
// Function "serializeToJson" - Serialize form data, merge new object and returns json object
function serializeToJson(element, newObj){
// Serialize form and split into Json Object
var data = element.serialize().split("&");
var object = {};
for(var key in data){
object[data[key].split("=")[0]] = data[key].split("=")[1];
}
// Merge new json obj to existing json object
const target = {};
$.extend(target, newObj, object);
// return the final json object
return target;
}
在我的 ajax
data : serializeToJson(SUform, {action:'process_signup'}),
通过表单发送的电子邮件正在进行 urlencode,即
xxxxxxxxxx%40gmail.com
当我在控制器中接收数据时,%40 应该被解码为 @。 在我的控制器中,我为电子邮件设置了以下表单验证规则:
$this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email|is_unique[users.email]');
错误:
The Email field must contain a valid email address
我想要什么?
有什么方法可以在表单验证中对电子邮件进行 urldecode 吗?
您可以使用:
trim|urldecode|valid_email
它应该像文档所说的那样工作,您可以将任何 php 函数用作 "rule" 并且它将适用。
当你将它放入数据库时,你仍然需要再次urldecode
它。