caratteri speciali, accenti e a capo

asevenx

Utente Attivo
7 Nov 2009
312
0
16
Salve, ho un db gestito in mysql e con php ho creato delle bacheche dove l'utente può lasciare messaggi e commentare. Tuttavia, appaiono i caratteri del tipo è, ù, ò al posto dei caratteri accentati à ù ò ecc. Come faccio a visualizzarli correttamente? Devo dire che nella mia homepage ho creato 3 bacheche collegati a 3 db e in ogni di questa form con possibilità di lasciare commenti collegati ad altrettanti db, quindi ho 6 db. Ricordo che aggiungendo delle funzioni in php dopo la creazione del db tutto si visualizzava bene, ma avendone 6 la cosa si complica (almeno per me). Io usavo questa funzione (tralaltro consigliato da voi se non sbaglio):
PHP:
//funzione per visualizzare gli accenti
function my_htmlspecialchars($var)
{
    $search = array('è', 'é', 'ì', 'ù', 'ò', 'à');
    $replace = array('è', 'é', 'ì', 'ò', 'à');
    $var = str_replace($var, $search, $replace);
    
    return $var;
}
ma ora non so come inserirla (o se è corretta). La struttura delle varie bacheche è cosi:
PHP:
<?php
//dati database
$host = "localhost";
$username = "xxx";
$password = "";
$database = "xxx";
$tabella_1 = "forum_1";
$tabella_1_comm = "forum_1_commenti";

//connessione e invio al DB
$connessione = mysql_connect($host, $username, $password) or die("Connessione DB fallita");
mysql_select_db($database, $connessione) or die("Selezione DB fallita");

//visualizza tutti i record nel DB
$query_sito = "SELECT * FROM $tabella_1 Order By idfan DESC LIMIT 20";
$result_sito = mysql_query($query_sito, $connessione) or die('Errore caricamento...');

//ciclo while per visualizzare i dati estratti dal database
while($resrow_sito = mysql_fetch_row($result_sito))
{
$id_sito = $resrow_sito[0];
$nome_sito = addslashes($resrow_sito[1]);
$titolo_sito = addslashes($resrow_sito[2]);
$commento_sito = ($resrow_sito[3]);
$data_sito = addslashes($resrow_sito[4]);

//Stampo il risultato
echo "
<div class='divcommenti' align='center'>
	<table class='tablecommenti' cellpadding=0 cellspacing=0>
		<tr>
			<td class='idx'>$id_sito</td>
			<td class='col1comm' >$titolo_sito</td>
			<td class='col5comm'>$data_sito</td>
		</tr>
		<tr>
			<td class='idx2'>&nbsp </td>
			<td class='col3comm' colspan=2>
				<font class='col2comm'>$nome_sito:</font> $commento_sito</td>
		</tr>";
		
//seleziono i commenti dal DB
$query_sito_comm = "SELECT * FROM $tabella_1_comm Order By idfan_c DESC";
$result_sito_comm = mysql_query($query_sito_comm, $connessione) or die('Errore caricamento...');

//ciclo while per visualizzare i dati estratti dal database
while($resrow_sito_comm = mysql_fetch_row($result_sito_comm))
{
$id_sito_comm = $resrow_sito_comm[0];
$nome_sito_comm = addslashes($resrow_sito_comm[1]);
$commento_sito_comm = ($resrow_sito_comm[2]);
$data_sito_comm = addslashes($resrow_sito_comm[3]);
$id_sito_ris = addslashes($resrow_sito_comm[4]);

//riconoscimento dei commenti di un post tramite id
if ($id_sito_ris == $id_sito) {

//Stampo il risultato (verificato OK)
echo"	
		<tr>
			<td class='idx2'>&nbsp </td>
			<td class='col8comm' colspan=2><br>RE: <font class='col7comm'>$nome_sito_comm:</font> $commento_sito_comm</td>
		</tr>
		<tr>
			<td class='idx2'>&nbsp </td>
			<td class='col6comm' colspan=2>$data_sito_comm</td>
		</tr>	";
	}
}

echo"
		<tr>
			<td class='idx2'>&nbsp </td>
			<td colspan='2' class='col4comm'>
			
					<div class='outer-container'>
						<div class='button-container'><span>Inserisci un commento</span></div>
						<div class='closed'>
						
						<form method='post' action='forum/cartella/commenti_ins2.php'>			
							<table>
								<tr>
									<td><div style='font-size:12px'>Nome:</div></td>
									<td>
										<input class='commentabox2' type='text' name='nome_sito_c'>
									</td>
									<td>
										<input class='commentabox3' type='text' name='data_sito_c' readonly='readonly' 
											value='"; echo date("d/m/y"),' ',ora,' ',date("H:i"); echo"'>
									</td>
									<td>
										<input class='commentabox4' type='text' name='id_sito' readonly='readonly' value='$id_sito'>
									</td>
								</tr>
								<tr>
									<td colspan=4>
										<textarea class='commentabox1' name='commento_sito_c' wrap='hard'></textarea>
									</td>
								</tr>
								<tr>
									<td colspan=4>
										<input type='submit'value='Invia commento' name='action'>
										<input type='reset' value='Cancella'>
									</td>								
								</tr>	
							</table>
						</form>

						</div>
					</div>
					
			</td>
		</tr>

</div>
";	
}
echo"
		<tr>
			<td colspan='3' class='col5comm'>leggi tutti i post</td>
		</tr>
	</table>
";
				
?>

inoltre vorrei visualizzare gli "a capo". grazie
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
prova semplicemente senza usare la function my_htmlspecialchars($var)

PHP:
	//....
	$commento_sito = htmlspecialchars($resrow_sito[3]); 
	//.....

in che senzo vorresti visualizzare gli "a capo"? cioè a video vuoi che la riga vada a capo?
prova a usare agiungendola la funzione nl2br()

PHP:
	//....
	$commento_sito = nl2br(htmlspecialchars($resrow_sito[3])); 
	//.....

p.s.
nl2br() trasforma i \n eventualmente presenti in <br />
 

asevenx

Utente Attivo
7 Nov 2009
312
0
16
ho provato ma ora mi va a capo troppo, ogni tre o quattro parole, non riesco a capire il motivo sinceramente. Lo spazio tra le righe le voglio solo quando l'utente va a capo. Che cosa sono \n? Mentre htmlspecialchars non va, ho provato anche ad inserire un messaggio con parole accentate ma appaiono ancora quei caratteri.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
diciamo che gli \n sono gli a capo in formato testo (che l'html non capisce).
generalmente vengono inseriti quando in un campo di input di un form premi l'enter per andare a capo.
verifica con vedi sorgente del bw non siano doppi.
per i caratteri accentati guardo se trovo qualcosa e poi, spero, ti sò dire.
 
Discussioni simili
Autore Titolo Forum Risposte Data
J Xml errore su caratteri speciali e accenti XML 0
purno caratteri speciali: apostrofi accenti eccetera XML 2
B Non riesco a trovare i cognomi con i caratteri speciali in Access (Microsoft 365) MS Access 0
P Codifica caratteri speciali mysql php PHP 0
Z Caratteri speciali irriconoscibili PHP 1
R Tutto su utf-8 ma ancora problemi con i caratteri speciali in mysql MySQL 1
A eliminare caratteri speciali mettendo uno spazio PHP 0
A [PHP] caratteri speciali PHP 14
gandalf1959 problema con la codifica caratteri accentati e speciali tra php e mysql PHP 3
F [Joomla] Caratteri speciali si vedono tutti sbagliati su Safari Joomla 2
F [Javascript] Verificare la presenza di caratteri speciali in una password Javascript 3
fabryx [PHP]RISOLTO: Parsing xml nodi con caratteri speciali PHP 1
S stringhe con caratteri speciali PHP 3
F sql e record con caratteri speciali e spazi Classic ASP 1
A visualizzare caratteri speciali Database 1
W Controllo caratteri speciali PHP 2
L Caratteri speciali e apici PHP 2
G Invio caratteri speciali tramite jquery/ajax Javascript 1
G Invio caratteri speciali tramite jquery/ajax Ajax 1
felino [Ajax] Passare caratteri speciali in un URL Ajax 3
asevenx problema con caratteri speciali e str_replace PHP 4
Sevenjeak [Java] aiuto espressioni regolari, con caratteri speciali Java 2
C Visualizzare i caratteri accentati e speciali in una textarea Javascript 16
A [Json]Caratteri speciali e url PHP 6
minatore Caratteri speciali e parole accentate PHP 4
novello88 Caratteri speciali HTML HTML e CSS 2
K Ajax e caratteri speciali Ajax 0
M Conversione Caratteri speciali per URL PHP 6
T [php-mysql] Caratteri speciali e accentati PHP 10
L problema scrittura file e caratteri speciali PHP 1
M caratteri speciali ed estrazione dati Database 4
helpdesk Caratteri speciali PHP 6
LaKanka Inserimento caratteri speciali nel DB PHP 25
U Caratteri Speciali php txt html PHP 2
T select e caratteri speciali PHP 3
A Visualizzazione caratteri speciali PHP 0
F Caratteri invisibili XML 4
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
A eliminare caratteri diacritici con codice ascii PHP 4
MarcoGrazia Eliminare in automatico i caratteri spuri all'inizio e alla fine di una stringa Snippet PHP 0
K [javascript] Tecnica per rilevare celle contenenti caratteri ricevute in dinamico Javascript 1
M Matrice di caratteri ( inseriti da tastiera ) ordinati in ordine alfabetico C/C++ 3
M [PHP] Troncare caratteri PHP 1
A [PHP] Modifica caratteri di una query Oracle SQL PHP 0
C Caratteri accentati php PHP 2
Z [Java] Caratteri distorti e spaziature errate nelle stampe di componenti swing Java 0
S [PHP] visualizzazioe caratteri strani PHP 13
borgo italia [PHP] ricerca caratteri accentati PHP 4
trattorino [Javascript] FAR sparire campo dopo top caratteri Javascript 2
D [Javascript] aggiornare numero caratteri se campo già popolato Javascript 5

Discussioni simili