Solved

Question on $_POST , does it persist?

Posted on 2015-01-27
5
161 Views
Last Modified: 2015-01-27
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
Comment
5 Comments
 
LVL 13

Assisted Solution

by:Phil Phillips
Phil Phillips earned 125 total points
ID: 40574040
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
 
LVL 75

Accepted Solution

by:
käµfm³d   👽 earned 250 total points
ID: 40574042
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
 
LVL 34

Assisted Solution

by:gr8gonzo
gr8gonzo earned 125 total points
ID: 40574044
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
 
LVL 75

Assisted Solution

by:käµfm³d 👽
käµfm³d   👽 earned 250 total points
ID: 40574048
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
 

Author Closing Comment

by:NeverEndingFlashStories
ID: 40574054
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

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

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.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Generating table dynamically is the most common issue faced by php developers.... So it seems there is a need of an article that explains the basic concept of generating tables dynamically. It just requires a basic knowledge of html and little maths…
Things That Drive Us Nuts Have you noticed the use of the reCaptcha feature at EE and other web sites?  It wants you to read and retype something that looks like this.Insanity!  It's not EE's fault - that's just the way reCaptcha works.  But it is …
The viewer will learn how to dynamically set the form action using jQuery.
The viewer will learn how to count occurrences of each item in an array.

820 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question