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. Caratteri speciali e codici maligi, la sfida dopo form
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • M
      mark116 User • ultima modifica di

      Caratteri speciali e codici maligi, la sfida dopo form

      Lo so che questo argomento è stato trattato più volte in questo ed in altri forum io stesso, ho aspettato molto prima di postare questo 3D ma mi sembra arrivato il momento di fare luce su un problema che si presenta a me da più di un anno e dal numero delle richieste nei vari forum anche a molti altri utenti. Sto parlando dei caratteri speciali, e delle sequenze di codice (speso maligno) che vengono inseriti nei forum e spesso mal interpretati dai DB.

      Io stesso fino a poco tempo fa usavo la combinazione di 4 funzioni php:
      htmlspecialchars
      nl2br
      stripslashes
      trim

      Magari non le usavo nel modo corretto ma ho spesso avuto problemi anche utilizzando questi tag.

      Recentemente ho scoperto che per far funzionare il tutto il db e la connessione devono essere settati ? utf8_general_ci?, francamente non ho assolutamente capito come si setta la connessione, e dopo aver passato quasi un ora a modificare tutti i campi delle mie tabelle nella codifica richiesta le tabelle mi appaiono ancora con collation ?latin1_swedish_ci?.
      Speravo che utilizzando un WYSIWYG come TinyMce cambiasse qualcosa ma non è stato così.

      Quindi chiedo a chiunque abbia lo stesso problema o (speriamo) a chi lo abbiamo risolto di rispondere e di spiegare chiaramente la sua soluzione.

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • T
        thedarkita ModSenior • ultima modifica di

        Ciao Mark116,

        per settare la connessione in utf8, subito dopo la connessione al database esegui questa query:

        SET NAMES utf8
        
        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • M
          mark116 User • ultima modifica di

          Scusami non ho capito:

          [PHP]
          include("/home/worldte1/public_html/script/config.php");
          $db = mysql_connect($db_host, $db_username, $db_password, $prefix);
          if ($db == FALSE)
          die ("Errore nella connessione. Vi preghiamo di informare l'assistenza di questo errore.");
          mysql_select_db($databse_name, $db)
          or die ("Errore nella selezione del database. Vi preghiamo di informare l'assistenza di questo errore.");

          [/PHP]

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • T
            thedarkita ModSenior • ultima modifica di

            [php]
            include("/home/worldte1/public_html/script/config.php");
            $db = mysql_connect($db_host, $db_username, $db_password, $prefix);
            if ($db == FALSE)
            die ("Errore nella connessione. Vi preghiamo di informare l'assistenza di questo errore.");
            mysql_select_db($databse_name, $db)
            or die ("Errore nella selezione del database. Vi preghiamo di informare l'assistenza di questo errore.");
            mysql_query("SET NAMES utf8") or die(mysql_error());
            [/php]

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • M
              mark116 User • ultima modifica di

              Grazie mille, e per quanto riguarda i db?

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • T
                thedarkita ModSenior • ultima modifica di

                Imposta sia le tabelle che loro campi in utf8_general_ci.

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • M
                  mark116 User • ultima modifica di

                  Come si impostano le tabelle? i campi ci sono riuscito

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • T
                    thedarkita ModSenior • ultima modifica di

                    Vai sulla tabella con phpmyadmin ed in operazioni trovi la collation.

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • M
                      mark116 User • ultima modifica di

                      Grazie mille, se hai altri consigli specie sull'importazione nel db o altro ti invito a condividerli

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • M
                        mark116 User • ultima modifica di

                        Aggiungo questo, dopo aver istallato tinymce le cose sono migliorate un pò.
                        Importo il testo con la funzione stripslashes, successivamente inserisco il testo in un arry:

                        [php]
                        $arry_message[$number] = $message_user;
                        $message = serialize($arry_message);
                        [/php]E carico il messaggio nel db. Gli unici caratteri che non funzionano sono ' e .

                        Sapete per caso come risolvere?

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • T
                          thedarkita ModSenior • ultima modifica di

                          Che significa non funzionano? Perchè fai stripslashes, fai un addslashes nel caso in cui i magic_quotes siano su off.

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • M
                            mark116 User • ultima modifica di

                            Allora ho modificato, il magic_quotes non so se è on o off e non posso modificarlo.

                            Ho cambiato, ora se inserisco " oppure \ oppure ' non mi stampa l'arry, tutti i campi spariscono.

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • T
                              thedarkita ModSenior • ultima modifica di

                              [php]
                              // Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza
                              if(!get_magic_quotes_gpc())
                              {
                              $var1 = addslashes($var1);
                              $var2 = addslashes($var2);
                              }
                              [/php]

                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              • M
                                mark116 User • ultima modifica di

                                Ho inserito questo codice

                                if (get_magic_quotes_gpc())
                                {
                                $message_user = addslashes($_REQUEST['message_user']);
                                } else {
                                $message_user = $_REQUEST['message_user'];
                                }
                                è giusto? se si ho risolto il problema con ", ma \ non funziona ancora mentre ' mi da addirittura errore di connessione.

                                0 Miglior Risposta Ringrazia Cita Rispondi

                                  1 Risposta Ultima Risposta
                                • T
                                  thedarkita ModSenior • ultima modifica di

                                  No, è:
                                  [php]
                                  if(!get_magic_quotes_gpc())
                                  [/php]
                                  Errore di connessione o errore di sintassi della query?

                                  0 Miglior Risposta Ringrazia Cita Rispondi

                                    1 Risposta Ultima Risposta
                                  • M
                                    mark116 User • ultima modifica di

                                    Allora nel caso precedente con errore intendevo

                                    [php]
                                    if (mysql_query($query_update, $db))
                                    {
                                    Completato();
                                    }
                                    else
                                    {
                                    Errore_Sql();
                                    }
                                    [/php]Mi da Errore_Sql();

                                    Se invece utilizzo il sistema che mi hai appena dato:

                                    " ' \ mi sparisce tutto l'arry.

                                    0 Miglior Risposta Ringrazia Cita Rispondi

                                      1 Risposta Ultima Risposta
                                    • M
                                      mark116 User • ultima modifica di

                                      Ciao mi sono rassegnato e ho fatto così:

                                      if (!get_magic_quotes_gpc())
                                      {
                                      $message_user = $_REQUEST['message_user'];
                                      $message_user = str_replace('"','"', $message_user);
                                      $message_user = str_replace('?','"', $message_user);
                                      $message_user = str_replace('?','"', $message_user);

                                      $message_user = str_replace("'","'", $message_user);
                                      $message_user = str_replace("?","'", $message_user);
                                      $message_user = str_replace("?","'", $message_user);
                                      } else {
                                      $message_user = $_REQUEST['message_user'];
                                      }
                                      Solo che non riesco a farlo con \ potete aiutermi? in più volevo capire come inserire la funzione che blocca i SQL Injection

                                      Grazie mille

                                      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