operazioni php-mysql Cirillico

64 views
Skip to first unread message

Luigi De Luca Cuccia

unread,
Apr 10, 2012, 10:10:02 AM4/10/12
to pug-...@googlegroups.com
Ciao a tutti, ho un problemino (e non ho molto tempo) quindi mi rivolgo a voi.
 
ho da preparare un back end multilingua, e tra queste devo prevedere la possibilità di salvare dei contenuti in russo, premetto che il mio db mysql è utf-8 (e provando a scrivere al suo interno direttamente i dati me li salva correttamente) e se provo a visualizzare a front-end il contenuto vedo i dati corretti,
 
la mia difficoltà è nel salvataggio, attualmente salvo i dati con

mysql_real_escape_string(stripslashes($form_field_article))

fatemi sapere se avete dritte utili.

Grazie ancora, Luigi.

 

Giorgio Cefaro

unread,
Apr 10, 2012, 10:19:17 AM4/10/12
to pug-...@googlegroups.com
Ti consiglio vivamente di abbandonare le funzioni mysql di php a
favore di PDO.
A quel punto l'escaping ce l'hai gratis.

2012/4/10 Luigi De Luca Cuccia <her...@gmail.com>:

> --
> Gruppo "PUG Roma" di Google Gruppi.
> https://groups.google.com/forum/#!forum/pug-roma
> http://roma.grusp.org

Cesare D'Amico

unread,
Apr 10, 2012, 10:29:07 AM4/10/12
to pug-...@googlegroups.com
In data martedì 10 aprile 2012 16:10:02, Luigi De Luca Cuccia ha scritto:
> la mia difficoltà è nel salvataggio, attualmente salvo i dati con
> mysql_real_escape_string(stripslashes($form_field_article))

Che errore riscontri?

--
Cesare D'Amico - Wyrd Software
http://cesaredami.co
http://about.me/cesaredamico
Mobile 320.0635028 | Skype cesaredamico

Giorgio Cefaro

unread,
Apr 10, 2012, 10:41:42 AM4/10/12
to pug-...@googlegroups.com
Il mio era un consiglio di natura più generale, le funzioni php mysql
sono una pratica decisamente sconsigliata, in generale.
Nel tuo caso specifico, ci puoi dare più informazioni? Che problema
hai nel dettaglio?
I caratteri cirillici vengono salvati male?
In questo caso forse ti serve un:
mysql_query("SET NAMES 'utf8'")
prima di eseguire le query?

2012/4/10 Cesare D'Amico <ces...@wyrd.it>:

Luigi De Luca Cuccia

unread,
Apr 10, 2012, 10:57:11 AM4/10/12
to pug-...@googlegroups.com
Il giorno 10 aprile 2012 16:29, Cesare D'Amico <ces...@wyrd.it> ha scritto:
In data martedì 10 aprile 2012 16:10:02, Luigi De Luca Cuccia ha scritto:
> la mia difficoltà è nel salvataggio, attualmente salvo i dati con
> mysql_real_escape_string(stripslashes($form_field_article))

Che errore riscontri?
 
in una altra parte dell'applicazione parsavo le stringhe con un html_entity_encode per risolvere altri problemi (apici, lettere accentate, ecc.) e così facendo mi converte dei caratteri e poi mi spezzetta il risultato salvando solo il primo pezzo, se disabilito questa parte il sistema normale funziona anche in cirillico, però perdo delle funzionalità utili in italiano, quindi se non trovo un altra soluzione l'opzione che mi resta e fare un controllo se il contenuto che sto salvando non è in latin allora non uso html_entity_encode altimenti lo uso.
 
Grazie, Luigi
 
P.S.: ho fatto anche una prova con htmlspecialchar (che potrei usarlo in entrambi i casi e risolverei i problemi derivanti dal cirillico e dalla punteggiatura, ma per le parti in italiano mi rimangono i problemi per le accentate e probabilmente in futuro potrei avere problemi pure con lo spagnolo che ora non c'è).
 
 
 

--
Cesare D'Amico - Wyrd Software
http://cesaredami.co
http://about.me/cesaredamico
Mobile 320.0635028 | Skype cesaredamico

Luigi De Luca Cuccia

unread,
Apr 10, 2012, 11:02:54 AM4/10/12
to pug-...@googlegroups.com
Grazie Giorgio, sono daccordo, ma lo strumento che sto usando è condiviso e mi serve una soluzione veloce anche se sporca (contro tutto quello che mi è stato insegnato), la parte che suggerisci per il set names è già presente come scrivevo prima se non passo le funzioni di entity encode (tra i test che ho fatto) il sistema va avanti correttamente ma mi trascino altri errori già risolti per i caratteri italiani.
 
l'unica soluzione che mi è venuta in mente per uscirne oggi è quella che scrivevo a Cesare cioè fare un controllo sul POST ed intercettare le richieste non latin e seguire due strade parrallele per salvare il dato, a front-end come scrivevo all'inizio il problema non mi si presenta se il dato è salvato carrettamente.
 
spero mi diate un altra idea, perchè questa proprio non mi piace.
 
Luigi.

Andrea Serra

unread,
Apr 10, 2012, 11:45:25 AM4/10/12
to pug-...@googlegroups.com
Ciao, 
hai provato con le funzioni  
$handle->prepare() e  
$smtp->bind_param('  iss.. ',  )

--

Yari Serra

unread,
Apr 10, 2012, 11:47:01 AM4/10/12
to pug-...@googlegroups.com
Oh mio dio un Serra...
--
Yari Serra

Gufo Rosso

unread,
Apr 10, 2012, 2:41:06 PM4/10/12
to pug-...@googlegroups.com
il problema e' legato all'entry di html che per "fare i caratteri non aci usa &qualcosa; e codifiche varie
quindi dall'altra parte una è diventa &grave; e via dicendo andando sui cirillici ecc...

x tagliare la testa al toro (se usi il js) econdi il tutto e lo decodi dall'altra parte
(non ha niente a che vedere con il db) ma dipende da come vuoi memorizzare i dati nel db

entita html
encodato
e utf8

Luigi De Luca Cuccia

unread,
Apr 10, 2012, 3:13:14 PM4/10/12
to pug-...@googlegroups.com
Grazie a tutti per i vari spunti per oggi ho risolto .
 
Luigi.
Reply all
Reply to author
Forward
0 new messages