Wordpress ajax表单nonce失败

Wordpress ajax表单nonce失败,ajax,wordpress,nonce,Ajax,Wordpress,Nonce,我在Wordpress中有一个电子邮件表单,我正在使用ajax来处理它 我正在表单中创建一个nonce,并在发送电子邮件之前进行检查 nonce失败,但输出显示它是相同的nonce 相似代码: 电子邮件表单 <form class="email-form" role="form"> <div class="form-group"> <label>Full Name</label>

我在Wordpress中有一个电子邮件表单,我正在使用ajax来处理它

我正在表单中创建一个nonce,并在发送电子邮件之前进行检查

nonce失败,但输出显示它是相同的nonce

相似代码:

电子邮件表单

    <form class="email-form" role="form">

        <div class="form-group">
            <label>Full Name</label>    
            <input type="text" class="email-name input-lg"/>
        </div>

        <div class="form-group">
            <label>Email</label>    
            <input type="text" class="email-email input-lg"/>
        </div>

        <input type="hidden" name="ajax-nonce" id="ajax-nonce" value="' <?php echo wp_create_nonce( 'email-nonce' ); ?>'" />

        <div class="form-group email-submit">
            <button class="btn-green email-submit">Send</button>
        </div>

    </form>
Functions.php

    add_action( 'wp_enqueue_scripts', 'add_my_script' );

    function add_my_script() {
      wp_enqueue_script('scripts',get_template_directory_uri() . '/js/compiled/main.min.js', array('jquery'));
      //
      wp_localize_script( 'scripts', 'TheAjax', array( 
        'ajaxurl' => admin_url( 'admin-ajax.php' )
      ));
    }


    add_action( 'wp_ajax_nopriv_classajax-submit', 'classajax_submit' );
    add_action( 'wp_ajax_classajax-submit', 'classajax_submit' );

    function classajax_submit() {

        $nonce = stripslashes($_POST['nonce']);

        echo 'nonce in php ' . $nonce; 

        if ( ! wp_verify_nonce( $nonce, 'email-nonce' ) ) {
            die ('Email Busted!');


        }else{



        }
    }   

首先,您不需要创建隐藏字段。使用此选项,它将自动创建隐藏字段

<?php wp_nonce_field( 'your_action', 'put_name' ); ?>

在检查
if(wp\u verify\u nonce($\u POST['put\u name'],'your\u action'))时

尝试此操作

首先,您不需要创建隐藏字段。使用此操作,它将自动创建隐藏字段

<?php wp_nonce_field( 'your_action', 'put_name' ); ?>

在检查
if(wp\u verify\u nonce($\u POST['put\u name'],'your\u action'))时

试试这个

你可以使用check\u ajax\u referer,文档中有一个例子:

你可以使用check\u ajax\u referer,文档中有一个例子:

尝试用nonce追加当前字符串,这样您就不会再次得到相同的nonce。请用nonce追加当前字符串,这样您就不会再次得到相同的nonce。现在,它可以在本地使用wp_nonce_字段和我遇到的一些打字错误。我现在的问题是它无法在实时服务器上工作。在实时服务器上,我收到“电子邮件被破坏”,这是当wp\u验证\u nonce失败时。你想说它在其他条件下验证失败吗?我现在让它在本地与wp\u nonce\u字段一起工作,并且我有一些打字错误。我现在的问题是它无法在实时服务器上工作。在实时服务器上,我收到“电子邮件被破坏”,这是当wp\u verify\u nonce失败时,你想说它在其他条件下进行验证失败吗?