Newsgroup: it.comp.www.asp
Titolo: %3D%21%22%A3% & altre storie

Vedete la stringa del subject? E' la traduzione che fa asp di alcuni dei
caratteri non alfanumerici digitati in una form.
Siccome devo rendere intellegibile al cliente la querystring mentre gli
mostro i log degli accessi all'applicazione, mi trovo nella necessita' di
riportarli allo stato originale.
C'e' qualcuno che ha una tabellina di conversione?
Saluti.
Luciano
PS Gia' che ci siamo: c'e' nessuno che ha gia' pronta una  routine che
estrae i nomi delle variabili ed  il loro valore da una querystring e non sa
che farsene?:-)
Io comunque mi metto all'opera, se qualcuno vuole comunque confrontare il
suo lavoro con il mio...sono qua'!

 caratteri non alfanumerici digitati in una form.
Ma intendi quelli che compaiono nella barra degli indirizzi del browser?
Credo sia il browser stesso, e non IIS, a convertire i caratteri
alfanumerici in quel codice. Tornano nello "stato originale" non appena li
inserisci in una pagina HTML.
Spero che questa informazione ti sia stata utile :-)
--
Giampaolo Bellavite, Milano     E-mail: 
bell...@3nd.it
ICQ: 99999936     Home page: 
http://www.3nd.it/bellavite

 inserisci in una pagina HTML.
No, lo fa solo se glie li ripassi da form.
Saluti.
Luciano

 che farsene?:-)
Si, io!:-)
Beh, fra una portata e l'altra ho butta giu' questa cosetta che legge i
valori e li ficca in una matrice.
Sicuramemte migliorabile, pero' funziona. Rimane il fatto di sostituire i
caratteri trasformati da IIS.
Ah, se il nostro moderatore e' interessato a ficcarla sul aspitalia faccia
pure, non reclamero' royalties, giusto una citazione in calce!!:-)
Function splitta_querystring(stringa)
    Dim arrVariabili()
    Dim strVariabile
    Dim strNomevar
    Dim strValorevar
    Dim cont
    Dim cont1
    Dim contArr
    contArr = 0
    For cont = 1 To Len(stringa)
        strVariabile = strVariabile & Mid(stringa, cont, 1)
        If Mid(stringa, cont, 1) = "&" Then
            For cont1 = 1 To Len(strVariabile)
                strNomevar = strNomevar & Mid(strVariabile, cont1, 1)
                strValorevar = strValorevar & Mid(strVariabile, cont1, 1)
                If Mid(strVariabile, cont1, 1) = "=" Then
                    ReDim Preserve arrVariabili(1, contArr)
                    arrVariabili(0, contArr) = Left(strNomevar,
Len(strNomevar) - 1)
                    strNomevar = ""
                    strValorevar = ""
                End If
            Next
            arrVariabili(1, contArr) = Left(strValorevar,
Len(strValorevar) - 1)
            contArr = contArr + 1
            strVariabile = ""
            strNomevar = ""
            strValorevar = ""
        End If
    Next
    For cont1 = 1 To Len(strVariabile)
        strNomevar = strNomevar & Mid(strVariabile, cont1, 1)
        strValorevar = strValorevar & Mid(strVariabile, cont1, 1)
        If Mid(strVariabile, cont1, 1) = "=" Then
            ReDim Preserve arrVariabili(1, contArr)
            arrVariabili(0, contArr) = Left(strNomevar, Len(strNomevar) - 1)
            strNomevar = ""
            strValorevar = ""
        End If
    Next
    arrVariabili(1, contArr) = strValorevar
    contArr = contArr + 1
    strVariabile = ""
    strNomevar = ""
    strValorevar = ""
 For cont = 0 To UBound(arrVariabili, 2)
     For cont1 = 0 To UBound(arrVariabili, 1)
         response.write cont & ", " & cont1 & " - " & arrVariabili(cont1,
cont) & "<br>"
     Next
 Next
    Erase arrVariabili
    Set strVariabile = Nothing
    Set strNomevar = Nothing
    Set strValorevar = Nothing
    Set cont = Nothing
    Set cont1 = Nothing
    Set contArr = Nothing
End Function

 No, lo fa solo se glie li ripassi da form.
Allora non ho capito in che circostanze IIS crea quei codici!



Moderatore di it.comp.www.asp
Sito di supporto: 
http://www.aspitalia.com/newsgroup/
La piu' grande community italiana di sviluppatori!

 con un po' di JScript server side, lo fai con una (1) riga di codice. :-O
Sarebbe stato carino da parte tua dirlo qualche ora fa (prima che scrivessi
quella routine) e postare il codice!:-))
Sei ancora in tempo per farlo, comunque....:-)
Saluti.
Luciano

 Sei ancora in tempo per farlo, comunque....:-)
<script language="JScript" RUNAT="Server">
function undecode(testo){
    return unescape(testo);}
</script>
<%
response.write undecode("%3D%21%22%A3%")
%>


 ora ho letto, ora ho risposto :-)
Ok, funziona grazie!
Pero' la funzione che ho postato fa tutta un'altra cosa!:-)
Ovvero splitta la stringa, restituendo una matrice bidimensionale con il
nome ed il valore di ogni parametro.Mi mancava appunto il tassello di
"undecodare" i valori della querystring.
Insomma....non dire che si poteva fare con una riga di JScript!!!:-)
Saluti.
Luciano

>riportarli allo stato originale.
se cerchi un mio vecchio messaggio che abbia nel subject qualcosa tipo
decode o qc del genere trovi una funzionella che lo fa...
fammi vedere se la ritrovo su google...  no.
allora le cerco da qualche parte...
ecco.  la prima ha anche bisogno della seconda:
<%
function fUrlDecode(s)
	dim i
	dim ss
	dim n
	dim appo
	dim nn
	for i = 1 to len(s)
		ss = mid(s, i, 1)
		if ss = "%" then
			nn = mid(s, i + 1, 2)
			nn = H2Dec(nn)
			appo = appo & chr(nn)
			i = i + 2
		else
			appo = appo & ss
		end if
	next
	fUrlDecode = appo
end function
%>
<%
function H2Dec(n)
   dim i     ' contatore generico
   dim ee    ' esponente al quale elevare 16
   dim k     ' fattore per il quale moltiplicare la
             ' potenza di 16
   dim appo  ' variabile di appoggio
   for i = len(cstr(n)) to 1 step - 1
      ee = len(cstr(n)) - i
      select case mid(n, i, 1)
         case "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
            k = mid(n, i, 1)
         case "A", "B", "C", "D", "E", "F"
            k = 10 + asc(mid(n, i, 1)) - asc("A")
      end select
      appo = appo + ((16^ee) * k)
   next
   H2Dec = appo
end function
%>
-- 
non studio non lavoro non guardo la tv
non vado al cinema non faccio sport

 Insomma....non dire che si poteva fare con una riga di JScript!!!:-)
beh, a me pare che tu avessi chiesto di farne l'unencode, mi pare che quella
riga svolga egregiamente il suo lavoro.


 riga svolga egregiamente il suo lavoro.
Si, ma in aggiunta, in coda al msg, avevo chiesto un funzione che
restituisse tutti i parametri ed i relativi valore di una querystring.
Ed la funzione che ho poi scritto da solo e postato fa quello. Ti sfido a
farla con una riga di Jscript!:-)
Saluti.
Luciano

 farla con una riga di Jscript!:-)
mai sfidare la gente :-P
in una no, perchè il JS non mi ha mai attirato, ma in due si:
<script language="JScript" RUNAT="Server">
function undecode(testo){
    return unescape(testo);}
function decode(testo){
    return escape(testo);}
</script>
<%
response.write undecode("%3D%21%22%A3%") & "<BR>"
response.write decode(undecode("%3D%21%22%A3%"))
%>
ovviamente, con un po' di fantasia puoi modellarla, ma devo dire che non le
puoi paragonare, in quanto a semplicità e chiarezza.


 in una no, perchè il JS non mi ha mai attirato, ma in due si:
Non fare reply affrettati, leggi bene quello che ho scritto...:-)
Saluti.
Luciano

 Non fare reply affrettati, leggi bene quello che ho scritto...:-)
fammi capire bene che non ho afferrato... :-O


 fammi capire bene che non ho afferrato... :-O
Scorri il thread a ritroso....:-))
Saluti.
Luciano