Попытка остановить повторную отправку страницы при обновлении - PullRequest
0 голосов
/ 18 февраля 2012

У меня есть следующий код.Я пытаюсь предотвратить повторную отправку моей страницы формы после обновления страницы с заголовком ("location: location.php");Однако я получаю сообщение об ошибке перечислено ниже

Ошибка

Warning: Cannot modify header information - headers already sent by (output started at /Users/anderskitson/Sites/fiftyfity/wp-content/themes/fiftyfityNew/contact-form copy.php:7) in /Users/anderskitson/Sites/fiftyfity/wp-content/themes/fiftyfityNew/contact-form copy.php on line 68

Код

<?php
/*
Template Name: form-test.php
*/
?>

<?php include_once( ABSPATH . 'wp-admin/includes/plugin.php' ); ?>
<?  include_once(ABSPATH. 'wp-content/themes/fiftyfityNew/contact-form.php'); ?>


<?php
/**
 * The template for displaying all pages.
 *
 * This is the template that displays all pages by default.
 * Please note that this is the wordpress construct of pages
 * and that other 'pages' on your wordpress site will use a
 * different template.
 *
 * @package WordPress
 * @subpackage Starkers
 * @since Starkers 3.0
 */

get_header(); ?>

<script>
var i=0;
function test(){

for(i=0;i<=5;i++){
    document.write( "the number is" + i);
}
}
</script>
<script>
test();
</script>

<?php function make_user_feedback_form() {
    global $wpdb;
    global $current_user;


        $ufUserID = $current_user->ID;

        if ( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] ) && $_POST['action'] == 'updateFeedback' ) {
            $ufDataUpdate = $wpdb->insert( 'wp_user_feedback', array( 'date' => current_time('mysql'), 'responses' => $_POST["test"]) );
        }
        }?>
    <div id="form">
    <ol>
        <form method="post">
            <li><label for="test">Pick a date Babe:</label><input type="text" id="datepicker" name="test" value="" /></li> <!-- the (name="test") value is what the ('responses' => $_POST["test"]) value is talking too -->

            <li><input name="submit" type="submit" id="submit" class="submit button" value="Send feedback" /></li>
            <?php wp_nonce_field( 'updateFeedback' ); ?>
            <input name="action" type="hidden" id="action" value="updateFeedback" />
        </form>
    </ol>
    </div>
    <?php 


add_action('the_content','make_user_feedback_form');


header("location: http://localhost:8888/fiftyfity/?page_id=90");


?>


<?php 
make_user_feedback_form();
?>




<?php get_sidebar(); ?>
<?php get_footer(); ?>

1 Ответ

0 голосов
/ 18 февраля 2012

Проблема в том, что один из включаемых вами скриптов отправляет заголовки до того, как WordPress получит такую ​​возможность, или из-за пустых строк между вашим include_once и оператором get_header веб-сервер сам отправляет заголовки по умолчанию. .

Итак, измените первые несколько строк так, чтобы они выглядели так (т.е. удалите лишние теги открытия / закрытия PHP):

<?php
/*
Template Name: form-test.php
*/

include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
include_once(ABSPATH. 'wp-content/themes/fiftyfityNew/contact-form.php');

/**
 * The template for displaying all pages.
 *
 * This is the template that displays all pages by default.
 * Please note that this is the wordpress construct of pages
 * and that other 'pages' on your wordpress site will use a
 * different template.
 *
 * @package WordPress
 * @subpackage Starkers
 * @since Starkers 3.0
 */

get_header(); ?>

Также проверьте включенные файлы для любого вывода данных, header() вызовов или подобных смежных открывающих / закрывающих тегов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...