- Home
- Categorie
- Coding e Sistemistica
- PHP
- Problemi con passaggio dati query-string con accenti
-
Problemi con passaggio dati query-string con accenti
Ciao a tutti, nel mio sito web, ospitato su hosting condiviso Godaddy, utilizzo un sistema di form in 2 step che si passano i dati dell'utente tramite query-string. Essendo un sito focalizzato su mercato di lingua portoghese, alcune entry/opzioni a disposizione degli utenti hanno caratteri accentati: à, ã, ecc.
Quando la query-string contiene tali caratteri mi dà un errore di tipo "Forbidden". E' un problema lato server del tipo che l'hosting non è in grado di gestire query string con codifica dei caratteri accentati? Se no, cosa può essere? Una query-string con caratteri non accentati è gestita correttamente. Per questo mi viene da pensare che l'hosting non gestisca la condifica di cui ho bisogno, ma sto totalmente tirando a caso. In ogni caso, come si può risolvere (al momento ho messo un work around)?
Grazie a chi potrà aiutarmi, brancolo nel buio da giorni...!
PS. se è la sezione sbagliata, potete consigliarmi dove aprirla?
-
Che versione di MySQL stai utilizzando sul condiviso?
-
Ciao francois007, ho Mysql 5.5.32, con PHP 5.4.34. E' un problema?
-
Controlla se il "Collation della connessione di MySQL" è impostato su "utf8_general_ci"
-
Ho cpanel, da dove posso guardarlo, riesci a dirmi anche come poter vedere questa info? Sono un po' ignorante in materia...
-
Sono andato dentro phpmyadmin ed effettivamente è utf8_general_ci. Se metto utf16_general_ci potrebbero essere comprese le lettere accentate?
-
Devi accedere a phpmyadmin per il settaggio corretto dei caratteri, nel tuo caso devi accedere al tuo DB, cliccare sulla scheda in alto a destra "Operazioni" e impostare la codifica dei caratteri corretta.
In MariaDB questo problema non lo registro, ma questo è solo un appunto per chi si ostina ancora ad adottare Mysql...
-
Aggiungo che il problema possa risiedere anche lato server, che di default utilizza un "default locale" di tipo "en_US"
-
Grazie per le tue risposte...non sono sicuro di aver capito bene: per risolvere "basta" che vada sul DB --> Operazioni e cambi condifica caratteri. Corretto? Per quanto riguarda il server, come potrei cambiare l'impostazione locale EN-US?
Grazie mille!
-
Si è corretto, prova a cambiare la codifica dei caratteri nel modo che ti ho descritto. Per capire se è un problema di localizzazione della lingua (lato server), prova a creare questo file e rinominalo "lingua.php", caricandolo nella root del tuo sito e richiamandolo via web, almeno siamo sicuri anche del setting del server:
<?php
echo setlocale(LC_ALL, 0);
echo setlocale(LC_ALL, 'en_US');
echo setlocale(LC_ALL, 0);
-
Sposto nella sezione php-mysql.
-
Allora, ho provato a mettere codifica caratteri di Mysql utf32 ma non sembra avere impatti. Per il file lingua.php: l installazione di Wordpress a cui mi riferisco è in una sottocartella della root, io devo metterlo nella root corretto? Poi come faccio a richiamarlo, con quale comando php e in che sezione? Scusa tutte queste domande, la mia conoscenza di php non è molta...
-
Il file php di cui ti ho fornito il codice lo devi richiamare da nomedominio.tld/lingua.php