21. April 2011
von Blackbam

Today we have been searching for an easy and fast way to store and reuse $_POST variables over 2 pages and more without using a session. This can save you a lot of work in some cases. This possiblity is completly browser based, so there is no need for the server to re-identify a user.


Save $_POST or some other array to a hidden field by converting it to the JSON-format. Use URL-encode to make sure that there will be no encoding problems.


<form method="post" action="">
<input type='hidden' name='post_saver' value='<?php echo urlencode(json_encode($_POST)); ?>' />
</form>

Decode the hidden-fields' value on the server-side. Replace the $_POST variables depending on your needs or take the new ones.


// We save previous POST values in the 'post_saver', to provide page navigation and so on
if(strlen($_POST['post_saver'])>0) {

 $previous_post_object = json_decode(urldecode($_POST['post_saver']));
 unset($_POST['post_saver']);
 
 foreach($previous_post_object as $pkey=>$pval) {
  if(strlen($_POST[$pkey]) <= 0) {
   $_POST[$pkey] = $pval;
  }
 }
}
Share

Dieser Eintrag wurde am 21. April 2011 um 22:22 in der Kategorie PHP, Web Development veröffentlicht. You can book the comments for this article RSS 2.0. Feedback, discussion, commendation and critics are welcome: Write a comment or trackback.


Tags: , , ,

No comments yet

Kommentare abonnieren (RSS) or URL Trackback

Leave a comment: