Visualizzazione dei risultati da 1 a 6 su 6

Discussione: $_post e characters

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    45

    $_post e characters

    In un semplice form dati ho un campo generico in cui l'utente scrive un messaggio, il messaggio passa per il DB e viene visualizzato, uso
    Codice PHP:
    $gen $_POST['gen']; 
    per passare poi il testo al DB tramite la query INSERT.
    Il problema è che le lettere accentate non vengono visualizzate, sul database mi ritrovo un sacco di punti di domanda e ovviamente poi anche nel campo del sito in cui viene illustrat il testo.
    Come faccio a passare il tutto per una codifica in modo che salvi correttamente il testo sul DB?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Può dipendere dalla codifica del db(che non so com'e')

    Prima di mandare a db prova ad aggiungere al valore utf8_encode($valore) e vedi se si risolve oppure se viene encodato a db nella visualizzazione usa utf8_decode($valore_preso_da_db)

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    45
    Originariamente inviato da m4rko80
    Può dipendere dalla codifica del db(che non so com'e')

    Prima di mandare a db prova ad aggiungere al valore utf8_encode($valore) e vedi se si risolve oppure se viene encodato a db nella visualizzazione usa utf8_decode($valore_preso_da_db)
    Credo che debba filtrare prima del DB perchè arrivano con l'errore di codifica già nel database, uso questo codice per scrivere in DB
    Codice PHP:
    $nome $_POST['nome'];  
    $cognome $_POST['cognome'];   
    $anno $_POST['anno'];  
    $gen $_POST['gen'];      

    mysql_query("INSERT INTO tbl VALUES ('', '', '$nome', '$cognome', '$anno', '$gen')"); 
                 
    $r_id mysql_insert_id (); 

  4. #4
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    E' quello che ho scritto infatti:

    $nome = utf8_encode($_POST['nome']); o almeno prova e vedi se e' quello.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2011
    Messaggi
    45
    Originariamente inviato da m4rko80
    E' quello che ho scritto infatti:

    $nome = utf8_encode($_POST['nome']); o almeno prova e vedi se e' quello.
    Si ho provato ma ora invece dei punti di domanda compaiono èà òù al posto di èàùò

  6. #6
    Prova a usare htmlentities() di PHP. Converte i vari caratteri accentati nelle corrispondenti entità HTML tipo è à etc... Dovrebbe funzionare.

    A parte questo, usa mysql_escape_string() per l'escaping dei caratteri prima di inserirli nella query. Ora come ora il tuo codice è pieno di falle di sicurezza (SQL injection)
    Visita il mio blog e canale YouTube dedicati a programmazione web e sicurezza informatica.

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.