我正在通过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]');
错误:
电子邮件字段必须包含有效的电子邮件地址
我想要什么?
有什么方法可以对表单验证中的电子邮件进行url解码?
答案 0 :(得分:1)
您可以使用:
trim|urldecode|valid_email
它应该像文档中所说的那样起作用,您可以将任何php函数用作“规则”,并且将适用。
当您将其放入数据库时,仍然必须再次urldecode
。