Re: Sending a variable without it being seen

From: Date: Wed, 17 Apr 2002 14:07:57 +0000
Subject: Re: Sending a variable without it being seen
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-93326@lists.php.net to get a copy of this message
this is better: <?php function postHTMLLink( $name, $formular= array() ) { ?> <script language="javascript"> foreach( $formular as $key => $value ) {?> arr_formular['<? echo $key; ?>'] = '<? echo $value; ?>'; <? }?> </script> <a href="javascript:postHTML(arr_formular)"><?php echo $name; ?></a> <script language="javascript"> arr_formular = Array; </script> <? } ?> and the example should look like: <?php $array = array (0 => "myform", 1 => "http://www.myworld.com", 2 => "_top", "testvar1" => 1, "testvar2" => 2); postHTMLLink("Example", $array); ?> this will generate this: // start output <script language="javascript"> arr_formular['0'] = 'myform'; arr_formular['1'] = 'http://www.myworld.com'; arr_formular['2'] = '_top'; arr_formular['testvar1'] = '1'; arr_formulat['testvar2'] = '2'; </script> <a href="javascript:postHTML(arr_formular);">Example</a> <script language="javascript"> arr_formular = Array; </script> // end output and you have to make sure, that arr_formular is defined in javascript one time: so this. > <script language="javascript"> > function postHTML(arr_formular) should be: <script language="javascript"> arr_formular = new Array; function postHTML(arr_formular) regards Michael "Michael Virnstein" <michael.virnstein@brodos.de> schrieb im Newsbeitrag news:20020417131114.51565.qmail@pb1.pair.com... > variables get passed via URL when you use the GET Method. > You can use POST to do it as you like, but this won't work with > HTML-Links, only with forms. > if you want this feature with html-links, then you can workaround it (will > work in IE, not tested any further): > 1. place this code somewhere in your html: > <div id="secretforumlar"></div> > 2. place this javascript into your html: > <script language="javascript"> > function postHTML(arr_formular) > { > var secform = "<form name=\"" + arr_formular[0] + "\" > method=\"POST\" > action=\"" + arr_formular[1] + "\" target=\"" + arr_formular[2] + > "\">\n"; > for( var key in arr_formular) > { > if(key != 0 && key != 1 && key != 2) > { > secform = secform + "<input type=\"hidden\" name=\"" + key > + "\" > value=\"" + arr_formular[key] + "\">"; > } > } > secform = secform + "<\/form>"; > document.all.secretformular.innerHTML = secform; > var formularname = arr_formular[0]; > document.forms[formularname].submit(); > } > > </script> > > this will generate a formular named secretformular in <div > id="secretformular"></div> and submit it via POST > > 3. now all you have to do is creating a html link like > <a href="javascript:postHTML(arr_formular);">link</a> > > arr_formular has to be an array with your form fields. > arr_formular[0]: name attribute of the form > arr_formular[1]: action attribute of the form > arr_formular[2]: target attribute of the form > > you can use this php function to generate the link with the expected > variable array "arr_formular": > <?php > function postHTMLLink( $name, $formular= array() ) > {?> > <script language="javascript"> > foreach( $formular as $key => $value ) > {?> > arr_formular['<? echo $key; ?>'] = '<? echo $value; ?>'; > <? }?> > </script> > <? > > return "<a > href=\"javascript:postHTML(arr_formular)\">".$name."</a>"; > } > > <? > > ex.: > <?php > $array = array (0 => "myform", > 1 => "http://www.myworld.com",áòFû'ÿUk > ¢ØQ‹ > 2 => "_top", > "testvar1" => 1, > "testvar2" => 2); > > echo postHTMLLink("Example", $array); > > ?> > > will generatethe link: <a > href="javascript:postHTMLLink(arr_formular);">Example</a> > > Regards Michael > > "Kevin Meredith" <kevin@atom.co.za> schrieb im Newsbeitrag > news:PBEOICBNJKIPCKFGEDKGAEHHCKAA.kevin@atom.co.za... > > Hi. > > Is there any way variables can be sent without them being seen? > > > > I am trying to set a session variable from data that is pulled from MySql. > > I have 2 frames open , the first frame has the options available which > when > > selected sends the variable info and opens a page in the second frame. > This > > page then registers the variable showing the selection. > > > > I am currently sending the info like "pagename.php?variable=what > > target=frame" > > > > The links are generated from info in MySql and therefore I have not > managed > > to send the info in a form using hidden fields. The main reason for this > is > > security. Users should not know what variables are being passed or > needed. > > > > Thanks > > Kevin > > > >

« previous php.general (#93326) next »