Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 169
  • Last Modified:

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?
0
NeverEndingFlashStories
Asked:
NeverEndingFlashStories
4 Solutions
 
Phil PhillipsDirector 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
 
käµfm³d 👽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
 
gr8gonzoConsultantCommented:
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 👽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
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now