How to POST / GET params with '+' char inside ?
|
2020-02-11, 15:36
(This post was last modified: 2020-02-12 01:34 by alhyene.)
Post: #1
|
|||
|
|||
How to POST / GET params with '+' char inside ?
Hi, first sorry for the previous twice posting which were not working, may because the forum seem to be a little down at that times.
I'm trying to store some parameters on webserver which I can retrieve later in a script form, but can't get the '+' sign to be send / retrieve. #!ipxe set data_1:string some+thing set data_2:uristring some+thing params --name mydata param --params mydata data_1 ${data_1} param --params mydata data_2 ${data_2} imgfetch http://webserver/conf.php##params=mydata || echo can't POST //imgfetch http://webserver/conf.php?data_1=some+thing || echo can't GET conf.php file from webserver : <?php $myfile = fopen("/var/www/html/mydata", "wb") or die("Unable to open file!"); fwrite($myfile, "#!ipxe\n"); //foreach ($_GET as $key => $value){ foreach ($_POST as $key => $value){ $txt = "set " . $key . "\t" . $value . "\n"; fwrite($myfile, $txt); } fclose($myfile); ?> result of mydata file : #!ipxe set data_1 some thing set data_2 some thing I need this for URL like : https://cloudfront.debian.net/cdimage/un...onfree.iso Any ideas ? |
|||
2020-02-13, 10:21
Post: #2
|
|||
|
|||
RE: How to POST / GET params with '+' char inside ?
Don't know the exact answer, but I think this approach should work. The hex value for ASCII "+" is 2B.
As noted there, if it doesn't work, echo the URL in iPXE. |
|||
2020-02-15, 22:01
(This post was last modified: 2020-02-15 22:23 by alhyene.)
Post: #3
|
|||
|
|||
RE: How to POST / GET params with '+' char inside ?
thx for reply, I tried it.
set plus:hex 2b set plus ${plus:string} set myURL some${plus}thing params --name mydata param --params mydata data_1 ${myURL} etc... unfortunaly don't work. Is this "bug" come from iPXE or webserver / php5 side ? but if I try : params --name mydata param --params mydata data_1 some${plus}thing etc... I got : some_thing and not : some+thing params --name mydata param --params mydata data_1 some+thing etc... the same (some_thing) |
|||
2020-02-17, 00:33
Post: #4
|
|||
|
|||
RE: How to POST / GET params with '+' char inside ?
Did you try echoing ${myURL}? Perhaps I misunderstood the problem - if it's the params features causing the issue, perhaps you can use standard URL encoding, and request some%2Bthing instead of some+thing?
|
|||
2020-02-18, 14:47
Post: #5
|
|||
|
|||
RE: How to POST / GET params with '+' char inside ?
Hi, yes I tried substitute with %2B like :
param --mydata data_1 some%2Bthing , with no luck... I tried both POST & GET methods with same results. I tried GET method by the browser and work as expected, eg : http://127.0.0.1/conf.php?data=some%2Bthing mydata file : some+thing Then I think it's an iPXE issue. But I made an ugly and dirty hack to make it works by using base64 encoding, eg : #!ipxe set data_1:string some+thing set data_2..... params --name mydata param --params mydata data_1 ${data_1:base64} param --params mydata data_2..... imgfetch http://webserver/conf.php##params=mydata || echo can't POST conf.php file from webserver : <?php $myfile = fopen("/var/www/html/mydata", "wb") or die("Unable to open file!"); fwrite($myfile, "#!ipxe\n"); foreach ($_POST as $key => $value){ $txt = "set " . $key . "\t" . base64_decode($value) . "\n"; fwrite($myfile, $txt); } fclose($myfile); ?> result of mydata file : #!ipxe set data_1 some+thing set data_2..... |
|||
« Next Oldest | Next Newest »
|
User(s) browsing this thread: 1 Guest(s)