Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    67

    problema passaggio parametri con caratteri speciali

    Salve, ho un problema quando devo passare dei parametri da una pagina php ad un'altra (tramite url).
    Se questo parametro ha l'apostrofo (esempio cognome d'amore), la pagina che riceve il parametro lo riceve così: dbackslash'amore

    Ecco come faccio il passaggio nella pagina che deve ricevere i valori:

    $cognome=html_entity_decode(htmlentities($_GET['cognome'], ENT_QUOTES));


    Ho provato con ENT_NOQUOTES, con ENT_COMPAT, senza decode o senza htmlentities ma niente, anzi se faccio queste modifiche leggo solo d\ senza tutto quello che segue l'apostrofo.

    I file sono salvati in ANSI, ho provato anche UTF-8 senza BOM e non c'è stato niente da fare.
    Il charset è ISO-8859-1 (senza il quale non vedrei bene le parole accentate).

    Potreste aiutarmi a risolvere questo problema, per favore ?

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    67
    Originariamente inviato da filippo.toso
    Ti suggerisco di iniziare leggendo il manuale ufficiale:

    http://www.php.net/urlencode
    http://www.php.net/stripslashes
    http://www.php.net/get_magic_quotes_gpc
    Grazie, proverò prima con la urlencode, magari basta solo quello.

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    67
    Risolto il problema dell'apostrofo così:

    $cognome=html_entity_decode(htmlentities($_GET['cognome'], ENT_QUOTES));
    $cognome=stripslashes($cognome);

    Ma ho un problema con le lettere accentate, sempre nel passaggio dei parametri, perché visualizzo strani caratteri tipo Ã’ al posto di quelle accentate (problema che non si verifica quando salvo sul db o effetto query e ne visualizzo i risultati).
    Se utilizzo il charset UTF-8 il problema sembra risolto, ma poi quando vado a salvare sul db non salva correttamente quelle lettere.
    Utilizzo postgres come db.

    Come posso risolvere ?

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    67
    Credo che il problema dovrebbe essere su un solo file, perché se salvo su db, e poi vado a visualizzare quello che ho inserito, non da problemi, ma se vado a modificare quello che ho inserito, nel db lo fa correttamente, lo visualizzo correttamente sul sistema e se voglio ancora modificare, nel form della pagina di modifica, vedo male i caratteri.
    Eppure la codifica è sempre la stessa (ANSI) e il charset è sempre ISO-8859-1.

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    67
    Credo di aver individuato il problema: in una pagina che riceve valori da un form, il passaggio dei parametri è corretto (provato con la stampa dei valori con charset impostato a utf-8, altrimenti li visualizzo sempre male) ma quando vado a fare le query non sono più utilizzati i valori corretti.
    Devo fare un replace di tutte le lettere accentate maiuscole e minuscole ?
    Non ci sarebbe un modo più sbrigativo ?

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    67
    Originariamente inviato da creamer
    Credo di aver individuato il problema: in una pagina che riceve valori da un form, il passaggio dei parametri è corretto (provato con la stampa dei valori con charset impostato a utf-8, altrimenti li visualizzo sempre male) ma quando vado a fare le query non sono più utilizzati i valori corretti.
    Devo fare un replace di tutte le lettere accentate maiuscole e minuscole ?
    Non ci sarebbe un modo più sbrigativo ?
    Risolto con una str_replace() sui campi con le lettere accentate e ho impostato la codifica ANSI e charset ISO-8859-1 su tutti i file.

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.