Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Problema con caratteri html

    ho un problema col il passaggio dei valori in get.
    io inserisco un articolo tramite ckeditor.
    nel db viene fuori così:
    Codice PHP:



        Porto Turistico
    </p>



        
    Da poco chiusa.</p>



        
    Il Salone Nautico dell&rsquo;Adriatico si &egraveconfermato un evento di rilievo internazionale che riesce a dare la giusta visibilit&agraveai propri espositori e alle novit&agravesul mercato con i media nazionali che hanno realizzato servizi dedicati al Salone.</p>



        
    Fano Yacht Festival

        Il Salone Nautico dell
    &rsquo;Adriatico:</p>



        <
    a href=\"http://www.fanoyachtfestival.it/\">[url]http://www.fanoyachtfestival.it/[/url]</a></p> 
    con i vari &rsquo; &agrave; ecc.....
    quando passo i valori in get nella text area faccio una cosa del genere:
    Codice PHP:
                        <textarea cols="" rows=""  id="testo_articolo" name="testo"><?php echo htmlentities(stripslashes($_GET['te'])); ?>
                        </textarea>
    questo funziona per gli url e i vari escape che mette ckeditor.
    nn funziona però per i vari &rsquo; &agrave;
    in pratica il testo viene spezzato in prossimità del primo &rsquo;
    come posso fare??

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Ti spezza il testo perché ' viene interpretato come terminatore di stringa, devi usare mysql_real_escape_string() in modo che vengano aggiunti gli escape davanti agli apici.

  3. #3
    ma questa funzione va bene anche se uso PDO?
    forse è una domanda scema però mettendo così:
    Codice PHP:
                        <textarea cols="" rows=""  id="testo_articolo" name="testo"><?php echo htmlentities(stripslashes(mysql_real_escape_string($_GET['te']))); ?>
                        </textarea>
    mi compare questo errore:
    codice:
    Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /web/htdocs/www.mysite.it/home/beta/admin/template/update_tpl.php on line 23
    
    Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /web/htdocs/www.mysite.it/home/beta/admin/template/update_tpl.php on line 23

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    quella funzione va usata in fase di inserimento dei dati nel db, non quando li si legge.

  5. #5
    Originariamente inviato da Alhazred
    quella funzione va usata in fase di inserimento dei dati nel db, non quando li si legge.
    giusto nn chi pensato.
    però io so che usando PDO nn serve usare quella funzione.
    ho provato ad usarla e nn ha salavto il testo.
    nn so se per colpa di PDO o di ckeditor.
    ho provato a mettere delle parole con apostrofo e nn inserisce nulla.

  6. #6
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  7. #7
    ho letto il link, ma qua urge un chiarimento.
    in generale PDO nn necessita di quella funzione.
    infatti nn ho mai avuto problemi.
    il problema secondo me è ckeditor.
    se inserisco un valore nel db (senza mysql_real_escape_string()) questo è quello che vedo in phpmyadmin:
    codice:
    
    
    	all&#39;amo</p>
    in pratica salva direttamente in html (qua fa vedere l'apostrofo ma sul db fa vedere all&#39 .
    se questo valore lo vedo in una normale pagine nn ho problemi in quanto ci pensa il browser a farmi vedere bene il contenuto.
    ma se passo il valore in get ad una textarea-ckeditor il testo viene troncato e si vede solo:
    all

    se provo ad inserire usando mysql_real_escape_string() invece il testo nn viene proprio inserito.
    il mio problema è solo far vedere il testo quando lo passo in get.

  8. #8
    nn so se può essere d'aiuto ma ho scoperto che magic_quotes_gpc è attivato.
    inoltre se provo a sampare questa stringa:
    echo '

    all &#3 9;amo</p>';
    mi stampa all'amo senza problemi.
    (ho messo gli spazi sennò si vedrebbe normalmente).

  9. #9
    Utente di HTML.it L'avatar di blekm
    Registrato dal
    Jun 2004
    Messaggi
    8,310
    usa il metodo strip_magic della pillola che ti ho postato, a me ha risolto tutti i problemi
    Il portale sul turismo a Lucca

    Siti web Lucca

    Vendo Tex a colori di Repubblica (primi 100 numeri) - info in pvt.

  10. #10
    ho provato.
    nella pagina:
    Codice PHP:
    saveArticle($_POST['testo']); 
    dove testo è la textarea con ckeditor.
    poi ho fatto così:
    Codice PHP:
    function strip_magic($value) {
        
    $value = (get_magic_quotes_gpc()) ? stripslashes($value) : $value;
        return 
    $value;
    }

    function 
    saveArticle($title$text$sec$cat$tags$pub) {
        global 
    $config;
        try {
            
    $prepare $config->getPdo()->prepare("INSERT articoli (articolo_titolo, articolo_testo, articolo_data, autore_FK, sezione_FK, categoria_FK, tags, pubblicato) VALUES (?,?,curdate(),?,?,?,?,?)");
            
    $prepare->execute(array(
                
    trim($title),
                
    strip_magic(trim($text)),
                
    $_SESSION['utente_id'],
                
    $sec,
                
    $cat,
                
    trim($tags),
                
    $pub
            
    ));
        } catch (
    Exception $e) {
            die(
    $e->getMessage());
        }

    l'articolo viene inserito correttamente, ma quando lo passo in get ho di nuovo l'errore.
    Codice PHP:



        
    [img]/media/images/vn_logo_main.jpg[/img]</p>



        [
    url="http://www.ciao.it"][url]http://www.ciao.it[/url][/url]</p>



        
    all &#3 9;amo</p> //senza sapzi ovviamente 
    l'immagine e il link vwngono caricati caricati correttamente con:
    Codice PHP:
    <textarea cols="" rows=""  id="testo_articolo" name="testo"><?php echo stripslashes($_GET['te']); ?>
                        </textarea>
    l'apostrofo no.

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.