Passando delle stringhe tra pagine ASP incontro serie difficoltà quando il testo da trasferire contiene appici del tipo ' o del tipo ".
Esiste un modo per risolvere il problema?
grazie.
Adriano Ellero
Passando delle stringhe tra pagine ASP incontro serie difficoltà quando il testo da trasferire contiene appici del tipo ' o del tipo ".
Esiste un modo per risolvere il problema?
grazie.
Adriano Ellero
intendi passare per QueryString?
Usi la funzione URLEncode per codificare i caratteri speciali nella barra degli indirizzi
Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.
grazie per l'aiuto. hai un esempio di utilizzo di questa funzione? personalmente non la conosco.
in questo modo te lo codifica con i caratteri tipo %3A per i due punti, %2F per la slash ecceteracodice:Dim url url = "http://www.ciao.com" Dim new_url new_url = Server.URLEncode(url)
Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.
ottimo grazie, funziona, ma adesso il problema si è spostato a valle!
ho passato la stringa "ab c'edf" dalla pagina asp 1 alla pagina asp 2.
ottimo.
nella nuova pagina (la pagina 2) foglio creare un input tipo text che mostra la stringa "ab c'def"
primo problema risolto lo spazio troncava la stringa
ossia vedevo
ab
secondo problema ancora sto appice!
ab c
ho provato con chr(..) ma a meno di non sostituire l'appice con un carattere inutile, non ne vengo fuori...
idee?
dei usare & # 3 9 ...chiaramente tutto attaccato, ma se lo scrivevo attaccato mi usciva l'apice!!!!![]()
![]()
putroppo non ne vengo fuori.
ecco il codice di esempio:
SQLS="select " & TABELLA & ".* from " & TABELLA & " where " & TABELLA & ".AEROCLUB='" & replace (AEROCLUB,"'", "'" ) & "'"
o se preferisci
SQLS="select " & TABELLA & ".* from " & TABELLA & " where " & TABELLA & ".AEROCLUB='" & AEROCLUB & "'"
se AEROCLUB (che è una stringa che ricevo da un'altra pagina asp) contiene l'apice in senso di apostrofo, a mi si tronca la parte di stringa in quanto in conflitto con l'apice del codice, se uso replace() la ricerca in database non mi riconosce la stringa in quanto ' non viene identificato come equivalente all'apice contenuta nella stringa.
bel casino.
Una domanda: nel campo AEROCLUB nel database non può esserci un apice, inquanto o ce l'hai inserito a mano oppure usando SQL ti avrebbe dato errore.
Secondo me le cose sono due: se hai inserito a mano l'apice nel database lo togli, altrimenti quando inserisci i dati nel database fai un controllo in maniera da toglierlo. Utilizzerai quel controllo anche per toglierlo dalla stringa per cercarlo. ad esempio:
i punti interrogativi stanno a indicare che non mi ricordo adesso il codice ascii per un apice alternativo a quello standard che non viene riconosciuto da sqlcodice:function EliminaApice(testo) for i=0 to len(testo) if mid(testo,i,1)="'" then antecedente=left(testo, i-1) precedente=right(testo, len(testo)-(i+1)) testo=antecedente & chr(39????) & precedente end if next EliminaApice=testo end function
per il ripristino dell'apice tradizionale, fai una funzione di riconversione
Credo che non sia un metodo molto ben fatto, soprattutto perchè non uso le funzioni stringa predefinite, ma visto che adesso non avrei potuto sperimentare un altro codice xchè non sto sul mio pc, questo almeno sono sicuro che funzioni.
.......cmq credo di non aver centrato il problema che hai chiesto...però sai, il mal di testa gioca brutti scherzi
buon lavoro
perche' tutti questi giri?
usa la classica replace
*prima* di registrare sVar nel db, o *prima* di interrogare il db (... WHERE campo = sVar ... )codice:sVar = Replace(sVar, "'", "''")
gli ho fatto il giretto perchè mi sembrava che il replace già lo usasse ma non gli andava![]()
oppure perchè sono un tipo incasinaro????????![]()
buon natale![]()