[ASP + VB] Request.form en HTML encode

Pagina: 1
Acties:

  • akakiwi
  • Registratie: September 2000
  • Laatst online: 20-03 11:13

akakiwi

I believe in the ruling class.

Topicstarter
Hallo,

Ik heb een ASP pagina die gebruikt maakt van functies uit mijn eigen object.
Wanneer ik de functie
ASP:
1
oConnectie.opslaanFormulier(request.form)

worden alle waarden die in het formulier zitten meegegeven aan de functie en komen ze daar in 1 variabele.
Deze ene variabele wordt gesplit op het &-teken en dan weet ik precies welk object van het formulier welke waarde heeft.

Nu is mijn probleem dat een spatie wordt vervangen door een +
een : wordt vervangen door %3A
Nu heeft dat geloof ik iets met HTML encode te maken en kent ASP wel een functie om daarmee om te gaan, maar ik krijg nergens gevonden of VB ook in één keer alle codes kan vervangen door hun originele waardes.

Weet iemand hier een functie die een + weer omzet naar een spatie, %3A omzet naar een :, etc. etc.???

Zowel google als vbworld.com en de GoT search gaven geen antwoord op deze vraag.

| Life is a game (and games are fun) | homepage |


  • whoami
  • Registratie: December 2000
  • Nu online
HtmlEncode
HtmlDecode
:?

https://fgheysels.github.io/


  • Coolhva
  • Registratie: Juni 2003
  • Laatst online: 02-08 09:32

Coolhva

Dr. Zero Trust

De code om alles te vervangen is:

Replace(Request.Form,"%3A", ":")

En de encode opties:

1. enctype="application/x-www-form-urlencoded"
2. enctype="multipart/form-data"
3. enctype="text/plain"

Gebruik je wel Post in je form?

Probeer dit eens:

<form action="pagina.asp" enctype="application/x-www-form-urlencoded" method="post">

  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Indien je je form op de POST methode verstuurd moet je inderdaad eens kijken naar de functies HtmlEncode en HtmlDecode. Verstuur je de gegevens middels de GET methode kijk dan eens naar UrlEncode en UrlDecode ;)

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


  • akakiwi
  • Registratie: September 2000
  • Laatst online: 20-03 11:13

akakiwi

I believe in the ruling class.

Topicstarter
De gegevens worden verstuurd middels een POST op het formulier.
Ik zal eens aan de gang gaan met die ENCTYPE.

| Life is a game (and games are fun) | homepage |


  • akakiwi
  • Registratie: September 2000
  • Laatst online: 20-03 11:13

akakiwi

I believe in the ruling class.

Topicstarter
Kan het niet zijn dat HTMLDecode een .NET functie is??
Het enige wat ik overal gevonden krijg is
Visual Basic .NET:
1
HttpUtility.HtmlDencode

en die functie krijg ik in geen enkele Visual Basic reference gevonden. :'(

| Life is a game (and games are fun) | homepage |


  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

HttpUtility.HtmlDecode is inderdaad voor .NET alleen Server.HtmlEncode moet in ASP gewoon werken. (Ik heb alleen eerlijk gezegd geen idee of deze functie ook vanuit VB is te gebruiken :? )

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

akakiwi schreef op 20 juni 2003 @ 12:02:
Kan het niet zijn dat HTMLDecode een .NET functie is??
Het enige wat ik overal gevonden krijg is
Visual Basic .NET:
1
HttpUtility.HtmlDencode

en die functie krijg ik in geen enkele Visual Basic reference gevonden. :'(
Server.HTMLEncode / HTMLDecode zijn properties methods van het Server object, welke ASP gebonden is en afaik er al vanaf ASP 2.0 in zit. Server.HTMLEncode werkt dus niet in vb6.

HttpUtility.HtmlDencode is .Net, echter Server.HtmlEncode werkt daar ook nog erg goed.

[ Voor 7% gewijzigd door gorgi_19 op 20-06-2003 12:25 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Server.HTMLEncode / HTMLDecode zijn properties van het Server object
Het is een method van het server object :P
HttpUtility.HtmlDencode is .Net, echter Server.HtmlEncode werkt daar ook nog erg goed.
Is er dan eigenlijk een verschil tussen beiden?

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

DeverauX schreef op 20 June 2003 @ 12:24:
Het is een method van het server object :P
Kijk nog eens goed... O-)
Is er dan eigenlijk een verschil tussen beiden?
In werking voor zover ik weet niet... Zal misschien een verschil zijn in performance, maar deze zal verwaarloosbaar zijn, net als het verschil tussen int32.Parse en Convert.ToInt

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Coolhva
  • Registratie: Juni 2003
  • Laatst online: 02-08 09:32

Coolhva

Dr. Zero Trust

lijkt mij dat de .NET methode een combo is. Dus beide functies in 1 hebben

  • akakiwi
  • Registratie: September 2000
  • Laatst online: 20-03 11:13

akakiwi

I believe in the ruling class.

Topicstarter
Ik weet dat server.HTMLEnCode in ASP zit. :)
Ik moet voor ASP of voor VB6 een functie hebben die werkt als de HTMLDeCode functie.

Maar volgens mij is die er niet echt?

| Life is a game (and games are fun) | homepage |


  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Maar volgens mij is die er niet echt?
Voor VB dan inderdaad niet nee. Je zou de functie ook zelf kunnen schrijven natuurlijk :)

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

akakiwi schreef op 20 June 2003 @ 12:47:
Ik weet dat server.HTMLEnCode in ASP zit. :)
Ik moet voor ASP of voor VB6 een functie hebben die werkt als de HTMLDeCode functie.

Maar volgens mij is die er niet echt?
Nope. Je kan het of zelf maken, of ASP de goede string als property van je contol mee laten geven.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • akakiwi
  • Registratie: September 2000
  • Laatst online: 20-03 11:13

akakiwi

I believe in the ruling class.

Topicstarter
Ik laat het VB6 zelf wel doen middels een functie.
Die noem ik dan HTMLDecode ;)

Bedankt voor alle input.

| Life is a game (and games are fun) | homepage |


  • Fiets
  • Registratie: Maart 2000
  • Laatst online: 15:40

Fiets

A.K.A. Bambi

Misschien zou je met server side jscript kunnen werken, daar zit die functie wel in.

Encode: escape(String)
Decode: unescape(String)

lijkt op dezelfde manier te werken.

Maar 2 DPC'ers op DHEP! Ahum, nu nog maar 0 aktieve leden...


  • HansMij
  • Registratie: Mei 2002
  • Laatst online: 21-08 22:55
Goed... ASP kent wel Server.HTMLEncode, maar geen Server.HTMLDecode. ASP kent ook Escape en UnEscape. De oplossing die ik altijd gebruik is: ik escape alle data die in mijn database komt, en als ik die weer wil weergeven unescape ik die data en vervolgens HTMLEncode ik de handel.

Met Andere woorden

Response.Write Trim(Server.HTMLEncode(UnEscape(rstRecordSet("Kolom"))))

Dit zet ik natuurlijk niet overal neer, maar ik heb hier een functie van gemaakt. Voordat je gaat unescapene moet je overigens wel kijken of het veld niet leeg is, want dan geeft UnEscape een error. Het lijkt ingewikkeld, maar als je het eenmaal doorhebt stelt het niets voor.

  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Goed... ASP kent wel Server.HTMLEncode, maar geen Server.HTMLDecode.
Onjuist. ASP kent zowel HtmlEncode als HtmlDecode.(het lijkt me uberhaupt onzinnig alleen een encode optie te hebben en geen decode).
ASP:
1
Response.Write Trim(Server.HTMLEncode(UnEscape(rstRecordSet("Kolom"))))

Je codeert op deze manier een gedecodeerde string. Lijkt me een beetje raar :?
Je kan het beste gewoon gebruik maken van server.HtmlDecode & server.HtmlEncode :)
(Escape en Unescape zijn trouwens functies van VBScript/JScript/JavaScript en dus niet zozeer een functionaliteit van ASP als platform ;)

[ Voor 3% gewijzigd door DeverauX op 01-07-2003 08:01 ]

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

DeverauX schreef op 01 July 2003 @ 07:38:
[...]

Onjuist. ASP kent zowel HtmlEncode als HtmlDecode.(het lijkt me uberhaupt onzinnig alleen een encode optie te hebben en geen decode).
HTML:
1
2
3
4
5
6
&lt;b&gt;melp melp&lt;/b&gt;<font face="Arial" size=2>
<p>Microsoft VBScript runtime </font> <font face="Arial" size=2>error '800a01b6'</font>
<p>
<font face="Arial" size=2>Object doesn't support this property or method: 'HTMLDecode'</font>
<p>
<font face="Arial" size=2>/test.asp</font><font face="Arial" size=2>, line 10</font>

ASP:
1
2
3
4
5
6
7
8
9
<%
Dim strTeststring, strEncodedstring

strTeststring = "<b>melp melp</b>"
strEncodedstring = Server.HTMLEncode(strTeststring)

Response.Write strEncodedstring
Response.Write Server.HTMLDecode(strEncodedstring)
%>


ASP.Net kent een Server.HTMLDecode, ASP 3.0 niet ... ;)

[ Voor 96% gewijzigd door gorgi_19 op 01-07-2003 07:48 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

ASP.Net kent een Server.HTMLDecode, ASP 3.0 niet ...
Euh...je hebt inderdaad gelijk. Raar genoeg heeft 3.0 geen decode method en .net wel (ben er blijkbaar ten onrechte vanuit gegaan dat dit ook in 3.0 wel aanwezig zou zijn) :)

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


  • HansMij
  • Registratie: Mei 2002
  • Laatst online: 21-08 22:55
Je codeert op deze manier een gedecodeerde string. Lijkt me een beetje raar
Laat ik het even uitleggen.

Ik gebruik Escape om de data gecodeerd in de database te krijgen (quotes, punt-komma's etc. in je query kunnen schadelijk zijn voor je database). Waarom gebruik ik Escape hiervoor, wel omdat je dit kunt decoderen. HTMLEncode kan (zoals vermeld) niet in ASP 3.0. HTMLEncode gebruik ik vervolgens weer om de data weer te geven in de HTML.

Ik zou natuurlijk ook de ge-HTMLEncode versie in de database kunnen opslaan, maar ik wil graag mijn data zo schoon mogelijk houden, en op deze manier kan ik het origineel terughalen.
Pagina: 1