Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Problema UPDATE MySQL

  1. #1

    Problema UPDATE MySQL

    Ho una tabella MySQL con un campo contenente del codice HTML

    Ho creato una pagina internet con cui attraverso l'editor visuale CKEditor modifico il testo contenuto in un'area del mio sito.
    Nel momento del salvataggio a video vedo il codice scritto bene con i vari TAG tipici dell'HTML mentre nel database mi sballa tutta la codifica.

    Questo è il codice per l'inserimento che sto usando:

    codice:
    <?php $con = mysql_connect(mio_host, mio_user, mia_pass) or die ('Impossibile connettersi: ' . mysql_error()); mysql_select_db("mio_database", $con);  mysql_query("SET CHARACTER SET 'utf8'");  mysql_query("UPDATE mia_tabella SET campo_testo = '$postedValue'");  mysql_close($con); ?>
    Dove la variabile $postedValue è il codice HTML generato da CKEditor



    Grazie

  2. #2
    Dai un aiutino pls

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    579
    molto probabilmente il problema deriva dalla codifica :

    mysql_query("SET CHARACTER SET 'utf8'");

    se vuoi memoriazzare dei tag su mysql ti consiglio di utilizzare str_replace();

    Codice PHP:
    $var =  str_replace("&gt;"">"str_replace("&lt;""<"$_POST["campo"])); 
    e poi quando estrai il dato dal db fai il contrario

    Codice PHP:
    $var str_replace(">""&gt;"str_replace("<""&lt;"$campo_mysql)) . 
    ciao
    l'uomo è tutto ciò che non può essere

    http://www.ebug.it Discussioni da web Designer

    http://www.ebug.it/?p=354 e Dart Fener dove lo mettiamo lol

  4. #4
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da StarFinger
    se vuoi memoriazzare dei tag su mysql ti consiglio di utilizzare str_replace();
    ma per pietà

  5. #5
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120

    Re: Problema UPDATE MySQL

    Originariamente inviato da mammamia77
    Ho una tabella MySQL con un campo contenente del codice HTML

    Ho creato una pagina internet con cui attraverso l'editor visuale CKEditor modifico il testo contenuto in un'area del mio sito.
    Nel momento del salvataggio a video vedo il codice scritto bene con i vari TAG tipici dell'HTML mentre nel database mi sballa tutta la codifica.
    Quando salvi un campo di testo in un db devi usare una funzione di escape.
    C'è una pillola al riguardo

  6. #6

    Re: Re: Problema UPDATE MySQL

    Originariamente inviato da luca200
    Quando salvi un campo di testo in un db devi usare una funzione di escape.
    C'è una pillola al riguardo
    Quale pillola?
    Mi daresti un link, un'esempio, qualcosa ?

  7. #7

  8. #8
    Ho letto la tua Pillola e ho fatto un pò di prove usando questo codice:

    codice:
    <?php
    function strip_magic ($value)
    {
        $value = (get_magic_quotes_gpc()) ? stripslashes($value) : $value;
        return $value;
    }
    $campo = strip_magic($postedValue); 
    $campoPerDb = mysql_real_escape_string($campo, $con);
    
    // UPDATE a MySQL
    mysql_query("UPDATE `tb_vendite` SET `testo_vendita` = '$campoPerDb'");
    
    mysql_close($con);
    ?>
    Comunque sia nel momento del salvataggio del codice in MySQL un <HTML> mi si trasforma in &lt;html&gt;
    A video facendo un
    codice:
    echo $postedValue;
    invece vedo il codice formattato perfettamente.

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

    Comunque sia nel momento del salvataggio del codice in MySQL un <HTML> mi si trasforma in &lt;html&gt;
    I dati non si trasformano per magia. I casi sono due: o ci hai applicato tu una funzione (tipo htmlspecialchars(), sto andando a memoria un po' di fretta) oppure ti arriva già così, verosimilmente formattato dall'editor.

  10. #10
    Originariamente inviato da luca200
    I dati non si trasformano per magia.
    e fin qui, diciamo che quasi ci ero arrivato da solo...


    Comunque nel frattempo ho provato un codice del tipo:

    codice:
    $html = str_replace("&gt;", ">", str_replace("&lt;", "<", $postedValue));
    Adesso l'inserimento è corretto, probabilmente a video un ECHO della variabile mi risultava corretta perchè il Browser convertiva automaticamente i codici &gt; e &lt; in < e >



    Ok, comunque Grazie

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 © 2024 vBulletin Solutions, Inc. All rights reserved.