Modify $_POST

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View
Hello folks,

Ive seen lots of recommendations to not try to do what Im trying to do
but let me put it this way and hopefully someone can tell if this is a
good idea or not (or an alternative).

What Im trying to do is this. I have a series of links that when
clicked will navigate to a common page passing in a value encoded in
the link. For reasons not worth going into I cant use a querystring.

I was hoping to call a javascript function from the onclick event of
the link, then assign a new $_POST variable and then submit the form
(hence enabling me to read the $_POST value from the receiving page.

Im aware that I could do the same thing with a $_SESSION but as this is
the last stage of this app and I havent had to use sessions yet I was
hoping to avoid it (for no real reason admittedly - I just got
interested in the solution above as an idea).

I hope this is clear.

Simon Rigby

Re: Modify $_POST

Simon Rigby wrote:
Quoted text here. Click to load it

And what happens if the user has javascript disabled?

Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.

Re: Modify $_POST

It fails .. but this is an intranet and Javascript is enabled by
company policy as the intranet makes heavy use of javascript already.

Sorry I should stated that :)

Jerry Stuckle wrote:
Quoted text here. Click to load it

Re: Modify $_POST

Simon Rigby wrote:

Quoted text here. Click to load it

Hi Simon,

I don't think your solution works always.
Look at your demands:
1) No GET encoded information.
2) No Session

So only POST (and COOKIE) remains to pass info around.

Both COOKIE and POST must be populated using Javascript (from a client  
browsers viewpoint), and like Jerry said: that can be disabled.

I don't think you can solve this without using GET encoded info, or  
demanding the visitor has JS enabled.

A more optimistic note: Learn SESSIONs, you will use them in almost any  
mature webapp. So it is time well invested.

Best of luck,

Erwin Moller

Re: Modify $_POST

Thanks Erwin,

Im not really explaining myself properly. I do understand sessions and
use them regularly and I have no  real aversion to using them in this
case, I suppose I just got interested in whether what I proposed was
possible. In short can I declare a post variable that is passed with a
form submission manually instead of it being the result of a form
variable. I did go on to think that I could set the value of a hidden
form <INPUT> based on the value passed from the link.

And as I replied to Jerry, Javascript is available in this instance.

Many thannks for your help, and please dont think Im trying to be
difficult, just wondering if this is possible as opposed to do best
practice etc.


Erwin Moller wrote:
Quoted text here. Click to load it

Re: Modify $_POST

Quoted text here. Click to load it

So in other words, you'd like to post a form on the click of a link, and  
submit a certain value, if I understood your explanation. What would you say  
of the following "workaround": change your <a href> to a form:
<form action="reciever.php" class="pseudolink" method="POST">
<input type="submit"/>
<input type="hidden" name="var" value="val"/>

and attatch a stylesheet that'll camouflage your form into a harmless  
looking link:
<style type="text/css">
.pseudolink {
.pseudolink input {

I'm just one of the people who wish to avoid javascript whenever it is  
possible. I think there's a chance here to do so with the code above. Of  
course there will be n+1 forms on the page, I dunno if that's nice then...  
Call this the alternative then if you will.

"Ohjelmoija  on  organismi  joka  muuttaa  kofeiinia  koodiksi" - lpk - Satunnaisesti pivittyv nettisarjis || Gedoon-S @ IRCnet || rot13(xvzzb@bhgbyrzcv.arg)  

Re: Modify $_POST

Simon Rigby wrote:

Quoted text here. Click to load it

You probably mean assign a hidden variable, which will then come back as a
$_POST variable, yes?

Your HTML might be:

  <input type="hidden" name="the_variable" value="">

  <a href="SetAndPost('x')">Click here for X</a>
  <a href="SetAndPost('y')">Click here for Y</a>


This code assumes you write a routine called "SetAndPost" that sets the
value of the hidden variable and then submits the form.

Kenneth Downs
Secure Data Software, Inc.

Re: Modify $_POST

Thanks folks for all your feedback. I do like the idea of the CSS
styled form elements.

Thanks all it seems that there are a number of possible solutions all
of which are better that my original idea.

Thanks again.


Re: Modify $_POST

Simon Rigby wrote:
Quoted text here. Click to load it

I think people are getting too hung up on the Javascript question and
missed the main issue. The problem with your approach is that it breaks
a number of browser features. Open ing a link in a new window/tab will
not work. Bookmarking will not work. Page saving will not work
correctly. Pressing the back and refresh buttons will bring up warning

The end-user experience is what matters, not a programmer's preference
for doing things.

Site Timeline