繁体   English   中英

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;
}

在我的阿贾克斯

data : serializeToJson(SUform, {action:'process_signup'}),

通过表格发送的电子邮件已经被urlencoded,即

XXXXXXXXXX%40gmail.com

当我在控制器中收到数据时, %40应该解码为@ 在我的控制器中,我为电子邮件设置了以下表单验证规则:

$this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email|is_unique[users.email]');

错误:

电子邮件字段必须包含有效的电子邮件地址

我想要的是?

有什么方法可以对表单验证中的电子邮件进行url解码?

您可以使用:

trim|urldecode|valid_email

它应该像文档所说的那样工作,您可以将任何php函数用作“规则”,它将适用。

当您将其放入数据库时​​,仍然需要再次对其进行urldecode

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM