• User Attivo

    [ASP] request.querystring se ci sono spazi mi da errore

    ciao a tutti,
    devo passare via request.querystring un parametro del tipo "alfa romeo", ma la request nella barra dell'indirizzo mi visualizza solo "alfa", secondo voi come mai? Posso evitare questo problema?
    Grazie,

    Marco


  • Super User

    Ciao sherlock,
    prova con alfa%20romeo


  • User Attivo

    quindi tu dici che se nella variabile estratta con una query da db ci sono spazi devo fare una funzioncina che sostituisca ad ogni spazio il %20?

    Marco


  • User Attivo

    Non ho capito bene se "alfa romeo" è il valore della variabile o il nome della variabile, perchè se fosse il nome lo spazio non è ammesso, sostituiscila con:
    alfaRomeo oppure alfa_romeo


  • Moderatore

    Ciao,
    poichè non è possibile che gli url contengano spazi (a altri caratteri particolari) allora quando generi un URL che potrà contenere spazi nei parametri dovrai necessariamente utlizzare la funzione Server.UrlEncode(variabile_con_possibili_spazi)

    Dopodichè potrai riconsiderare il valore del parametro con la decodifica tramite:

    
    
    function URLDecode(sText)
      sDecoded = sText
      Set oRegExpr = Server.CreateObject("VBScript.RegExp")
      oRegExpr.Pattern = "%[0-9,A-F]{2}"
      oRegExpr.Global = True
      Set oMatchCollection = oRegExpr.Execute(sText)
      For Each oMatch In oMatchCollection
         sDecoded = Replace(sDecoded,oMatch.value,Chr(CInt("&H" &
         Right(oMatch.Value,2))))
      Next
      URLDecode = sDecoded
    End function
    
    ' Esempio
    
    Dim parametro
    parametro = **Server.UrlDecode**(Request("tuo_parametro"))
    
    ```:ciauz: