2012-02-17 54 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