Re: Sending a variable without it being seen
| From: | Michael Virnstein | 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
> >
>
>