代码之家  ›  专栏  ›  技术社区  ›  SL5net

未定义索引:在第一个基本示例中使用

  •  0
  • SL5net  · 技术社区  · 5 年前

    在使用wp nonce字段的第一步中,我尝试了 https://developer.wordpress.org/reference/functions/wp_nonce_field/

    上面写着:“省略所有参数的最简单实现”

    我写道:

    function hi_in_wp_head() {
        ?>
        <form name="f1">
            <input name="i1" value="hi_in_wp_head">
            <input type="submit" name="s1">
            <?php wp_nonce_field('name_of_your_action', 'name_of_your_nonce_field'); ?>
        </form>
        <?php
        if(wp_verify_nonce($_REQUEST['name_of_your_nonce_field'], 'name_of_your_action')){
            // Nonce is matched and valid. do whatever you want now.
        } else {
            // Invalid nonce. you can throw an error here.
            die("ups 19-02-28_17-09");
        }
    
    }
    function hi_in_footer() {
        echo '<h1>hi_in_footer</h1>';
    }
    

    完整来源: https://gist.github.com/f9f0a853f0a71c5a2055b88802a1010c

    在web浏览器中如下所示:

    <meta name="generator" content="WordPress 5.0.3" />
        <form name="f1">
            <input name="i1" value="hi_in_wp_head">
            <input type="submit" name="s1">
            <input type="hidden" id="name_of_your_nonce_field" name="name_of_your_nonce_field" value="5a82357118" /><input type="hidden" name="_wp_http_referer" value="/wordpress/alecaddd-plugin.php" />    </form>
        <br />
    <b>Notice</b>:  Undefined index: name_of_your_nonce_field in <b>G:\Bitnami\wordpress-5.0.3-2\apps\wordpress\htdocs\wp-content\plugins\alecaddd-plugin\alecaddd-plugin.php</b> on line <b>89</b><br />
    ups 19-02-28_17-09
    

    未定义索引:在第一个基本示例中使用

    我不知道错误是从哪里来的。我能做什么?

    0 回复  |  直到 5 年前
        1
  •  1
  •   cabrerahector    5 年前

    如错误消息所述, $_REQUEST['name_of_your_nonce_field'] 未设置。使用前,您需要确保已设置:

    function hi_in_wp_head() {
    
        ?>
        <form name="f1">
            <input name="i1" value="hi_in_wp_head">
            <input type="submit" name="s1">
            <?php wp_nonce_field('name_of_your_action', 'name_of_your_nonce_field'); ?>
        </form>
        <?php
        if(isset($_REQUEST['name_of_your_nonce_field']) {
            if(wp_verify_nonce($_REQUEST['name_of_your_nonce_field'], 'name_of_your_action')){
                // Nonce is matched and valid. do whatever you want now.
            } else {
                // Invalid nonce. you can throw an error here.
                die("ups 19-02-28_17-09");
            }
        }
    
    }
    

    $\u请求['name\u of \u your\u nonce\u field'] 将设置 之后 你的表格已经提交了。所以你需要额外的支票。