11 messaggi dal 31 maggio 2005
Salve Raga
volevo chiedervi una cosina
sto creando con asp e flash un guestbook
ma ho problemi con il linguaggio asp... infatti nella casella di testo
per inserire il messaggio, se inserisco l'apostrofo (il singolo apice ' ) non mi invia + il messaggio perchè sicuramente va in conflitto.
Son riuscita a inserire le lettere accentuate modificando questa stringa:

'rs("testo","à","ì","è","ù","ò") = testo

ma ovviamente se metto nelle virgolette l'apostrofo così " ' "
non succede nulla...
potete darmi una mano please!
Linda
Modificato da LindaNatale il 05 dicembre 2006 22.16 -
635 messaggi dal 06 settembre 2002
Ciao,
se ho capito bene, il problema si presenta quando registri la pagina nel database.

devi fare qualcosa del tipo:
TUA_VARIABILE=replace(TUA_VARIABILE,"'","''")



personalmente, per ovviare questo problema, utilizzo questa soluzione:
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=REPLACE(Sicurezza, "=","[=]")
    Sicurezza=REPLACE(Sicurezza, "?","<img src="/forum/skins/default/images/emo/png-blue/icon_smile_question.png" class="absmiddle emoticon" />")
    Sicurezza=REPLACE(Sicurezza, "@","[@]")
    Sicurezza=REPLACE(Sicurezza, "&","[&]")
    Sicurezza=REPLACE(Sicurezza, "#","[#]")
    Sicurezza=REPLACE(Sicurezza, "|","[|]")
    Sicurezza=REPLACE(Sicurezza, ",","[,]")
    Sicurezza=REPLACE(Sicurezza, ";","[;]")
    Sicurezza=REPLACE(Sicurezza, ":","[:]")
    Sicurezza=REPLACE(Sicurezza, "\","[\]")
    Sicurezza=Server.HTMLEncode(Sicurezza)
  end if
END FUNCTION


e poi la richiamo così
TUA_VARIABILE=Sicurezza(TUA_VARIABILE


in questo modo vado a proteggere i vari caratteri Jolly che potrebbero bloccare l'esecuzione di una query o la registrazione dei dati in una tabella.

Ovviamente, quando prendo i valori dalla tabella, per visualizzarli correttamente utilizzo

FUNCTION Sblocca(variabile)
  if variabile<>"" then
    Sblocca=REPLACE(variabile, "''","'")
    Sblocca=REPLACE(Sblocca, "[*]","*")
    Sblocca=REPLACE(Sblocca, "[+]","+")
    Sblocca=REPLACE(Sblocca, "[/]","/")
    Sblocca=REPLACE(Sblocca, "[-]","-")
    Sblocca=REPLACE(Sblocca, "[%]","%")
    Sblocca=REPLACE(Sblocca, "[=]","=")
    Sblocca=REPLACE(Sblocca, "<img src="/forum/skins/default/images/emo/png-blue/icon_smile_question.png" class="absmiddle emoticon" />","?")
    Sblocca=REPLACE(Sblocca, "[@]","@")
    Sblocca=REPLACE(Sblocca, "[&]","&")
    Sblocca=REPLACE(Sblocca, "[#]","#")
    Sblocca=REPLACE(Sblocca, "[|]","|")
    Sblocca=REPLACE(Sblocca, "[,]",",")
    Sblocca=REPLACE(Sblocca, "[;]",";")
    Sblocca=REPLACE(Sblocca, "[:]",":")
    Sblocca=REPLACE(Sblocca, "[\]","\")
  end if
END FUNCTION


che richiamo come detto prima.

Spero di essere stato di aiuto.
Ciao

OJD
11 messaggi dal 31 maggio 2005
Ciao OJD sei stato molto carino ad aiutarmi
potresti dare uno sguardo alla pagina in questione perchè non saprei
modificarla...sono alle prime armi con asp
posto il codice:


<%
response.expires=-1
nomeuno = Request.QueryString("nomeuno")
email = request.QueryString("emailuno")
testo = request.QueryString("testouno")
if nomeuno = "" then
%>
<%
response.write("&risposta=" & ("Il nome è obbligatorio"))%>
<%
elseif email = "" then
response.write("&risposta=" & ("L'email è obbligatoria"))%>
<%
elseif testo = "" then
response.write("&risposta=" & ("Il Testo è obbligatorio"))%>
<%
else
dim conn, rs
set conn = server.CreateObject("ADOdb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.MapPath("db.mdb")
'set rs = server.CreateObject("ADOdb.recordset")
SQL = "INSERT INTO utenti (nome,email,testo,ora)"
SQL = SQL&"VALUES('"&nomeuno&"','"&email&"','"&testo&"','"&NOW()&"')"
Conn.Execute(SQL)



'rs.open "SELECT nome, email, testo FROM utenti", conn, 3, 3
'rs.addnew
'rs("nome") = nomeuno
'rs("email") = email
'rs("testo","à","ì","è","ù","ò") = testo
'rs.update

response.write("&risposta=" & ("I dati sono stati inseriti correttamente"))
'do while not rs.eof

'response.Write("&nomeuno=" & rs("nome"))
'response.Write("&mailuno=" & rs("email"))
'response.Write("&testouno=" & rs("testo"))
'response.Write("&ora=" & now())
'rs.movenext
'loop

%>
<%
end if
%>

11 messaggi dal 31 maggio 2005
MA VIEEEEENNIIIIII
ho risolto....
ho inserito la variabile testo=replace(testo,"'","''")
e tutto vaaaa!!
Grazie mille OJD
635 messaggi dal 06 settembre 2002
Ciao

salvo complicazioni dovrebbe essere in questo modo:
<% 
else 
nomeuno = sicurezza(nomeuno)
email = sicurezza(email) 
testo = sicurezza(testo)

dim conn, rs 

.....


ovviamente devi inserire all'inizio della pagina la funzione sicurezza.

Tieni presente che sul post dove trovi il  devi scrivere [ ? ] senza gli spazi.

Ciao

OJD

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.