2015-02-23 124 views
-1

我有一個表格應該將對論壇主題的回覆輸入到數據庫中,並將用戶重定向回同一主題。經過多次試驗和錯誤,我終於獲得了表格,但每次只將兩個相同的條目放入數據庫。我無法弄清楚爲什麼。我查了這個相同的問題,大多數其他人在表單提交後沒有重定向,或者他們使用AJAX或jQuery或其他東西。這是我的頁面信息:php表單提交信息兩次

<?php 
session_start(); 
include_once('includes/config.php'); 
include_once('classes/topic.php'); 
include_once('classes/post.php'); 
include('includes/header.php'); 

?> 

<link rel="stylesheet" href="css/dd.css"> 

<?php 

$topic = new Topic; 

if (isset($_GET['id'])) 
{ 
    $topic_id = $_GET['id']; 
    $data = $topic->fetch_data($topic_id); 

     if (isset($_POST['content'])) 
     { 
     // someone posted a reply 
     $date = date('Y-m-d H:i:s'); 
     $by = $_SESSION['user_id']; 
     $query = $pdo->prepare("INSERT INTO dd_posts (post_content, post_date, post_by, post_topic) VALUES (? ,? ,?, ?)"); 

     $query->bindParam(1, $_POST['content']); 
     $query->bindParam(2, $date); 
     $query->bindParam(3, $by); 
     $query->bindParam(4, $_GET['id']); 

     $query->execute(); 
     $result = $query->execute(); 

     header("location:topic.php?id=".$_GET['id']); 
     exit; 
     }  
?> 
    <div id ="wrapper"> 
     <div class="drop-section"> 
      <div id="menu"> 
       <a class="item" href="drop_index.php">Dead Drop</a> 
       <a class="item" href="add_topic.php">New Post</a> 
       <a class="item" href="admin/add_cat.php">New Category</a> 
       <div id="userbar"> 
        <?php 
         if($user->is_logged_in()) { 
          echo 'Hello ' . $_SESSION['user_name'] . '. How are you?'; 
         } else { 
          echo '<a class="item" href="login.php">Sign in</a> or <a class="item" href="index.php">Create an account</a>'; 
         } 
        ?> 
       </div> 
      </div> 
      <table> 
       <tr class = "header-row"> 
        <div id = "sans"> 
         <?php echo $data['topic_subject']; ?> 
          - <small>started by <a href="player.php?id=<?php echo $data['user_id']; ?>"><?php echo $data['user_name']; ?>        </a></small><br /> 
         <?php echo $data['topic_content']; ?> 
        </div> 
       </tr> 

<?php 
// retrieve all the replies to the original topic 
$post = new Post; 
$topic_id = $_GET['id']; 
$posts = $post->fetch_all_posts_by_topic($topic_id); 

?> 
       <tr> 
        <td class="first-column"> 

         <?php foreach ($posts as $post) { ?> 

         <div class="drop-content-box"> 

          <li><?php echo $post['post_content']; ?><br /> 
           <div class = "forum-user-info"> 
            <a href="player.php?id=<?php echo $post['user_id']; ?>"> 
            <?php echo $post['user_name']; ?></a> - level: 
            <?php echo $post['user_level']; ?> 

           </div> 
          </li> 
         </div> 

         <?php } ?> 

        </td> 
       </tr> 
      </table> 

<?php 
     if($user->is_logged_in()) 
     { 

      ?>  
       <div id = "header-section">Reply</div> 
         <?php if (isset($error)) { ?> 
          <small><?php echo $error; ?></small> 
         <?php } ?> 

         <form action="<?php echo "topic.php?id=".$_GET['id']?>" method="post" autocomplete="off"> 
          <small><i>Do not post the actual answer to any level.</i></small><br /> 
         <textarea rows="15" cols="50" name="content" placeholder="Give us your thoughts..."></textarea><br /> 
         <input type="submit" value="Post" /> 
         </form> 
     </div> 
</div> 
<?php 
     } else { 
       echo '<div id = "errors"><small>You must be signed in to reply.</div></small>'; 
     } 
} 

include_once('includes/footer.php'); 
?> 

回答

0

您正在執行查詢兩次。

$query->execute(); 
$result = $query->execute(); 
+0

我懷疑我會發現,謝謝。我正在尋找一些其他代碼的想法,並忘記刪除該部分。 – ddonche 2015-02-23 06:01:08