Salve a tutti,
da alcuni giorni sul nostro forum SMF 2.0.7 c'è un piccolo problemino.
Quando gli utenti si inviano messaggi privati parte correttamente la mail di avviso ma questa non contiene più il testo del messaggio privato inviato.
Questa una parte del testo della mail:
Quote
IMPORTANTE: ricorda, questa è solo una notifica. Non rispondere a questa e-mail.
Il messaggio inviato è:
e dopo questa parte non viene riportato il testo del messaggio. Mentre vengono riportati correttamente il nome dell'utente che ha inviato il messaggio privato, l'oggetto ed il link diretto per rispondere ecc...
Non saprei se questo problema è arrivato dall'ultimo aggiornamento del forum alla 2.0.7,
siamo inoltre recentemente passati da un server Apache ad un server con Nginx e MySQL Server MariaDB e PHP 5.4 ma non saprei se può dipendere da questo...
Ops, scusa il ritardo, ma oggi è stata una giornata un po' "spessa" e ho dimenticato aperto la tab in una finestra "sperduta"... lol
hmm...
Quella "è" è inclusa nel messaggio?
Chiedo conferma, perché se lo tagliasse in corrispondenza potrei pensare a qualche problema di encoding, ma se lo lascia e non mette proprio il messaggio è altro.
Da qui a dire cosa è dura...
Ciao emanuele,
grazie per la risposta.
Si, la "è" è inclusa nel messaggio e nelle variabile lingua, è poi correttamente seguita dai duepunti.
Da ieri poi gli avvisi via mail hanno ripreso a riportare correttamente il testo del messaggio privato..... booooooo rimane un mistero :)
...
E' sempre un piacere quando gli script fanno quello che vogliono...
Quote from: alexred on May 05, 2014, 03:04:45 AM
Ciao emanuele,
grazie per la risposta.
Si, la "è" è inclusa nel messaggio e nelle variabile lingua, è poi correttamente seguita dai duepunti.
Da ieri poi gli avvisi via mail hanno ripreso a riportare correttamente il testo del messaggio privato..... booooooo rimane un mistero :)
(https://www.simplemachines.org/community/proxy.php?request=http%3A%2F%2Fcdn.alltheragefaces.com%2Fimg%2Ffaces%2Fpng%2Fmisc-jackie-chan.png&hash=3e94a102505e6dba400753527b5615459b21c0b4)
Ma serio?
abbiamo replicato il problema.
Se il testo del messaggio contiene caratteri speciali o anche solo una formattazione in corsivo la mail arriva senza il testo del messaggio.
La codifica del nostro forum è ancora in ISO e non saprei se riuscite a replicare il problemino....
Molto strano però che lo tronchi nelle mail e non nei post...però... usate la coda delle mail?
SMTP o phpmail?
Controlla per sicurezza encoding e collation di database e tabelle.
No, niente coda mail ed usiamo phpmail.
Forse il problema è proprio nella codifica, il forum sul nuovo server è stato creato in utf8_general_ci e non in latin1_swedish_ci,
poi le tabelle sono correttamente in latin1_swedish_ci
hmmm...
Puoi provare ad abilitare la coda per verificare?
Ma prima, potresti provare a mandarmi un PM con un testo che di norma viene troncato? (Il mio account è emanuele45.)
Ciao emanuele,
anche con la coda abilitata ottengo lo stesso problema.
PM di test inviato
Mi verrebbe da consigliarti di convertire ad UTF8, ma la paura che la stessa cosa vada storta durante la conversione mi spaventa...
Se hai la possibilità potresti provare clonando il forum e facendo la conversione.
Questa è veramente, ma veramente strana, la prima volta che mi capita, mi era capitato nei testi dei messaggi (vecchi e nuovi), mi son capitati caratteri strani (ho appena spostato un forum da 200k messaggi, durante la prova nessuno se n'è accorto, quando sono "andato live" ci siamo accorti che alcuni caratteri speciali erano stati alterati, me li son dovuti rimettere a posto a mano... xD).
All'inizio pensavo a qualcosa che andava storto nella comunicazione tra SMF e phpmail, ma dopo il test mi rendo conto che è qualcosa interno ad SMF perché anche la versione base64 encoded non ha il corpo del messaggio...
Quindi qualcosa fallisce "dentro" ad SMF, l'unico motivo che potrebbe venirmi in mente è perché fallisce a "capire" che il forum è ISO e cerca di trattarlo come UTF8.
Ora, perché non lo capisca è tutto un altro discorso...
Purtroppo al momento non posso, cercherò stasera di guardare il codice e cercare di capire dove può essere il problema (a sto punto mi viene quasi da pensare sia un bug).
Oh, un'altra cosa: potresti controllare in Settings.php se c'è qualche riferimento a UTF8?
Ed anche in index.italian.php (ci dovrebbe essere una stringa con l'encoding).
Se non ricordo male c'è anche la possibilità di specificarlo nella tabella settings, ma devo andare a guardare il codice perché non mi ricordo più i dettagli.
Come pezza estremamente temporanea, potresti cambiare il testo della mail in modo da non indicare che ci dovrebbe essere il testo.
Quote from: emanuele on May 07, 2014, 02:51:25 AM
Mi verrebbe da consigliarti di convertire ad UTF8, ma la paura che la stessa cosa vada storta durante la conversione mi spaventa...
Se hai la possibilità potresti provare clonando il forum e facendo la conversione.
ho provato più volte (su copie di backup) a fare lanciare la conversione ad UTF8 ma la procedura si blocca...... non saprei se a causa delle dimensioni del nostro database o per altri problemi e limitazioni.
Nel file index.italian.php appare il riferimento all'ISO:
$txt['lang_character_set'] = 'ISO-8859-1';
nel file Settings.php non ho trovato riferimenti alla codifica.
Grazie per l'aiuto
azz...
La funzione iconv è presente sul nuovo server?
nel php.ini leggo:
iconv
iconv support enabled
iconv implementation glibc
iconv library version 2.12
Directive Local Value Master Value
iconv.input_encoding UTF-8 ISO-8859-1
iconv.internal_encoding UTF-8 ISO-8859-1
iconv.output_encoding UTF-8 ISO-8859-1
Quindi la funzione iconv pare presente ed abilitata. La questione sulle directive UTF-8 Local e ISO-8859-1 Master non saprei come interpretarla, credi sia corretta per il nostro forum in ISO o meglio impostare il Local Value ISO-8859-1 ?
Grazie per l'aiuto
Sorry, ieri è stata una giornata trafficata...
Onestamente brancolo un po' nel buio, siccome hai elencato due possibili cause (cambio host, aggiornamento 2.0.7) ed io ho riscontrato problemi con entrambe, proviamo una cosa: tagliamo la testa al toro e vediamo di escluderne una: prova a disinstallare la patch 2.0.7. Non è una patch di sicurezza, quindi non causa problemi.
Solo, prima di toglierla senti il tuo host e chiedigli se ha disabilitato il modimodificatore "e" per le espressioni regolari di php (te lo dico perché ho visto forum morire dall'oggi al domani perché l'ho aveva deciso di disabilitare questo modifier e quindi tutte le preg_replace che contavano su di esso sono morte.
Quindi: 1) chiedi lumi all'host sul modificatore "e" (oppure prova semplicemente un pezzo di codice che lo contiene e vedi se gira), 2) se non ci sono problemi prova a rimuovere la patch 2.0.7.
ETA: prima di quanto sopra, fai una prova veloce, per favore.
In Subs-Post.php cerca:
$message = trim(un_htmlspecialchars(strip_tags(strtr(parse_bbc(htmlspecialchars($message), false), array('<br />' => "\n", '</div>' => "\n", '</li>' => "\n", '[' => '[', ']' => ']')))));
e rimpiazzalo con:
$message = trim(un_htmlspecialchars(strip_tags(strtr(parse_bbc($smcFunc['htmlspecialchars']($message), false), array('<br />' => "\n", '</div>' => "\n", '</li>' => "\n", '[' => '[', ']' => ']')))));
Se continua a non funzionare, riportalo alla versione originale. ;)
Ottimo!!!
Modificato come suggerito il file Subs-Post.php ed il problema pare risolto.
Continuo a monitorare e fare test.
Grazie per l'aiuto
Great! :D
Allora bisogna ringraziare Spuds che ha notato l'incongruenza! :D
Perdonatemi ma non saprei chi sia Spuds e lo ringrazio molto volentieri.
Con eventuali aggiornamenti futuri rischio di perdere questa modifica o sarà implementata nel core di SMF ?