Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di kepal
    Registrato dal
    Apr 2004
    Messaggi
    260

    Realizzare un QUOTE nel forum

    Ciao a tutti!

    Un messaggio in un DB è salvato in un campo TEXT.
    Per scriverlo ho usato una TEXTAREA e ho usato la funzione nl2br() per gestire gli spazi.

    Se voglio richiamare il messaggio in una TEXTAREA, non compaiono gli spazi, ma


    Come faccio a trasformare questi in spazi?
    Come faccio a tornare al messaggio originale dopo aver usato le seguenti funzioni:

    Codice PHP:
    $messaggio stripslashes($messaggio);
    $messaggio htmlspecialchars($messaggio);
    $messaggio nl2br($messaggio);
    $messaggio addslashes($messaggio); 
    Ciao e grazie
    Simo
    ...IL GIANSA...

  2. #2
    ciao

    io ti consiglio di utilizzare solo queste due funzioni

    Codice PHP:
    $stringa_codificata=urlencode($stringa);
    $stringa_decodificata=urldecode($stringa);

    $stringa=nl2br($stringa);
    $stringa str_replace"\n"'
    '
    $stringa ); 
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

  3. #3
    Utente di HTML.it L'avatar di kepal
    Registrato dal
    Apr 2004
    Messaggi
    260
    Innanzitutto grazie per il consiglio...

    Usando le funzioni "urlencode" e "urldecode" va tutto bene, solo che quando metto un apostrofo, mi visualizza uno slash prima di esso.
    Esempio:

    invece di: L'ALBERO

    mi visualizza: L\'ALBERO

    Dove sbaglio?
    Ciao Simo
    ...IL GIANSA...

  4. #4
    le funzioni urlencode e urldecode non c'azzeccano una mazza ... per l'appunto sono per gli url...

    devi usare o htmlspecialchars o ancora meglio htmlentities ...

    ti conviene salvare nel DB il contenuto cosi come lo ricevi ... fai attenzione xo ad applicare l'apposita funzione per l'escape dei parametri del tuo DB

    e poi quando stampi il tutto ...

    $testo = nl2br(htmlentities(stripslashes($testo)));

    sarebbe corretto applicare queste funzioni quando salvi e riconvertire tutto all'originale con una serie di sostituzioni e espressioni regolari onde evitare di caricare il server inutilmente, ma va bene questa solizione per cose che non sono pesanti di per se o comunque abbastanza ridotte come dimensione
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  5. #5
    perchè dici che non vanno bene?

    se riescono a gestire tutti i caratteri speciali dove è il problema?
    "durante i primi 5 miuti di pioggia nel bosco c'è ancora asciutto, poi quando smetterà di piovere nel bosco cadranno gocce per 5 minuti.....la natura ha un'ottima memoria..."

    http://www.kumbe.it

  6. #6
    [supersaibal]Originariamente inviato da nik600
    perchè dici che non vanno bene?

    se riescono a gestire tutti i caratteri speciali dove è il problema? [/supersaibal]
    perché servono a gestire i caratteri speciali degli URL, ovvero quelli degli indirizzi web ... e non servono a gestire i caratteri speciali HTML

    ^^

    http://it2.php.net/manual/it/function.urlencode.php
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  7. #7
    Utente di HTML.it L'avatar di kepal
    Registrato dal
    Apr 2004
    Messaggi
    260
    Ciao!

    Ho seguito il tuo consiglio ma ho problemi nel far visualizzare il messaggio in una TEXTAREA (ad esempio per modificarlo).

    Uso questo per visualizzare:

    Codice PHP:
    $testo nl2br(htmlentities(stripslashes($testo)); 
    Dove sbaglio??

    Ciao Simo
    ...IL GIANSA...

  8. #8
    secondo me sbagli, perchè quando salvi i testi devi salvarli nel modo migliore possibile, ovvero senza mettere i
    .

    il testo lo elabori ogni volta che lo tiri fuori per massimizzare la compatibilità.


    quindi salva sempre i testi con gli a capo con \n, non trasformare le faccine in <img src>.

    ti servirà per il quote appunto

  9. #9
    [supersaibal]Originariamente inviato da kepal
    Ciao!

    Ho seguito il tuo consiglio ma ho problemi nel far visualizzare il messaggio in una TEXTAREA (ad esempio per modificarlo).

    Uso questo per visualizzare:

    Codice PHP:
    $testo nl2br(htmlentities(stripslashes($testo)); 
    Dove sbaglio??
    Ciao Simo [/supersaibal]
    sbagli perché manca una parentesi di chiusura...
    ecco il codice giusto:

    $testo = nl2br(htmlentities(stripslashes($testo)));

    ciao
    Il 90% dei problemi di un pc si trova
    tra la tastiera e la sedia.

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.