IS_Email()与Sanitize_Email()

时间:2014-09-15 作者:user54141

如果我允许用户输入要保存到数据库中的电子邮件地址,我应该使用is_email()sanitize_email()?

例如:。

update_user_meta( $user_id, $social_site, sanitize_email( $_POST[$user_input] ) );

1 个回复
最合适的回答,由SO网友:Waylon Fourie 整理而成

is_email() 将获取提供的字符串(电子邮件地址)并对其进行检查,以确保它确实是电子邮件地址,并且字符串中没有非法字符。它不会更改您提供的字符串中的任何内容,而是返回true 如果字符串通过所有函数检查,或false 如果没有。

这个sanitize_email() 将获取提供的字符串并去掉电子邮件地址中不允许的任何字符,并仅返回允许的字符。

因此,如果您有一个字符串需要是电子邮件,如:user"[email protected]

is_email() 将返回false 因为字符串包含电子邮件地址中不允许的字符。

sanitize_email() 将返回[email protected]

如果你user"[email protected] 首先通过sanitize_email() 函数,然后通过is_email() 然后返回的函数true 在这种情况下,将从字符串中删除所有无效字符,这将允许字符串通过is_email() 检查。

我建议使用这两种方法,is_email()首先检查用户是否提交了正确的电子邮件地址,然后再将任何内容提交到数据库中,检查是否确实安全,方法是在脚本的最新可能点运行sanitize_email()函数。

结束

相关推荐

Esc_html__security:在本例中用于什么?

如何esc_html__ (第二个)保护$message 被黑客攻击的变量?在这里使用这种保护有什么意义(第二种是纯文本保护)?<?php function unknown(){ /* If the user input any text, escape it. */ if ( !empty ( $_POST[\'unknown\'] ) ) $message = esc_html ( $_POST[\'unknow