4 messaggi dal 24 ottobre 2001
Ho fatto un po' di ricerche nel forum, anche fra le FAQ, ma ho trovato lumi solo sulla faccenda degli apici singoli e doppi.
Ho un problema simile.
In una textarea di una mia pagina ASP gli utenti possono scrivere
righe di testo a piacere. Se inseriscono nel testo i caratteri "&" o "%" nel DB vengono memorizzate le stringe in modo strano: si tronca il testo al carattere precedente nel caso venga digitato una "&", viene invece sostituito il carattere "%" con altri dieci apparentemente senza senso.

Ho provato a far passare la stringa raccolta dalla textarea nella funzione Replace prima dell'UPDATE sul database con, per esempio :

Replace(stringText, "%", "[%]")

ma senza alcun risultato.
Qualcuno ha delle soluzioni?



256 messaggi dal 05 dicembre 2001
Anche io in una pagina asp ho una textarea, ma inserendo i caratteri "&" e "%" non noto nulla di strano..

però io memorizzo il testo nel database in un campo di tipo "memo"
non so se memorizzandolo in tipi di dati diversi succedono cose strane..

cmq se non trovi altre soluzioni questa potrebbe essere una...
anche se non credo sia la migliore...
ciao
Ainscia


Ainscia
839 messaggi dal 13 febbraio 2001
Di solito, nelle clausole SQL si mettono %, ? ed altri simboli traparentesi quadre. Qui opterei per usare Server.HtmlEncode per codificare correttamente l'output del campo memo.

Ciao!
Paolo
256 messaggi dal 05 dicembre 2001
ho provato anche utilizzando il tipo di dati "testo" e non succede nulla di strano..
però io non ho utilizzato un UPDATE
ma:
strSQL = "SELECT * FROM Dati WHERE Id =" & myID
set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSQL, objConn, ,2
objRS("Note") = Note
objRS.Update
objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing

io sono agli inizi con asp... probabilmente questo codice è una schifezza...
ma a me funziona :)
Ciao
Ainscia


Ainscia
635 messaggi dal 06 settembre 2002
Ciao,
io risolvo questo problema in questo modo:

<%
FUNCTION Sicurezza(variabile)
if variabile<>"" then
Sicurezza=REPLACE(variabile, "'","''")
Sicurezza=REPLACE(Sicurezza, "*","[*]")
Sicurezza=REPLACE(Sicurezza, "%","[%]")
Sicurezza=REPLACE(Sicurezza, "=","[=]")
Sicurezza=REPLACE(Sicurezza, "-","[-]")
Sicurezza=REPLACE(Sicurezza, "?"," ")
Sicurezza=Server.HTMLEncode(Sicurezza)
end if
END FUNCTION


NOME=TRIM(Request.Form("NOME"))
NOME=Sicurezza(NOME)

%>

Ti assicuro che funziona correttamente e non mi ha mai dato problemi....


Ciao

 JD

OJD
4 messaggi dal 24 ottobre 2001
Ho provato ad usare
objRecordset4.Update
invece di
strsql = "UPDATE ....."
objConnection.Execute strsql

ma niente da fare se inserisco "100%", sul DB memorizza "100ÿLM/W3SVC/1/ROOT"

Prima non ho precisato che il contenuto della TEXTAREA passa da una Function che apre la pagina ASP successiva con tutti i parametri, tra cui "cosa", che è la stringa incriminata
che sia in qs passaggio il problema?
A che livello dovrei inserire Server.HtmlEncode ?

<HEAD>
...........
<SCRIPT LANGUAGE="VBscript">
Function Salva(chi,dove,cosa,id,mod1)
parent.inferioredx.location.href = "VAL02b.asp?Cod1=<%=strCod1%>&Cod3=<%=strCod3%>&matricola="&chi&"&x=<%=x%>&y=<%=y%>&z=<%=z%>&Anno=<%=strAnno%>&tipo="&Clng(mod1)&"&IDOB="&ID&"&"& dove & "=" & cosa
End function
</SCRIPT
..........
</HEAD>
<BODY>
.........
<textarea [...omissis] name="OBIETTIVO" onblur="salva('<%=strMatricola%>','OBIETTIVO', this.value,'<%=objrecordset.fields(12)%>',3)"><%=objrecordset.fields(8)%></textarea>
......
</BODY>

635 messaggi dal 06 settembre 2002
mi scordo sempre,

l'ultima riga del replace, corrisponde alla codifica di un simbolo del forum tuttavia, dove vedi " " in realtà è "[ punto interrogativo ]"

Ciao

 JD

OJD
4 messaggi dal 24 ottobre 2001
Dopo un po' DEBUG sono arrivato a qs conclusione:il problema nasce dopo il passaggio della variabile "cosa", attraverso la Function Salva(chi,dove,cosa,id,mod1) verso

parent.inferioredx.location.href = "VAL02b.asp .....
(vedi script precedentemente postato)

Infatti se nella pagina VAL02b.asp dopo aver inserito nella pag. precedente cosa="100%" raccolgo la variabile con:

strCosa=Replace(Request.QueryString "cosa"), "ÿLM/W3SVC/1/ROOT", "%")

strCosa diventa di nuovo = "100%"

Lascio ai curiosi l'approfondimento della vicenda. Si tenga comunque presente che anche i caratteri successivi a "%" influenzano l'OUTPUT. Infatti a seconda dei casi sotto riportati la stringa si modifica in modo diverso

"100%" = "100ÿLM/W3SVC/1/ROOT"
"100% della scala" = "100R0della scala"
"100%. La questione" = "100õ20La questione"
"100%." = "100ð/LM/W3SVC/1/ROOT"

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.