Question on $_POST , does it persist?

hi,

I am a little confused on $_POST.

I basically have a form that submits a $_POST value , and calling another php page.
Later, in a completely different php page, i'd like to reuse the $_POST that was submitted earlier, and I find that it isnt available to me.

The php.net states that its a superglobal. But it looks to me like it disappears as soon as I navigate away from the page, unlike $_SESSION. Is this true?
NeverEndingFlashStoriesAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
käµfm³d 👽Connect With a Mentor Commented:
You need to get a basic understanding of how HTTP works, then you'll understand why you are seeing this behavior. Ray Paseur has an introductory article on the topic:

http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/A_11271-Understanding-Client-Server-Protocols-and-Web-Applications.html

The short of it is that you post to the server only exists on the server for that one request. Once the request is processed, there is no reason to keep that information. If you need to persist that information, then you move to session state--or for the hardcore, a database.

Session is used to persist information across requests.

His session article may be useful also:

http://www.experts-exchange.com/Programming/Languages/Scripting/PHP/A_11909-PHP-Sessions-Simpler-Than-You-May-Think.html
0
 
Phil PhillipsConnect With a Mentor Director of DevOps & Quality AssuranceCommented:
The $_POST variable gets whatever data is in the POST request submitted by using the form.  That data is only available to the page that receives the POST request.

You can copy the $_POST data to the session to save that information for future requests.
0
 
gr8gonzoConnect With a Mentor ConsultantCommented:
A superglobal is just a variable that can be accessed from within the scope of a function without having to explicitly bring it in. For example:

$not_a_superglobal = "foo";
$_POST["something"] = "bar";

function show_scope()
{
  echo $_POST["something"]; // shows "bar"
  echo $not_a_superglobal; // Undefined variable

  global $not_a_superglobal; // Brings it into the scope
  echo $not_a_superglobal; // "foo"  
}

In short, $_POST does not persist across pages. Only $_SESSION persists.
0
 
käµfm³d 👽Connect With a Mentor Commented:
The term superglobals just means that those particular variables can be accessed from within anywhere inside of your application. It does not imply that they persist data  in any such way.
0
 
NeverEndingFlashStoriesAuthor Commented:
Whoa, I blinked, and 4 comments popped up :). Thanks everyone, it confirmed what i expected - i was wondering if i had an error in my syntax.
0
All Courses

From novice to tech pro — start learning today.