2012-02-17 44 views
7

PHP重定向用POST數據PHP數據傳遞與重定向

嗨,

我是新手PHP程序員,並試圖編寫一個小博客。

我將解釋我正在嘗試做什麼。

  • page1.php中:有在博客中所有文章的表
  • 使page2.php:這個頁面有一個表單,您可以添加一個帖子

第2名發送到自身,然後處理數據,如果成功,則使用header()將其重定向回到顯示該表的page1。

現在我想要做的是能夠在表格上方的第1頁上發出一條小消息,說您的博客文章已成功提交,但我不確定如何在數據傳遞後將數據傳回第1頁表格處理。

回答

9

將其設置爲$_SESSION的值。

在第2頁

$_SESSION['message'] = "Post successfully posted."; 

在第1頁:

if(isset($_SESSION['message'])){ 
    echo $_SESSION['message']; // display the message 
    unset($_SESSION['message']); // clear the value so that it doesn't display again 
} 

確保你在這兩個腳本的頂部有session_start()

編輯:在if(isset($_SESSION['message']){

+0

感謝這個添:) – 2012-02-17 00:16:16

4

一個經典的方式來解決這個問題錯過)是使用cookie或會議; PHP具有與會話的創建和管理協助一個內置的會話庫:

http://www.php.net/manual/en/book.session.php

這裏是一個簡潔的例子:

session_start(); 

    if (isset($_SESSION['message'])) { 
     echo '<div>' . $_SESSION['message'] . '</div>'; 
     unset($_SESSION['message']); 
    } 

頁2

session_start(); 

    // Process POST data 

    $_SESSION['message'] = 'Hello World'; 

    // Redirect to Page 1 
+0

您需要添加'unset'到您的網頁1,否則該消息將顯示每次(見我以前的回答) – Tim 2012-02-17 00:13:15

+0

感謝這個克里斯:) – 2012-02-17 00:16:38

4

您也可以將變量添加到標題位置,然後從頁面調用它。

header('Location: http://example.com?message=Success'); 

那麼無論你想顯示的消息,只是做:

if (isset($_GET['message'])) {  
    echo $_GET['message']; 
} 
+0

感謝這:) – 2012-02-17 00:16:49