Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    passaggio stringhe in ASP e virgolette

    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

  2. #2
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    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.

  3. #3

    virgolette e querystring

    grazie per l'aiuto. hai un esempio di utilizzo di questa funzione? personalmente non la conosco.

  4. #4
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    codice:
    Dim url
    url = "http://www.ciao.com"
    Dim new_url
    new_url = Server.URLEncode(url)
    in questo modo te lo codifica con i caratteri tipo %3A per i due punti, %2F per la slash eccetera
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

  5. #5
    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?

  6. #6
    dei usare & # 3 9 ...chiaramente tutto attaccato, ma se lo scrivevo attaccato mi usciva l'apice!!!!

  7. #7
    putroppo non ne vengo fuori.

    ecco il codice di esempio:
    SQLS="select " & TABELLA & ".* from " & TABELLA & " where " & TABELLA & ".AEROCLUB='" & replace (AEROCLUB,"'", "&#39" ) & "'"

    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 &#39 non viene identificato come equivalente all'apice contenuta nella stringa.

    bel casino.

  8. #8
    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:

    codice:
    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
    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 sql

    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

  9. #9
    perche' tutti questi giri?

    usa la classica replace

    codice:
    sVar = Replace(sVar, "'", "''")
    *prima* di registrare sVar nel db, o *prima* di interrogare il db (... WHERE campo = sVar ... )

  10. #10
    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

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.