2012-02-18 2 views
0

아래의 * 코드이 있는데, 페이지를 새로 고침 할 때마다 양식을 다시 보내달라고 요청합니다. 어떻게하면 페이지를 새로 고침 할 때 양식을 다시 보내지 않으려는지 피할 수 있습니다. 미리 감사드립니다.페이지 새로 고침을 반복해서 요청하십시오.

* CODE 양식 데이터를 처리하고 데이터베이스에 저장되거나 어떤 방식으로 함께 작업 한 후

<?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">Question 01</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'); 
?> 

답변

1

사용하여 같은 페이지 다시로드 :

header("location: thispage.php"); 

수행을 그러면 POST 데이터가 파괴되고 다시 제출 경고를 표시하지 않고 페이지를 새로 고칠 수 있습니다.

+0

add_action 바로 뒤에 시도했지만이 오류가 발생합니다. 헤더 정보를 수정할 수 없습니다 - 이미 보낸 헤더 –

+0

헤더를 보내기 전에 브라우저에 아무 것도 보내지 않았는지 확인해야합니다. 이상적으로는 페이지 상단에서 양식이 제출되었는지 확인해야합니다. 그렇다면 데이터를 저장하고 헤더를 보냅니다. 그 후에 페이지 내용을 표시 할 수 있습니다. – creatvepro

관련 문제