Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    542

    Apostrofi accentate e htmlentities(stripslashes())

    Ciao,
    tempo fa ho aperto un post che mi ha aiutato ma non risolto del tutto il mio problema.

    In pagina.php ho un form che con dopo submit ricarica se stessa per fare i controlli sui dati inseriti.

    Codice PHP:
    echo "<form name='form1' action='pagina.php' method='POST'>"
    echo 
    '<input type="text" name="ragionesociale" value="' .  htmlentities(stripslashes($_POST['ragionesociale'])) . '" size="70" maxlength="60">';
    ecc
    Questo mi risolve il problema dell'apostrofo ma se inserisco lettere accentate mi visualizza le entità (esempio: &#242; al posto di ò)
    Io però devo visualizzare a video il contenuto immesso dall'utente, non sto inserendo nel database.
    Cosa manca alla riga :
    Codice PHP:

    echo '<input type="text" name="ragionesociale" value="' .  htmlentities(stripslashes($_POST['ragionesociale'])) . '" size="70" maxlength="60">'
    per vedere correttamente accentate ed apostrofo?

    Grazie mille.
    Guidino

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    542

    accentate

    Rileggendo il post vedo che il Forum ha sostituito
    Codice PHP:
    &#242; 
    con ò

    ed è proprio quello che vorrei ottenere.

    Grazie
    Guidino

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    542

    Apostrofi

    nessun aiuto?

    Guidino

  4. #4
    Non credo ti sia spiegato bene... o almeno io nn ho capito!
    .: Teju.it - Una vita da raccontare
    .: 8s8.it - Wordpress gratis per tutti
    .: Vado.li - Accorcia URL

  5. #5
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Togli htmlentities().
    E anche lo stripslashes non è il massimo della correttezza applicato così... dovresti prima verificare che sia attivo magic_quotes_gpc; altrimenti è inutile quando non dannoso

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    542
    Mi speigo megllio:
    dopo il submit faccio dei controlli di validità, quindi per l'attributo value delle variabili del form utilizzo l'array $_POST[] in modo da rivisualizzare i valori quando ricarica la pagina dopo il submit.

    il form ha una struttura del genere:
    Codice PHP:
    echo "<form name='form1' action='pagina.php' method='POST'>"
    echo 
    '<input type="text" name="ragionesociale" value="' .  htmlentities(stripslashes($_POST['ragionesociale'])) . '" size="70" maxlength="60">'
    ecc
    ora all'atributo value delle variabili del form, esempio per la varibile ragionedociale) anzichè associare il valore di $_POST['ragionesociale'] associo
    htmlentities(stripslashes($_POST['ragionesociale']))
    Questo mi mantiene correttamente la stringa inserita anche se c'è l'apostrofo.

    Questa soluzione mi era stata suggerita inun precedente post.
    Il problema che ho ora è che se inserisco delle lettere accentate esempio 'città' quando ricarica la pagina dopo il controllo a video vedo

    Codice PHP:
    citt&agrave
    e non la lettera accentata.

    Poi ancora non ho capito bene se nel database deve entrare città oppure
    Codice PHP:
    citt&agrave
    La codifica che uso io è shift_JIS.

    Spero di essermi speigato meglio.

    Grazie
    Guidino

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    542
    Ciao Luca 200,
    non avevo visto la tua risposta.
    se tolgo htmlentities() e stripslashes() quando inserisco stringhe contenenti apostrofo mi tronca la stringa.

    Poi ancora non ho capito se nel database devono entrare le lettere accentate oppure no.
    se ho la stringa città nel database deve entrare città oppure

    Codice PHP:
    citt&agrave
    la codifica che devo usare è shift_jis per gestire anche la lingua giapponese

    il mio magic_quotes_gpc è attivo.
    Cosa rischio nel caso sia disattivato e uso htmlentities() e stripslashes() ?

    Ultima domanda.
    se nel database entra
    Codice PHP:
    citt&agrave
    come faccio a fare le query e trovare città?

    Sono tante domande ma ancora brancolo.

    Grazie per l'aiuto
    Guidino

  8. #8
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da guidino

    Poi ancora non ho capito se nel database devono entrare le lettere accentate oppure no.
    se ho la stringa città nel database deve entrare città oppure
    Codice PHP:
    citt&agrave
    la codifica che devo usare è shift_jis per gestire anche la lingua giapponese
    Nel database è corretto che venga memorizzata la stringa così come è stata inserita dall'utente. Le funzioni tipo htmlentities() vanno usate quando si visualizza la stringa sul browser.

    Originariamente inviato da guidino
    il mio magic_quotes_gpc è attivo.
    Cosa rischio nel caso sia disattivato e uso htmlentities() e stripslashes() ?
    htmlentities() non c'entra con questo punto.
    Il rischio che corri con stripslashes() è che eventuali backslash inseriti dall'utente potrebbero venire rimossi. E' un rischio remoto ma esiste, ed in quel caso altereresti l'input dell'utente.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    542
    Grazie per la risposta.
    Ma cosa mi dici a proposito di

    "se tolgo htmlentities() e stripslashes() quando inserisco stringhe contenenti apostrofo mi tronca la stringa"?

    Tutto il problema nasce dal fatto che mi hanno consigliato di usare htmlentities() e stripslashes() per fare in modo che quando rivisualizzo l'arrray $_POST (dopo un controlllo di validazione) non mi vengano troncate le stringhe se contengono l'apostrofo.

    Grazie
    Guidino

  10. #10
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Il problema degli apostrofi è un altro.
    Per quello devi usare
    mysql_real_escape_string() prima di fare l'inserimento nel db.

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.