Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Salvare in Database, entità
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • T
      talkoman User Attivo • ultima modifica di

      Salvare in Database, entità

      Ciao a tutti, ho un problema nel salvare i dati di un form in un Database.
      Il database è su server Aruba ed ha come codifica predefinita "UTF-8 Unicode".

      Nella pagina dove è presente in form ho impostato questo:

      [HTML]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it">
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      [/HTML]

      Quando scrivo in una textarea una parola accentata, la salva sul database così:

      à --> Ã
      è --> è
      é --> é
      ì --> ì
      ò --> ò
      u --> ù

      Come faccio ad ovviare a questo problema?
      Grazie

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • M
        mirkoagrati User Attivo • ultima modifica di

        Ciao talkoman,
        succede che ti cambia i caratteri perchè in realtà vengono inviati con il charset iso-8859.

        Quando ricevi i dati negli script PHP prova ad utilizzare la funzione
        utf8_encode().

        qui puoi trovare le informazioni che ti servono:
        us2.php.net/manual/en/function.utf8-encode.php

        Ciao

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • T
          talkoman User Attivo • ultima modifica di

          Ciao ho provato ad usare la funzione che mi hai consigliato.
          Se inserisco la è, viene fuori questo scarabocchio:

          A video: �¨
          Su DB: �¨

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • M
            mirkoagrati User Attivo • ultima modifica di

            Ciao,
            mi pare proprio molto strano.

            Potrei capire a video, ma se te dici che il DB di aruba è UTF-8 adesso dovrebbe proprio vedersi corretto quel carattere.

            Io le utilizzo e funzionano correttamente.

            Prova a vedere che non sia il tuo browser per caso ad essere configurato con una codifica strana, cioè che i tuoi dati non siano inviati con un charset differente dall'iso-8859-1.

            Ciao

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • T
              talkoman User Attivo • ultima modifica di

              @mirkoagrati said:

              Prova a vedere che non sia il tuo browser per caso ad essere configurato con una codifica strana, cioè che i tuoi dati non siano inviati con un charset differente dall'iso-8859-1

              Come faccio?

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • M
                mirkoagrati User Attivo • ultima modifica di

                Ciao,
                solitamente è nel menù visualizza->carattere dei browser.

                Io utilizzo FF ed è la voce 'codifica caratteri' del menù visualizza.

                Ciao

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • T
                  talkoman User Attivo • ultima modifica di

                  Si ma io ho provato da:

                  • IE 8 su WIN
                  • FF su Mac
                  • Chrome su WIN
                  • Safari su Mac

                  Succede la stessa cosa da tutti e 4 i browser...

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • M
                    mirkoagrati User Attivo • ultima modifica di

                    Ciao,
                    continua ad esserci qualcosa che non torna.

                    Direi sicuramente lato server, a questo punto.

                    Bho,
                    per tagliare la testa al toro puoi provare a trasformare tutti quei caratteri in entità HTML con la funzione:
                    [PHP]string htmlentities ( string $string [, int $quote_style = ENT_COMPAT [, string $charset [, bool $double_encode = true ]]] )[/PHP]

                    Ciao

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • T
                      talkoman User Attivo • ultima modifica di

                      Mi succede anche un'altra cosa strana...
                      Ho due pagine.
                      Tutte e due così impostate:

                      [HTML]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
                      <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it">
                      <head>
                      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />[/HTML]

                      In una vedo la à così: à
                      E nell'altra la vedo così: Ã

                      Ho controllato da codice e entrambe risultano essere scritte "à" e non "à"

                      Le due pagine si trovano sempre sullo stesso server Aruba...

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • M
                        mirkoagrati User Attivo • ultima modifica di

                        Allora prova a mettere tutte e 3 in utf-8 ed in tutte e tre prova a rimuovere l'attributo 'lang=' nella dichiarazione dell'elemento <html>.

                        Almeno dovrebbero comportarsi tutte nello stesso modo.

                        Così da lavorare su una sola pagina per sistemarle tutte e tre.

                        Ciao

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • T
                          talkoman User Attivo • ultima modifica di

                          Ok ma come faccio a risolvere 😞

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • M
                            mirkoagrati User Attivo • ultima modifica di

                            Ciao,
                            ho riflettuto un attimo sul tuo problema,
                            in particolare sulla questione dell'encoding in UTF-8:

                            così, da un'analisi a spanne ho il dubbio che il DB non sia in UTF-8.

                            Per testare questa possibilità anzichè utilizzare utf8_encode prova ad utilizzare la utf8_decode.

                            Se fosse come ho pensato dovrebbe funzionare così:
                            la request (browser <-> PHP) è codificata in UTF-8 (corretto, ormai è standard) e i dati li decodifichi (utf8_decode) in ISO-8859 prima dell'inserimento nel DB.
                            A questo punto dovresti vedere correttamente i dati in tabella, ma non nelle pagine PHP se prima non li codifichi in UTF-8 (utf8_encode).

                            Ciao

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • T
                              talkoman User Attivo • ultima modifica di

                              Quindi la procedura da fare è la seguente?

                              • Prima di inserire i dati nel DB faccio
                                [PHP]utf8_decode($tringa)[/PHP] e la metto nel DB

                              Poi per leggere dal DB faccio

                              [PHP]utf8_encode($tringa)[/PHP]

                              Correggimi se sbaglio

                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              • M
                                mirkoagrati User Attivo • ultima modifica di

                                Esatto,
                                proprio quello che volevo spiegarti.

                                E' da prendere con le pinze,
                                ovvero è il risultato di miei ragionamenti senza aver visto codice.

                                Prova e fammi sapere.

                                Ciao

                                0 Miglior Risposta Ringrazia Cita Rispondi

                                  1 Risposta Ultima Risposta
                                • T
                                  talkoman User Attivo • ultima modifica di

                                  FUNZIONAAAAA!!!! Anche se quando leggo dal DB non metto encode_uft8()

                                  Ma per l'invio delle email con la funzione mail() per evitare che arrivino caratteri strani agli utenti, come devo fare? Sapresti aiutarmi anche lì?
                                  Grazie di tutto 😉

                                  0 Miglior Risposta Ringrazia Cita Rispondi

                                    1 Risposta Ultima Risposta
                                  • M
                                    mirkoagrati User Attivo • ultima modifica di

                                    Dunque,
                                    la prima cosa da fare è avvisare quelli di Aruba (se è vero quello che hai letto e hai postato) che il loro DB non è UTF-8.

                                    Poi per l'invio di email è ormai la solita minestra:
                                    prova a giocare con queste due funzioni.

                                    Comunque, se invii le mail in formato HTML potresti dare per scontato che è come aver a che fare con un browser, e quindi saresti già a posto.

                                    Ciao e buon lavoro

                                    0 Miglior Risposta Ringrazia Cita Rispondi

                                      1 Risposta Ultima Risposta
                                    • T
                                      talkoman User Attivo • ultima modifica di

                                      L'ho dedotto io che il database è in UTF-8 da qui:

                                      [URL=http://img29.imageshack.us/i/immagine2xf.png/]image

                                      0 Miglior Risposta Ringrazia Cita Rispondi

                                        1 Risposta Ultima Risposta
                                      • M
                                        mirkoagrati User Attivo • ultima modifica di

                                        manca il link

                                        0 Miglior Risposta Ringrazia Cita Rispondi

                                          1 Risposta Ultima Risposta
                                        • T
                                          talkoman User Attivo • ultima modifica di

                                          C'è l'immagine...

                                          image

                                          0 Miglior Risposta Ringrazia Cita Rispondi

                                            1 Risposta Ultima Risposta
                                          • M
                                            mirkoagrati User Attivo • ultima modifica di

                                            Aiuto,
                                            mi sono rincoglionito:

                                            non vedo ne link ne immagini.

                                            :fumato:

                                            0 Miglior Risposta Ringrazia Cita Rispondi

                                              1 Risposta Ultima Risposta
                                            Caricamento altri post
                                            Rispondi
                                            • Topic risposta
                                            Effettua l'accesso per rispondere
                                            • Da Vecchi a Nuovi
                                            • Da Nuovi a Vecchi
                                            • Più Voti