On Apr =25, 2019, at 4:31 PM, Stuart Tremain <webdna@plsoftware.com.au> wrote:Hi MichaelTom wrote a JSON parser =some time back that I have used with good success.You may be able to have a fiddle with this to get your =solution to work.[!]------------------- Pass json as JSONRESULT =-----------------[/!][!]------------------- =Conversion table to strip non-breaking spaces =-----------------[/!][table =name=3DjsonClean&fields=3Dfrom,to]%C2=%A0[/table][!]------------------- =Conversion table to facilitate spliting into key:value pairs =-----------------[/!][table =name=3DjsonSplitConversions&fields=3Dfrom,to]|=~~~~\"^^^^[/table][!]------------------- Convert =back after spliting into key:value pairs -----------------[/!][table =name=3DjsonSplitConversionsBack&fields=3Dfrom,to]"=~~~~|^^^^="[/table][!]------------------- pass one - run the conversions =-----------------[/!][text]JSONRESULT=3D[convertword=s table=3DjsonSplitConversions][convertchars =table=3DjsonClean][JSONRESULT][/convertchars][/convertwords][/text]<=div class=3D"">[!]------------------- pass two - add bar to just before =each key:value pair -----------------[/!][text]JSONRESULT=3D[grep =search=3D("[^"]*"):&replace=3D|\1=3D][JSONRESULT][/grep][/text]<=div class=3D"">[!]------------------- pass three - list out the =key:value pairs and assign them to text variables =-----------------[/!][listwords =words=3D[url][JSONRESULT][/url]&delimiters=3D|{}][!]=[/!][text]THISVAL=3D[grep search=3D(,$)&replace=3D][getchars =start=3D1&trim=3Dboth][convertwords =table=3DjsonSplitConversionsBack][word][/convertwords][/getchars][/grep][/=text][!][/!][hideif =[url][THISVAL][/url]=3D][!]=[/!][text]JSON-[THISVAL][/text][!]=[/!][/hideif][!][/!][/listwords][!]------------------------------------------[/!][SHOWIF [DEBUG]=3DT][!]=[/!][listvariables name=3Djson-&exact=3DF][name] =3D =[value]<br>[/listvariables][!][/!][/SHOWIF]---------------------------------------------------------This message is sent to you because you are subscribed tothe mailing list talk@webdna.usTo unsubscribe, E-mail to: talk-leave@webdna.usarchives: http://www.webdna.us/page.dna?numero=3D55Bug Reporting: support@webdna.usOn 26 Apr 2019, at 09:24, Michael Davis <admin@network13.net>= wrote:Thanks Stuart / =Tom,More fun with =this...Adding =a ? alone for me didn't work, but putting a value after it kicked things =into gear.curl -H ="Accept: application/json" -H "Content-type: application/json" -X POST =-d '{"userName":"dim@witted.net","password":"mybirthday"}' http://localhost/wtve_auth.dna?jsonThis ends up reversing =the order so the contents of the JSON post are the NAME of the =formvariable and the VALUE of the formvariable is "json".Interesting things =happen when parsing though...[FormVariables =name=3D&exact=3DF][jsonstore =table=3DjsonOject][name][/jsonstore][search =table=3DjsonOject&neuserNamedata=3D[blank]&max=3D1][founditems][returnraw]HTTP/1.0 200 OK[eol]Status: =200[eol]Content-Type: application/json[eol][eol][!][/!]{"userName":"[userName]","password":"[password]"}[!]<=div class=3D"">[/!][/returnraw][/founditems][/search][/FormVariables]That code works and spits back out the same json using the =stored values. So far so good.However, when the password value in the =json object contains an ampersand, it breaks the whole thing.I've tried various combinations of [url]'ing and am coming up =with none that work.You can't URL the incoming JSON. JSONStore can't parse =it.Any =suggestions? I had no idea I was going to get stuck on such a =simple task for so long, lol. Boo.Also, on a side note, you cannot use =[listfields] on the magic table that JSONStore creates.MD---------------------------------------------------------This message is sent to you because you are subscribed tothe mailing list talk@webdna.usTo unsubscribe, E-mail to: talk-leave@webdna.usarchives: http://www.webdna.us/page.dna?numero=3D55Bug Reporting: support@webdna.usOn Apr 25, 2019, at 2:44 PM, Stuart Tremain =<webdna@plsoftware.com.au> wrote:Nice idea :)---------------------------------------------------------This message is sent to you because you are subscribed tothe mailing list talk@webdna.usTo unsubscribe, E-mail to: talk-leave@webdna.usarchives: http://www.webdna.us/page.dna?numero=3D55Bug Reporting: support@webdna.usOn 25 Apr 2019, at 22:30, Tom Duke <tom@revolutionaries.ie> wrote:Stuart / Michael,Hi - it works on my CMS, but wouldn't =work on a standard WebDNA template.So had a deeper look at it. I =route all traffic through a single template using modrewrite, I then add =some apache server variables.So if you do something like =this:.htaccessRewriteEngine =OnRewriteRule ^jsonpost/(.+)$ =/json-post.tmpl?dummyName=3D [L]json-post.tmplFormVariables:[formvariables][name][/formvariables]Then =set your webhook / receiving URL toYou'll see the data. Looks like =you have to add at least one name:value pair. Not sure if this is =an apache thing or a WebDNA thing, I suspect the latter.- Tom=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D==3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D==3D=3D
Digital Revolutionaries
1st Floor, =Castleriver House
14-15 Parliament Street
Temple Bar,Dublin 2
Ireland
----------------------------------------------
[t]: + 353 1 4403907
[e]: <mailto:tom@revolutionaries.ie>
[w]: <http://www.revolutionaries.ie/>
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D==3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=On Thu, 25 Apr 2019 at 12:51, Stuart Tremain <webdna@plsoftware.com.au> wrote:Hi =Michael---------------------------------------------------------This message is sent to you because you are subscribed tothe mailing list talk@webdna.usTo unsubscribe, E-mail to: talk-leave@webdna.usarchives: http://www.webdna.us/page.dna?numero=3D55Bug Reporting: support@webdna.usAre you able =to specify the url to which the JSON needs to be posted ?I just tried putting a ? =at the end of the url eg: /test.html?[SHELL]curl -X POST -H "Content-Type: =application/json" -d '{"userName":"dim@witted.net","password":"mybirthday"}'= -k https://plsoftware.com.au/test.html?[/SHELL]Then putting this on =your receiving page you will get the JSON string---------------------------------------------------------This message is sent to you because you are subscribed tothe mailing list talk@webdna.usTo unsubscribe, E-mail to: talk-leave@webdna.usarchives: http://www.webdna.us/page.dna?numero=3D55=Bug Reporting: support@webdna.us[FormVariables =name=3D&exact=3DF][NAME]<br>[/FormVariables]Try the example above.And =thanks to Tom for sparking a memory of a discussion I had with someone a =while ago about WebDNA not accepting a form value without a =name.In this case by using the ? the name =becomes the value with no value passed.Tom, you may be getting it to work on =an older version =E2=80=A6 what are you using ?On 25 Apr 2019, at 16:44, Michael Davis <admin@network13.net> wrote:Thanks Stuart,Unfortunately, the solution can't be changing the way the =post is done. That's the way it is coming from the service that's =sending it. I see where adding a name=3Dvalue pair in your post =example causes WebDNA to find the FormVariable. It is possible =FormVariables is ignoring any header that doesn't have a value for =name. Good question for Christophe.MD---------------------------------------------------------This message is sent to you because you are subscribed tothe mailing list talk@webdna.usTo unsubscribe, E-mail to: talk-leave@webdna.usarchives: http://www.webdna.us/page.dna?numero=3D55=Bug Reporting: support@webdna.usOn Apr =24, 2019, at 8:23 PM, Stuart Tremain <webdna@plsoftware.com.au> wrote:I =tested this on a linux server:[SHELL]curl -k POST https://plsoftware.com.au/test.html -d =userinfo=3D'{"userName":"dim@witted.net","password":"mybirthday=E2=80=9D}'[/SHELL]=div>---------------------------------------------------------This message is sent to you because you are subscribed tothe mailing list talk@webdna.usTo unsubscribe, E-mail to: talk-leave@webdna.usarchives: http://www.webdna.us/page.dna?numero=3D55=Bug Reporting: support@webdna.usResult:However, this may be a better solution =for you as you will not have to parse the JSON:[SHELL]curl -k POST https://plsoftware.com.au/test.html -d username=3Ddim@witted.net -d password=3Dmybirthday =[/SHELL]on =the test.html page:FormVariables<br>[FormVariables name=3D&exact=3DF][name] =3D =[value]<br>[/FormVariables]Note that I have =declared each variable as a separate -dThe -k means for curl to ignore ssl =errors.Make =sure that your http://localhost/json_auth.dna is =able to deal with the WebDNA.On 25 Apr 2019, at 02:28, Michael Davis <admin@network13.net> wrote:---------------------------------------------------------This message is sent to you because you are subscribed tothe mailing list talk@webdna.usTo unsubscribe, E-mail to: talk-leave@webdna.usarchives: http://www.webdna.us/page.dna?numero=3D55=Bug Reporting: support@webdna.usStuart,
To avoid any browser =specific issues, I'm writing the [FormVariables] output to a file and =then opening the file with a text editor.
[WriteFile file=3D[cart].txt][FormVariables][name] =3D =[value]
[/FormVariables][/WriteFile]
MD
April 23, 2019 =11:04 PM, "Stuart Tremain" <webdna@plsoftware.com.au> wrote:
=Have you have a look at the source code of the resulting page =?Sometimes, depending on the =browser, it does not display on the rendered page.=--------------------------------------------------------- This message =is sent to you because you are subscribed to the mailing list talk@webdna.us To unsubscribe, E-mail =to: talk-leave@webdna.us archives: http://www.webdna.us/page.dna?numero=3D55 Bug Reporting: =support@webdna.us =
On 24 Apr 2019, at 15:55, Michael Davis =<admin@network13.net> wrote:=--------------------------------------------------------- =This message is sent to you because you are subscribed to the mailing =list talk@webdna.us To unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.us/page.dna?numero=3D55 Bug Reporting: =support@webdna.usStuart,
Sorry, that was a =typo/mistake on my part. I was using [FormVariables], not =[ListVariables]. Nothing in the results. I've tested on FCGI and Server =versions.
MD
April 23, 2019 6:44 PM, "Stuart Tremain" =<webdna@plsoftware.com.au> wrote:Try=--------------------------------------------------------- This message =is sent to you because you are subscribed to the mailing list talk@webdna.us To unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.us/page.dna?numero=3D55 Bug Reporting: =support@webdna.us[FormVariables name=3D&exact=3DF][name] ==3D [value]<br>[/FormVariables]ListVariables will only list TEXT vars etc.=On 24 Apr 2019, at =11:03, Michael Davis <admin@network13.net> wrote:=Hi All,--------------------------------------------------------- This =message is sent to you because you are subscribed to the mailing list talk@webdna.us To unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.us/page.dna?numero=3D55 Bug Reporting: =support@webdna.usI'm trying to =receive JSON via a post and not seeing anything in form variables or =mime headers. As a test, I post using curl like so:curl -X =POST -H "Content-Type: application/json" -d '{"userName":"dim@witted.net","password":"mybirthday"}' http://localhost/json_auth.dnaOn the =receiving WebDNA template:=[ListVariables][name]=3D[value][/ListVariables][ListMIMEHeaders][name]=3D[value][/ListMIMEHeaders]I get a list of the usual MIME Headers, none include the =JSON. LIstVariables returns nothing.Any way to see this data in WebDNA?MD=
=
|
On Apr =25, 2019, at 4:31 PM, Stuart Tremain <webdna@plsoftware.com.au> wrote:Hi MichaelTom wrote a JSON parser =some time back that I have used with good success.You may be able to have a fiddle with this to get your =solution to work.[!]------------------- Pass json as JSONRESULT =-----------------[/!][!]------------------- =Conversion table to strip non-breaking spaces =-----------------[/!][table =name=3DjsonClean&fields=3Dfrom,to]%C2=%A0[/table][!]------------------- =Conversion table to facilitate spliting into key:value pairs =-----------------[/!][table =name=3DjsonSplitConversions&fields=3Dfrom,to]|=~~~~\"^^^^[/table][!]------------------- Convert =back after spliting into key:value pairs -----------------[/!][table =name=3DjsonSplitConversionsBack&fields=3Dfrom,to]"=~~~~|^^^^="[/table][!]------------------- pass one - run the conversions =-----------------[/!][text]JSONRESULT=3D[convertword=s table=3DjsonSplitConversions][convertchars =table=3DjsonClean][JSONRESULT][/convertchars][/convertwords][/text]<=div class=3D"">[!]------------------- pass two - add bar to just before =each key:value pair -----------------[/!][text]JSONRESULT=3D[grep =search=3D("[^"]*"):&replace=3D|\1=3D][JSONRESULT][/grep][/text]<=div class=3D"">[!]------------------- pass three - list out the =key:value pairs and assign them to text variables =-----------------[/!]=[/!][text]THISVAL=3D[grep search=3D(,$)&replace=3D][getchars =start=3D1&trim=3Dboth][convertwords =table=3DjsonSplitConversionsBack][word][/convertwords][/getchars][/grep][/=text][!]=[/!][/hideif][!][/!][/listwords][!]------------------------------------------[/!][SHOWIF [DEBUG]=3DT][!]=[/!][listvariables name=3Djson-&exact=3DF][name] =3D =[value]<br>[/listvariables][!][/!][/SHOWIF]---------------------------------------------------------This message is sent to you because you are subscribed tothe mailing list talk@webdna.usTo unsubscribe, E-mail to: talk-leave@webdna.usarchives: http://www.webdna.us/page.dna?numero=3D55Bug Reporting: support@webdna.usOn 26 Apr 2019, at 09:24, Michael Davis <admin@network13.net>= wrote:Thanks Stuart / =Tom,More fun with =this...Adding =a ? alone for me didn't work, but putting a value after it kicked things =into gear.curl -H ="Accept: application/json" -H "Content-type: application/json" -X POST =-d '{"userName":"dim@witted.net","password":"mybirthday"}' http://localhost/wtve_auth.dna?jsonThis ends up reversing =the order so the contents of the JSON post are the NAME of the =formvariable and the VALUE of the formvariable is "json".Interesting things =happen when parsing though...[FormVariables =name=3D&exact=3DF][jsonstore =table=3DjsonOject][name][/jsonstore][search =table=3DjsonOject&neuserNamedata=3D[blank]&max=3D1][founditems][returnraw]HTTP/1.0 200 OK[eol]Status: =200[eol]Content-Type: application/json[eol][eol][!]<=div class=3D"">[/!][/returnraw][/founditems][/search][/FormVariables]That code works and spits back out the same json using the =stored values. So far so good.However, when the password value in the =json object contains an ampersand, it breaks the whole thing.I've tried various combinations of [url]'ing and am coming up =with none that work.You can't URL the incoming JSON. JSONStore can't parse =it.Any =suggestions? I had no idea I was going to get stuck on such a =simple task for so long, lol. Boo.Also, on a side note, you cannot use =[listfields] on the magic table that JSONStore creates.MD---------------------------------------------------------This message is sent to you because you are subscribed tothe mailing list talk@webdna.usTo unsubscribe, E-mail to: talk-leave@webdna.usarchives: http://www.webdna.us/page.dna?numero=3D55Bug Reporting: support@webdna.usOn Apr 25, 2019, at 2:44 PM, Stuart Tremain =<webdna@plsoftware.com.au> wrote:Nice idea :)---------------------------------------------------------This message is sent to you because you are subscribed tothe mailing list talk@webdna.usTo unsubscribe, E-mail to: talk-leave@webdna.usarchives: http://www.webdna.us/page.dna?numero=3D55Bug Reporting: support@webdna.usOn 25 Apr 2019, at 22:30, Tom Duke <tom@revolutionaries.ie> wrote:Stuart / Michael,Hi - it works on my CMS, but wouldn't =work on a standard WebDNA template.So had a deeper look at it. I =route all traffic through a single template using modrewrite, I then add =some apache server variables.So if you do something like =this:.htaccessRewriteEngine =OnRewriteRule ^jsonpost/(.+)$ =/json-post.tmpl?dummyName=3D [L]json-post.tmplFormVariables:[formvariables][name][/formvariables]Then =set your webhook / receiving URL toYou'll see the data. Looks like =you have to add at least one name:value pair. Not sure if this is =an apache thing or a WebDNA thing, I suspect the latter.- Tom=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D==3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D==3D=3D
Digital Revolutionaries
1st Floor, =Castleriver House
14-15 Parliament Street
Temple Bar,Dublin 2
Ireland
----------------------------------------------
[t]: + 353 1 4403907
[e]: <mailto:tom@revolutionaries.ie>
[w]: <http://www.revolutionaries.ie/>
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D==3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=On Thu, 25 Apr 2019 at 12:51, Stuart Tremain <webdna@plsoftware.com.au> wrote:Hi =Michael---------------------------------------------------------This message is sent to you because you are subscribed tothe mailing list talk@webdna.usTo unsubscribe, E-mail to: talk-leave@webdna.usarchives: http://www.webdna.us/page.dna?numero=3D55Bug Reporting: support@webdna.usAre you able =to specify the url to which the JSON needs to be posted ?I just tried putting a ? =at the end of the url eg: /test.html?[shell]curl -X POST -H "Content-Type: =application/json" -d '{"userName":"dim@witted.net","password":"mybirthday"}'= -k https://plsoftware.com.au/test.html?[/SHELL]Then putting this on =your receiving page you will get the JSON string---------------------------------------------------------This message is sent to you because you are subscribed tothe mailing list talk@webdna.usTo unsubscribe, E-mail to: talk-leave@webdna.usarchives: http://www.webdna.us/page.dna?numero=3D55=Bug Reporting: support@webdna.us[FormVariables =name=3D&exact=3DF][NAME]<br>[/FormVariables]Try the example above.And =thanks to Tom for sparking a memory of a discussion I had with someone a =while ago about WebDNA not accepting a form value without a =name.In this case by using the ? the name =becomes the value with no value passed.Tom, you may be getting it to work on =an older version =E2=80=A6 what are you using ?On 25 Apr 2019, at 16:44, Michael Davis <admin@network13.net> wrote:Thanks Stuart,Unfortunately, the solution can't be changing the way the =post is done. That's the way it is coming from the service that's =sending it. I see where adding a name=3Dvalue pair in your post =example causes WebDNA to find the FormVariable. It is possible =FormVariables is ignoring any header that doesn't have a value for =name. Good question for Christophe.MD---------------------------------------------------------This message is sent to you because you are subscribed tothe mailing list talk@webdna.usTo unsubscribe, E-mail to: talk-leave@webdna.usarchives: http://www.webdna.us/page.dna?numero=3D55=Bug Reporting: support@webdna.usOn Apr =24, 2019, at 8:23 PM, Stuart Tremain <webdna@plsoftware.com.au> wrote:I =tested this on a linux server:[shell]curl -k POST https://plsoftware.com.au/test.html -d =userinfo=3D'{"userName":"dim@witted.net","password":"mybirthday=E2=80=9D}'[/SHELL]=div>---------------------------------------------------------This message is sent to you because you are subscribed tothe mailing list talk@webdna.usTo unsubscribe, E-mail to: talk-leave@webdna.usarchives: http://www.webdna.us/page.dna?numero=3D55=Bug Reporting: support@webdna.usResult:However, this may be a better solution =for you as you will not have to parse the JSON:[shell]curl -k POST https://plsoftware.com.au/test.html -d username=3Ddim@witted.net -d password=3Dmybirthday =[/SHELL]on =the test.html page:FormVariables<br>[FormVariables name=3D&exact=3DF][name] =3D =[value]<br>[/FormVariables]Note that I have =declared each variable as a separate -dThe -k means for curl to ignore ssl =errors.Make =sure that your http://localhost/json_auth.dna is =able to deal with the WebDNA.On 25 Apr 2019, at 02:28, Michael Davis <admin@network13.net> wrote:---------------------------------------------------------This message is sent to you because you are subscribed tothe mailing list talk@webdna.usTo unsubscribe, E-mail to: talk-leave@webdna.usarchives: http://www.webdna.us/page.dna?numero=3D55=Bug Reporting: support@webdna.usStuart,
To avoid any browser =specific issues, I'm writing the [formvariables] output to a file and =then opening the file with a text editor.
[WriteFile file=3D[cart].txt][formvariables][name] =3D =[value]
[/FormVariables][/WriteFile]
MD
April 23, 2019 =11:04 PM, "Stuart Tremain" <webdna@plsoftware.com.au> wrote:
=Have you have a look at the source code of the resulting page =?Sometimes, depending on the =browser, it does not display on the rendered page.=--------------------------------------------------------- This message =is sent to you because you are subscribed to the mailing list talk@webdna.us To unsubscribe, E-mail =to: talk-leave@webdna.us archives: http://www.webdna.us/page.dna?numero=3D55 Bug Reporting: =support@webdna.us =
On 24 Apr 2019, at 15:55, Michael Davis =<admin@network13.net> wrote:=--------------------------------------------------------- =This message is sent to you because you are subscribed to the mailing =list talk@webdna.us To unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.us/page.dna?numero=3D55 Bug Reporting: =support@webdna.usStuart,
Sorry, that was a =typo/mistake on my part. I was using [formvariables], not =[listvariables]. Nothing in the results. I've tested on FCGI and Server =versions.
MD
April 23, 2019 6:44 PM, "Stuart Tremain" =<webdna@plsoftware.com.au> wrote:Try=--------------------------------------------------------- This message =is sent to you because you are subscribed to the mailing list talk@webdna.us To unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.us/page.dna?numero=3D55 Bug Reporting: =support@webdna.us[FormVariables name=3D&exact=3DF][name] ==3D [value]<br>[/FormVariables]ListVariables will only list TEXT vars etc.=On 24 Apr 2019, at =11:03, Michael Davis <admin@network13.net> wrote:=Hi All,--------------------------------------------------------- This =message is sent to you because you are subscribed to the mailing list talk@webdna.us To unsubscribe, E-mail to: talk-leave@webdna.us archives: http://www.webdna.us/page.dna?numero=3D55 Bug Reporting: =support@webdna.usI'm trying to =receive JSON via a post and not seeing anything in form variables or =mime headers. As a test, I post using curl like so:curl -X =POST -H "Content-Type: application/json" -d '{"userName":"dim@witted.net","password":"mybirthday"}' http://localhost/json_auth.dnaOn the =receiving WebDNA template:=[listvariables][name]=3D[value][/ListVariables][listmimeheaders][name]=3D[value][/ListMIMEHeaders]I get a list of the usual MIME Headers, none include the =JSON. LIstVariables returns nothing.Any way to see this data in WebDNA?MD=
=
DOWNLOAD WEBDNA NOW!
The WebDNA community talk-list is the best place to get some help: several hundred extremely proficient programmers with an excellent knowledge of WebDNA and an excellent spirit will deliver all the tips and tricks you can imagine...