PDA

View Full Version : [php/html/db] testo nelle form


gaglioppo
04-12-2005, 09:04
ciao amici

sto realizzando un forum tutto da zero.
Non ho molte pretese, sono a buon punto, una delle cose
che ancora nn sono riuscito a fare è la seguente:

Quando si scrive un post si preme invio e si lasciano degli spazi bianchi (anche più di uno).
Quando visualizzo il post però nn vengono tenuti in considerazione ritorno a capo e spazi bianchi (ne visualizza solo 1 anche quando ce ne sono 10)

Ho provato ad usare il tag textarea ma l'effetto nn mi piace, e poi dovrei ridimensionarla al volo in base a quello che c'è scritto.
Chi mi sa consigliare?

p.s. mi servirebbe qualche suggerimento anche per evitare che le tabelle in cui sono inseriti i testi, visualizzando il thread, "esplodino" in dimensioni se un utente burlone si mette a scrivere tutto attaccato, grazie 2 volte

grazie

anonimizzato
04-12-2005, 09:19
Per gli "a capo" ti basta utilizzare la funzione nl2br() che converte i "newline" in tag <br />.

quindi es:

echo nl2br($myrow['corpo_messaggio']);

per la seconda invece basta implementare un sistema di word wrapping come indicato qui (http://it2.php.net/wordwrap)

Spero di esserti stato utile, ciao ;)

gaglioppo
04-12-2005, 10:31
grazie tantissimo

ho usato:

$testo_corretto=str_replace("<", "&lt;", $testo_post);
$testo_corretto=str_replace(">", "&gt;", testo_corretto);
$testo_corretto=nl2br($testo_corretto);
$testo_corretto = wordwrap($testo_corretto, 60,"\n", 1);

cosi ho elimintato l'html e ho introdotto dei <br>

ora mi resta solo da fare qualcosa per gli spazi bianchi

come devo fare?
potrei usare lo stesso metodo che ho usato per br,
cioè sostituire \n con <br>
come si indica lo spazio bianco?
potrei sostituire tutte le occorrenze con "&nbsp;"

max246
04-12-2005, 11:00
sicuro di aver scelto il campo TEXT nel db?

gaglioppo
04-12-2005, 11:26
certo, è di tipo text

kk3z
04-12-2005, 11:50
ora mi resta solo da fare qualcosa per gli spazi bianchi

come devo fare?
potrei usare lo stesso metodo che ho usato per br,
cioè sostituire \n con <br>
come si indica lo spazio bianco?
potrei sostituire tutte le occorrenze con "&nbsp;"

Beh, sostituirle tutte no, altrimenti ti trovi tutto il post pieno di "&nbsp;" anche con un'unico spazio; sarebbe meglio sostituire il doppio o il triplo spazio con altrettanti nbsp;

gaglioppo
05-12-2005, 09:46
la corrispondenza tra \n e <br> mi è chiara,
ma quale simbolo slashato \ corrisponde a "&nbsp;" ?

supponendo di avere i trattini come spazi, se scrivo:

pippo--------pippo---pippo

basterebbe sostituire -- con "&nbsp;&nbsp;",
perderei il numero di trattini dispari, ma già è un passo avanti.

kk3z
05-12-2005, 11:55
Nessun simbolo, semplicemente " ":
str_replace(" ", "&nbsp;&nbsp;", $stringa);