Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    3

    Problema gestione caratteri a capo textarea

    Salve a tutti!
    Premetto di aver cercato riguardo all'argomento, ma non riesco proprio a venirne a capo.
    Il mio problema è il seguente.
    Ho una textarea in cui un utente dovrebbe andare ad inserire del codice. Tutto ok finché il contenuto della textarea non viene salvato sul db mysql. Qui vedo che i caratteri "a capo" ottenuti col tasto invio non vengono salvati, e quindi in fase di stampa -che effettuo tramite smarty- ottengo una riga che non mi tiene conto della formattazione della textarea.
    Se vado manualmente ad inserire un "a capo" nel db, in fase di stampa riesco a visualizzare l'andatura a capo. A questo punto credo il problema sia nel salvataggio su db.
    Sarei grato a chi sapesse illuminarmi sulla questione.
    Grazie per la disponibilità.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,501
    Che carattere "a capo" metti manualmente nel db?
    ?

    Hai provato a inserire il codice nella textarea passando la stringa a nl2br()?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    3
    Nel db per inserisco un carattere "a capo" intendo con il semplice tasto Invio.
    Inserendo nella textarea un \n il carattere "a capo" viene però registrato nel db.
    Ho provato inoltre a passare il tutto alla funzione nl2br prima dell'output ma niente.

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,501
    Perché la funzione nl2br() faccia il suo dovere devi andare a capo con invio nella textarea, non con \n.

    Assicurati inoltre che la comunicazione col db avvenga col corretto set di caratteri, se ad esempio usi tabelle utf8 anche la connessione al db deve essere utf8.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2013
    Messaggi
    3
    Intendevo dire che con \n il db mantiene il carattere a capo.
    Nella textarea vado ovviamente a capo col tasto invio, ma non viene salvato correttamente sul db. E usando la funzione nl2br() non risolvo il problema.
    Per quanto riguarda il set di caratteri è tutto ok.

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,501
    Se fosse tutto ok dovrebbe funzionarti perché io è così che faccio e non ho problemi, funziona regolarmente.

    Che collation è impostata per il db?
    Che charset è impostato per le tabelle?
    Con quale charset sono salvati i file php?
    In che formato sono salvati i file php (ansi, uft8, utf8 senza bom...)?
    Che charset specifichi nel tag meta del codice html?
    Che charset imposti (se lo imposti, e dovresti) subito dopo la connessione al db?

    Devi controllare tutte queste cose prima di dire che i set di caratteri sono a posto.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Se fosse tutto ok dovrebbe funzionarti perché io è così che faccio e non ho problemi, funziona regolarmente.

    Che collation è impostata per il db?
    Che charset è impostato per le tabelle?
    Con quale charset sono salvati i file php?
    In che formato sono salvati i file php (ansi, uft8, utf8 senza bom...)?
    Che charset specifichi nel tag meta del codice html?
    Che charset imposti (se lo imposti, e dovresti) subito dopo la connessione al db?

    Devi controllare tutte queste cose prima di dire che i set di caratteri sono a posto.
    ciao , ho ripescato questo vecchio post per capire e non andare sempre a caso sperando che il mondo ci aiuti.
    quali valori per i tuoi requisiti usi o mi consigli di utilizzare per avere lettere accentate e a capo con nl2br giusti?
    inoltre: questo su cui non ho mai capito:
    Con quale charset sono salvati i file php?
    In che formato sono salvati i file php (ansi, uft8, utf8 senza bom...)?
    sono caratteristiche dell' editor che uso?
    quindi le devo vedere o settare da editor?


    grazie intanto.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    Ho messo tutto a utf-8 e i caratteri funzionano bene.
    ho solo un problema oltre a quelli relativi all editor qui sopra:
    ho una textarea e quando inserisco gli a capo sul db tutto ok , ma quando li visualizzo, andandoli a pescare da db mi vede per ogni a capo \r\n e non va a capo il testo!.
    ho provato cosi:

    codice:
     <textarea id="msg" name="messaggio" rows="25" cols="55"><?php echo(nl2br($messaggio));?></textarea>
    ma mi visualizza sembre i \r\n

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.