Javascript 需要密码才能在wordpress上注册

Javascript 需要密码才能在wordpress上注册,javascript,wordpress,passwords,Javascript,Wordpress,Passwords,我在wordpress上有一个站点,我需要在注册表上输入一个密码,如果用户没有这个密码,他就无法注册,我想在触发onsubmit事件时使用js函数,但这似乎不是最好的方法 var chave='the_key'; 有效值函数{ var chaveForm=document.getElementById'chave'; ifchaveForm==chave{ 返回true; } 警报“错误消息”; 返回false; } 需要指出的是,您的密钥\u密钥不安全。任何拥有现代web浏览器的人都可以轻松

我在wordpress上有一个站点,我需要在注册表上输入一个密码,如果用户没有这个密码,他就无法注册,我想在触发onsubmit事件时使用js函数,但这似乎不是最好的方法

var chave='the_key'; 有效值函数{ var chaveForm=document.getElementById'chave'; ifchaveForm==chave{ 返回true; } 警报“错误消息”; 返回false;
} 需要指出的是,您的密钥\u密钥不安全。任何拥有现代web浏览器的人都可以轻松访问网页上运行的客户端脚本,并查看您的密钥。除此之外,无论您的检查代码如何,其他人都可以轻松提交表单。永远不要相信客户!在服务器端执行此验证,就像在PHP中一样


考虑到这一点,您可以使用document.getElementById'chave.value访问元素的值,假设它是一个,您不能用JavaScript实现它,因为用户可以看到它。因为这是一个WordPress站点,所以你必须用PHP实现它

怎么做

您可以创建表单,然后在表单中添加一个字段来处理此问题。然后,当您提交表单时,服务器端的php脚本会将该值与存储在服务器上的值进行比较,并返回基于该值的响应。chave的值可以存储为常量固定值,也可以继续保存


希望我没弄错。

与我推荐的插件相结合,请使用这些函数/钩子允许用户也选择自己的密码,您可以将它们放在您的themes function.php中:

// ALLOW USERS TO CHOOSE PASSWORD
function show_extra_register_fields(){
?>
    <br />
    <p>
        <label for="password">Password**<br/>
        <input id="password" class="input" type="password" tabindex="30" size="25" value="" name="password" />
        </label>
    </p>
    <p>
        <label for="repeat_password">Repeat password**<br/>
        <input id="repeat_password" class="input" type="password" tabindex="40" size="25" value="" name="repeat_password" />
        </label>
    </p>
<?php
}
add_action( 'register_form', 'show_extra_register_fields' );

// CHECK FORMS FOR ERROR
function check_extra_register_fields($login, $email, $errors) {
    if ( $_POST['password'] !== $_POST['repeat_password'] ) {
        $errors->add( 'passwords_not_matched', "<strong>ERROR</strong>: Passwords must match" );
    }
    if ( strlen( $_POST['password'] ) < 6 ) {
        $errors->add( 'password_too_short', "<strong>ERROR</strong>: Passwords must be at least six characters long" );
    }
}
add_action( 'register_post', 'check_extra_register_fields', 10, 3 );

// STORE USER SELECTED PASSWORD TO DATABASE
function register_extra_fields( $user_id ){
    $userdata = array();
    $userdata['ID'] = $user_id;
    if ( $_POST['password'] !== '' ) {
        $userdata['user_pass'] = $_POST['password'];
    }
    $new_user_id = wp_update_user( $userdata );
}
add_action( 'user_register', 'register_extra_fields', 100 );

基于变量名和逻辑,chaveForm永远不会等于chave。getElementById不返回字符串,它返回一个元素对象。PHP标记在这里似乎不相关。我成功地使用了这个插件:只需将密码视为邀请码。@Peter我选择了你的插件,但注册表formwp默认值不显示密码输入,但当我查看sql时,用户获得了通过。你知道什么是默认通行证吗?嗨,马修斯,请看下面我的答案。如果对您有效,请将其标记为已解决。