无法修改标头信息-标头已发送

时间:2018-11-13 作者:Limpuls

因此,我在一页上有一个表单,它正在提交给admin-post.php, 然后在函数中有一个函数。正在处理表单的php。它将输入字段数据存储到数据库中,然后将用户重定向到另一个页面。它将信息存储在数据库中,但不重定向。问题是它说

无法修改标题信息-标题已发送

代码:

<form action="<?php echo esc_url( admin_url(\'admin-post.php\') ); ?>" method="post">
        <input id="user_name" type="text" name="yourname" placeholder="Name" class="form-control">
        <input id="user_email" type="text" name="email" placeholder="Email" class="form-control">
        <button id="button" type="button" name="submit">Go</button>
        <input type="submit" value="submit" name="submit" class="btn btn-success">
        <input type="hidden" name="action" value="login_form">
        </form>
功能。php

function prefix_send_email_to_admin() {
    /**
     * At this point, $_GET/$_POST variable are available
     *
     * We can do our normal processing here
     */

    // Sanitize the POST field
    // Generate email content
    // Send to appropriate email
        function my_print_error(){

            global $wpdb;

            if($wpdb->last_error !== \'\') :

                $str   = htmlspecialchars( $wpdb->last_result, ENT_QUOTES );
                $query = htmlspecialchars( $wpdb->last_query, ENT_QUOTES );

                print "<div id=\'error\'>
                <p class=\'wpdberror\'><strong>WordPress database error:</strong> [$str]<br />
                <code>$query</code></p>
                </div>";

            endif;

        }
            if (isset($_POST[\'submit\'])) {
                global $wpdb;

                $wpdb->show_errors();

                $table = \'username\';
                $data = array(
                    \'name\' => $_POST[\'yourname\']
                );

                $success=$wpdb->insert( $table, $data );

                if($success){
                    echo \'data has been save\' ;
                                wp_redirect("http://example.design/projects/webdev/wordpress_nepal/");

                                exit;
                }
                else {
                    my_print_error();
                }

            }
    //  wp_redirect("http://example.design/projects/webdev/wordpress_nepal/");

}
add_action( \'wp_loaded\', \'prefix_send_email_to_admin\' );
我两个都试过了,wp_loaded 谷歌搜索和我的原创admin_post_nopriv_login_form 但这没有帮助。

1 个回复
SO网友:Lincoln Lemos

您应该使用template_redirect 操作而不是wp_loaded. 这是一个很好的练习adddie(); 之后wp_redirect()

结束

相关推荐

如何检查你是否在Widget.php页面上?

我正在尝试编写一个小部件,我需要将颜色选择器添加到我的小部件表单中。我只想在widget上添加脚本。php页面,而不是所有的管理页面。有没有一种方法可以在我的小部件的构造函数中检测页面?如果不是的话,我怎样才能在我使用widget时包含脚本。php页面?