2012-03-03 198 views
1

我有這個代碼塊的一些奇怪的問題,這是一個小學校項目,目前進展順利,但底部的表單沒有返回任何發佈數據。 var_dump($ _ POST);從不顯示從此特定表單提交的任何發佈數據。POST數據不發送

我只是無法理解爲什麼,一直在掙扎這麼久。

下面是代碼,我不明白在這個頁面上的格式,每行添加4個縮進似乎有點乏味。

<?php session_start(); 
require_once'user.class.php'; 
require_once 'posts.class.php'; 
require_once'comments.class.php'; 
$posts = new Posts($user->getID(), $db); 
$comment = new Comments($user->getID(), $db); 

include_once'includes/header.php'; 
include_once'includes/nav.php'; 
?> 

<h2><br></h2> 
<?php 
include_once'includes/intro.php'; 

// CONTENT 
$post = $posts->showPost($_GET['id']); 
$title = $post['title']; 
$content = $post['content']; 
$created = $post['timestamp']; 

echo "<section> <article class='blogPost'> <header> " . " <h2>$title</h2> " . "<p> Posted on $created <a href ='#comments'> X comments</a></p></header>" . "<p>$content</p>" . "</article> </section>"; 

var_dump($_POST); 

if (isset($_POST['submit_comment']) && isset($_POST['id_comment'])) { 
    echo "Kom seg inn i ifen"; 
    $pid = $_GET['id']; 
    $comment->newComment ($db, $user->getID(), $pid, $_POST['id_comment']); 
    header ("location: showPost.php?id=$pid"); 
    exit(); 
} 
?> 

<form name='commentform' action='showPost.php?id=<?php echo $_GET['id'];?>' method='POST'> 
<h3>Post a comment</h3> 
<p> 
<label for='id_comment'>Comment</label> 
<textarea name='id_comment' id='id_comment' required></textarea> 
</p> 
<p><input style='width: 100%;' type='submit' name='submit_comment' value='Legg til kommentar' /></p> 
</form> 

<?php 
include_once'includes/asidefooter.php'; 
?> 

感謝您的幫助!

+1

存在這樣會自動縮進代碼段4位編輯了「代碼示例」按鈕。 – 2012-03-03 16:41:10

回答

1

看起來好像post是數據存在,用戶被重定向。您只會在提交表單時看到發佈數據,重定向會導致另一個頁面加載,數據將不再存在。

你能看到的數據後,如果您註釋掉重定向,以:

//header ("location: showPost.php?id=$pid"); 
//exit(); 
+0

事實上,當我刪除這兩條線時,它確實有效,不知道爲什麼我有他們。但我從未觸發過的if語句中有回聲。所以即時通訊仍然不知道爲什麼header()運行。謝謝! – Snowflow 2012-03-03 17:05:06

0

有些東西導致重定向,它將請求轉變爲GET。如果你想提交給index.php,那麼不要忘記結尾的斜槓。

+0

我註釋掉了「header(」location:showPost.php?id = $ pid「);」 但是爲什麼會因爲它在if? – Snowflow 2012-03-03 16:56:07