我无法保存表单中的数据

时间:2014-01-26 作者:jnbdz

由于某些原因,我无法保存表单中的数据:

add_action( \'admin_menu\', \'example_menu_settings\' );

/** Step 1. */
function example_menu_settings() {
    add_options_page( \'example Plugin Options\', \'example\', \'manage_options\', \'example-settings\', \'example_plugin_options\' );
    add_action( \'admin_init\', \'register_example_settings\' );
}

/** Step 3. */
function example_plugin_options() {
    if ( !current_user_can( \'manage_options\' ) )  {
        wp_die( __( \'You do not have sufficient permissions to access this page.\' ) );
    }

    $client_id = get_option(\'example_client_id\', \'\');
    $secret = get_option(\'example_secret\', \'\');

    echo \'<div class="wrap">
      <h2>example Plugin Settings</h2>
      <br><br>
        <form method="post" action="options.php">\';
        settings_fields( \'example-settings-group\' );
        do_settings_sections( \'example-settings-group\' );
        echo \'<input type="hidden" name="option_page" value="general"><input type="hidden" name="action" value="update"><input type="hidden" id="_wpnonce" name="_wpnonce" value="103f63adef"><input type="hidden" name="_wp_http_referer" value="/example-Blog/wp-admin/options-general.php">
          <table class="form-table">
            <tbody>
            <tr valign="top">
            <th scope="row"><label for="example_client_id">Client ID</label></th>
            <td><input name="example_client_id" type="text" id="example_client_id" value="\' . $client_id . \'" class="regular-text">
            </td>
            </tr>
            <tr valign="top">
            <th scope="row"><label for="example_secret">Secret</label></th>
            <td><input name="example_secret" type="text" id="example_secret" value="\' . $secret . \'" class="regular-text">
            </td>
            </tr>
            <tr><td colspan="2" class="description" style="padding: 25px 0 10px 0;">Your keys is found inside your <a href="https://example.com/user" target="_blank">example account settings</a>.</td>
            </tr>
            </tbody>
          </table>
          <br>
            <button id="example-test-connection" class="button">Test connection</button>\';
            echo submit_button();
        echo \'</form>
      </div>\';
}

function register_example_settings() { // whitelist options
  register_setting( \'example-settings-group\', \'example_client_id\' );
  register_setting( \'example-settings-group\', \'example_secret\' );
}
以下是我得到的错误:

Are you sure you want to do this?

Please try again.
这是/wp admin/选项。php页面。

我做错了什么?

1 个回复
最合适的回答,由SO网友:Jörn Lund 整理而成

有一个名为_wpnonce 在表单中,包括硬编码值,以及另一个名为_wp_http_referrer. 你最好把这些拿走settings_fields() 生成它们。(它应该已经这样做了)。

结束

相关推荐

Hide gravity forms

我在我的网站上设置了重力表单,我想根据用户是否已在表单/数据库中发布条目来隐藏/显示表单。如果他们做了一个条目,那么我想隐藏它并显示一些简单的文本。我知道重力形式允许你限制参赛人数,但这并不是我想要的。我猜我必须查询数据库,但我不确定最好的编写方法。我是否需要使用诸如get\\u posts之类的工具来检查作者是否有条目?这是最好的方式吗?