4 messaggi dal 06 febbraio 2004
Ho un problema abbastanza fastidioso e leggendo altri post penso che la soluzione sia il Server.HTMLEncode, ma non va.
Sto creando un sitino per una cineteca e ho creato il form per aggiornare ila tabella da cui vengono presi i dati del film, tra cui la trama.
Ho notato che quando nel testo della trama c'è un apostrofo " ' " mi da errore, mentre quando non ci sono fila tutto liscio. E purtroppo, a meno di rifondare la lingua italiana temo di non poterli evitare.

Qualcuno mi sa dare un aiuto ?
Grazie
3.122 messaggi dal 16 maggio 2002
Non si tratta del Server.HTMLEncode. Il tuo problema è relativo agli inserimenti di dati in un database per mezzo di query di inserimento-aggiornamento. Infatti il carattere ' <apice singolo> è il carattere delimitatore delle stringhe in SQL, quindi, se non opportunamente codificato, il parser sql lo interpreta come delimitatore. Con access devi duplicare gli apici singoli, con mySQL devi farli precedere dal carattere \.
Quindi ti basta creare una funzioncina che ti formatta il testo da concatenare alla stringa sql:

Per Access o SQL Server:
function SQLString(sql)
SQLString = Replace(sql, "'", "''")
end function


Per mySQL:
function SQLString(sql)
SQLString(sql, "'", "\'")
end function


Poi, quando vai a comporre la stringa sql fai
sql = "INSERT INTO tabella (campo1, campo2) VALUES ('" & SQLString(campo1) & "', '" & SQLString(campo2) & "')"


così il parser sql capisce che quel carattere <apice singolo> non è un delimitatore, ma un carattere da inserire nel testo.

The day Microsoft makes something that doesn't suck
is probably the day they start making vacuum cleaners.

Get caught!
Get caught again!
4 messaggi dal 06 febbraio 2004
in effetti avevo il "sentore" che il problema fosse + o - di questo tipo, ma essendo agli inizi non l'avevo bene chiarito (ci sono arrivato a tentativi togliendo tutti i caratteri strani uno per volta)
E comunque sta cosa della funzione non mi sarebbe venuta in mente.

Tra l'altro forse con questa sistema risolvo anche un altro problemino: il form deve andare in mano a uno che di html non vuole capire niente (beata ignoranza che fa dormire tranquilli) e mi sa che se gli dico che per fare i paragrafi deve aggiungere "<BR>" mi fa casino, se creo una funzione per sostituire una parola tipo "acapo" con "<BR> dovrebbe funzionare, no ? (volendo ci sta pure la grassettatura e la sottolineatura...)

O c'è qualcosa di più professional ?

Grazie mille comunque, non mi andava proprio di fondare un partito per far cambiare la lingua italiana e abolire l'apostrofo....
3.122 messaggi dal 16 maggio 2002
Certo, per gli "a capo" fai presto e ti basta sostituire la sequenza CrLf con la stringa "<br>", quindi
stringa = Replace(stringa, vbCrLf, "<br>")

Diverso è il discorso della formattazione delle stringhe in grassetto, corsivo o comunque di qualsiasi cosa per cui devi definire un inizio e una fine. Per queste devi costruirti un semplice parser che va alla ricerca di tali delimitatori nel tuo testo e agisce di conseguenza, formattando il testo al loro interno nel modo opportuno.

The day Microsoft makes something that doesn't suck
is probably the day they start making vacuum cleaners.

Get caught!
Get caught again!
4 messaggi dal 06 febbraio 2004
giusto, mi ero dimenticato che <BR> è l'eccezione a cui non serve il tag di chiusura...(3 mesi di dreamweaver e già comincio a dimenticarmi l'html), vabbè per ora vediamo di far funzionare solo l'inserimento, stanotte provo e poi ti faccio sapere se mi funziona tutto.

Già che ci sono: ovviamente per le pagine che aggiungono e tolgono le schede film o dovuto impostare una pagina ad accesso riservato che controlla account e pwd in una tabella, e stranamente funziona (al primo colpo, ancora non ci credo)

Però mi sa che che non è il metodo più sicuro, non che il sito contenga chissà quali informazioni segrete, ma se conosci il link a un tutorial dove spiegano un "buon" sistema mi piacerebbe dare una sbirciata al codice.



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.