Newsgroup: it.comp.www.php
Titolo: html -> mysql --> html (addslashes ecc...)

Ho questo problema: richiamando un campo da un Db Mysql lo visualizzo
male:
Esempio di un pezzo di codice dentro un form:
---------------------
Note:<br>
<textarea cols="60" rows="8" name="note"><?php echo "$row[note]";
?></textarea><br>
---------------------
Risultato su browser è un casella di testo con vari BR in giro...
---------------------
Ciao ora provo ad andare a capo <br />
<br />
Saluti
---------------------
Ecco quello che ho fatto
Ho creato un form con vari campi per una piccala gestione utenti;
sotto riporto solo due campo per fare l'esempio:
---------------- FORM ---------------------------------------
<form method="post" action="utenti_insert_save.php"
enctype="multipart/form-data">
Username:<br>
<input type="text" size="40" name="user"><br><br>
Note:<br>
<textarea cols="60" rows="8" name="note"></textarea><br>
<input type="submit" value="Invia"></form>
-------------------------------------------------------
---------- utenti_insert_save.php -----------------
if  (trim($user) == ""):
	echo "I campi Utente... devono essere compilati!!";
    else:
	$user = addslashes(stripslashes($user));
	$note  = addslashes(stripslashes($note));
	$user = str_replace("<", "&lt;", $user);
	$user = str_replace(">", "&gt;", $user);
	$note  = str_replace("<", "&lt;", $note);
	$note  = str_replace(">", "&gt;", $note);
	$note  = nl2br($note);
$db = mysql_connect($db_host, $db_user, $db_password);
$query = "INSERT INTO utenti
                  (user, note) VALUES ('$user', '$note')";
        mysql_close($db);
endif;
-------------------------------------------------------
Poi con uno scriptino, leggendo da db, riesco a creare l'elenco degli
utenti senza problemi e "scritto bene".
Se invece voglio modificare i dati degli utenti mi ritrovo dei
problemi di visualizzazione nel campo NOTE. In pratica dopo la
connessione al Db vorrei visualizzare i dati dentro i relativi box di
testo in modo da modificare quello che voglio per poi re-inviarlo...
ma il testo mi compare formattato male...
Username:<br>
<input type="text" size="40" name="user" value="<?php echo
"$row[user]"; ?>"><br><br>
Note:<br>
<textarea cols="60" rows="8" name="note"><?php echo "$row[note]";
?></textarea><br>
Ciao ora provo ad andare a capo <br />
<br />
Saluti
------------------------
Qualcuno mi sa aiutare? Ho letto già qualche Faq ma non riesco ad
applicare al mio caso...
-- 
La rovina del mondo sarà l'indifferenza...
...ma chi se ne fregaaa!

 ma il testo mi compare formattato male...
Definisci "male".
-- 
I am what I am, I do what I can
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
L'uomo, conscio di sbagliare, persevera.


Ho provato ad inserire in questo modo:
Ciao[INVIO]
da[INVIO]
Ric[INVIO]
in un file che inserisce i dati nel db così:
$note  = addslashes(stripslashes($note));
$note = htmlentities($note);
Togliendo "addslashes" non capiva mai quando andavo a capo... allora
l'ho lasciato...
e poi ho provato a richiamare i dati così:
$note = html_entity_decode($row['note']);
Ma mi succede questo: nella stessa pagina scrivo 
----------------------------------------------
echo "Note: $note <br><br>";
echo "<textarea cols=\"60\" rows=\"8\"
name=\"note\">$note;</textarea><br>";
----------------------------------------------
Sembra che i comportamenti siano diversi a seconda che ci si trovi
dentro una textarea o meno...
La prima riga mi da' un risultato del tipo
Ciao da Ric
Mentre la seconda riga (cioè dentro la TextArea)  mi da':
Ciao
da
Ric
Come si spiega?


 Come si spiega?
Forse ti conviene iniziare dalle basi dell'HTML. Il comportamente e'
corretto, la renderizzazione HTML non tiene conto ne degli spazi ne dei
caratteri \r, \n, \t etc. Cosa diversa riguarda il campo textarea, il
tag pre etc.
-- 
I am what I am, I do what I can


 ha scritto nel messaggio
news:cctpii$mrt$1...@newsreader.mailgate.org...


 ok, ciao, ti propongo questa soluzione....
Please 
http://wiki.news.nic.it/QuotarBene


  con insistenza e convinto delle
proprie azioni affermava:
Vi ringrazio a tutti e due... mi avete schiarito le idee
