加载页面时,只读输入文本显示为未锁定

时间:2013-05-21 作者:Enoque

我需要一个在Wordpress的配置文件页面中锁定编辑文本类型输入的代码帮助。

我添加了以下代码:

(function(){
    $("#email").attr("readonly","readonly");
});
但当页面加载时,该字段显示为解锁状态,如果用户按“Esc”,页面加载将停止,他可以编辑该字段。

有没有办法避免这种情况?

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

通过Javascript或PHP生成或硬编码标记的任何方式将输入设置为“只读”,安全值为零。用FireBug或Web Developer扩展来移除“锁”是很简单的,我相信其他人也一样。你所做的充其量只是表面上的。

如果要防止用户的电子邮件地址被更改,则必须使用(可能是personal_options_update 和/或edit_user_profile_update 钩住并强制电子邮件与数据库中已有的内容保持一致。类似这样:

function lock_user_email_wpse_100146($userid) {
  $user = get_userdata($userid);
  if (isset($_POST[\'email\'])) {
    $_POST[\'email\'] = $user->user_email;
  }
}
add_action(\'personal_options_update\',\'lock_user_email_wpse_100146\');
我提醒您不要这样做,因为这会阻止用户更改他们的电子邮件地址,而且人们确实会更改电子邮件地址。如果您这样做,而某人更改了地址,则此人将无法再重置其密码。这是一件很不友好的事。

结束