Newsgroup: it.comp.www.php
Titolo: motore di ricerca e caratteri accentati - fckeditor

Salve a tutti.
Ho creato uno script di gestione news.Utilizzo la codifica ISO-8859-1
Nel campo titolo le parole accentate vengono memorizzate nel DB coosì
come sono
Nel campo destinato al testo della notizia al posto della textarea ho
utilizzato l'editor Fckeditor.che le memorizza invece sostituendo i
caratteri accentati con agrave; egrave; ecc...
e tutto fila liscio. Il problema sorge quando devo fare una ricerca di
una parola accentata all'interno della notizia per chè non viene
trovata
Ad esempio la parola validità viene registrata validit&agrave;
Come ovviare al problema? C'è una funzione che può convertire al volo
le parole così registrate in quelle cercate? Sono principiante. Ogni
consiglio è gradito.
Grazie ragazzi.


Ho risolto facendo così
nel campo di ricerca $chiave
$chiave=htmlentities($chiave)
quindi digitando la parola validità otterrò validit&grave;


ovviamente ho dovuto memorizzare anche il titolo della notizia così
$titolo = htmlenties($titolo)  ottenendo sia l'escape dei doppi apici
che l'escape dei caratteri accentati.
Correggetemi se sbagliio

astraweb wrote:

IMHO una boiata.
I dati nel db vanno salvati il più "puri" possibile e soltanto in fase 
di utilizzo/visualizzazione li (eventualmente) 
encodi/ripulisci/trasformi/sarcazzo.
Quindi, il problema è a monte, direi in fckeditor.
Ciao.
-- 
*** Linux user # 198661 ---_ ICQ 33500725 ***
    ***  Home  
http://www.kailed.net
  ***
        ***  Powered by openSUSE  ***

 - Mostra testo citato -
Hai ragione, il problema  fckeditor che converte in automatico i
caratteri accentati nelle loro corrispondenti entità html
allora se provassi a registrare nel db in questo modo?
if ( get_magic_quotes_gpc() )
		$postedValue =  (stripslashes( $postedValue )) ;
	else
		$postedValue = $postedValue =html_entity_decode
(mysql_real_escape_string($postedValue )) ;
così funziona le parole accentate vengono salvate am pure gli apici
doppi e singoli
quale è il miglior compromesso per ottenere anche un pò di sicurezza
in più?
scusate la mia ignoranza... non vi incavolete se chiedo

 caratteri accentati nelle loro corrispondenti entità html
Sicuro che non ci sia un'opzione in fckeditor per disabilitare la 
conversione dei caratteri ?
L'importante è controllare i dati quando li "tratti", non quando li 
salvi.


On 8 Nov, 17:34, "
Dani...@karma.kailed.net
"

una soluzione ci sarebbe
usare html_entity_decode in fase di inserimento dati
ma se volutamente inserisco un tag tipo <script> in visualizzazione
viene eseguito
a meno che non debba flltrarlo ad esempio con striptag .Devo decidere
quale è la soluzione meno farraginosa

 quale è la soluzione meno farraginosa
Appunto. Frega nulla se salvi "<script>" nel db ma lo devi "filtrare 
quando lo visualizzi.
Decidi cosa vuoi far passare/rimuovere. Il resto lo lasci così com'è.


Innanzi tutto grazie per l'aiuto
Io avrei risolto così solo per il corpo della notizia (per il titolo e
l' occhiello utilizzo htmlspecialchar)
if ( get_magic_quotes_gpc() )
		                     {
		                      	$textarea = stripslashes( $testo) ;
		                      }
$textarea=mysql_real_escape_string($testo);
 $sostitusci = array
('&agrave;','&egrave;','&igrave;','&ograve;','&ugrave;','&Agrave;','&Egrave;','&Igrave;','&Ograve;','&Ugrave;','&aacute;','&eacute;','&iacute;','&oacute;','&uacute;','&Aacute;','&Eacute;','&Iacute;','&Oacute;','&Uacute;');
$con_questo = array
('à','è','ì','ò','ù','À','È','Ì','Ò','Ù','á','é','í','ó','ú','Á','É','Í','Ó','Ú');
$textarea=str_replace($sostituisci, $con_questo, $textarea);
Ti saluto sei stato molto gentile

 Ho creato uno script di gestione news.Utilizzo la codifica ISO-8859-1
se sei ancora in tempo salvati tanti mal di testa e passa a UTF-8