Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    577

    Caratteri strani in java script

    Buongiorno a tutti,

    ho un problema strano, mi accade questo.

    In una pagina php con un form ho il campo seguente:

    <input type="text" name="cognome">

    ad uno script java gli dico prendi il contenuto di questo nome e mandalo tramite un get ad un'altra pagina. Fin qui tutto bene.

    Se nella seconda pagina faccio un echo del contenuto di quel campo i risultati sono i seguenti:

    - valore scritto nel campo del form di partenza = demar
    - valore estratto nella pagina php con l'istruzione echo $_GET['cognome'] = Þmar

    Che significa ?

    Qualcuno può aiutarmi ?

    Grazie

    Lucia

  2. #2
    Da come hai detto che ti capita il problema, non penso sia colpa di JavaScript ma di PHP. Quando passi un valore tramite query string (per intenderci, col metodo GET), PHP fa una "traduzione" di alcuni caratteri o combinazioni di caratteri. Bisognerebbe forse vedere le impostazioni di php.ini sul server (non ricordo se tra le impostazioni ce ne siano che stabiliscono come devono essere trattate le stringhe passate via query string). Cmq per fare qualche prova, controlla prima di tutto il charset che usi nella pagina HTML (il meta tag Content-Type nella sezione head). Dovrebbe essere così:

    codice:
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    Questo ti assicura che la pagina usi come codifica del carattere l'ISO Latin 1.

    Poi, quando stampi il contenuto dell'indice cognome dell'array $_GET, penso tu possa tranquillamente evitare gli apici (cognome è il nome dell'indice) e quindi scrivere:

    codice:
    echo $_GET[cognome];
    Per farti un esempio, io una volta passai in query string una stringa contenente un apice. Ovviamente la passai con il carattere di escape per l'apice (\'). PHP, ogni volta che la passavo, ci aggiungeva \ davanti! Dopo 4 volte che la passavo, avevo l'apice scritto nella pagina come: \\\\\'.

    Quando fai il submit del form, prova a passare per una variabile PHP che "ricodifichi" la stringa. Potresti usare le funzioni urlencode() (anche due volte, una dentro l'altra), stripslashes(), htmlentities() (con il parametro ENT_QUOTES), ecc. Consulta http://www.php.net se non conosci qualcuna di queste funzioni. L'unica cosa che mi pare strana è che ti sostituisca una coppia di caratteri come "de"...per questo penso sia un problema di codifica dei caratteri a livello della pagina.

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.