problema con la codifica caratteri accentati e speciali tra php e mysql

gandalf1959

Utente Attivo
21 Nov 2013
208
1
18
Buongiorno a tutti.
Sto facendo una prova per cercare di risolvere il problema che riscontro quando registro nel db MySql lettere accentate, i gradi (°) e il simbolo dell'euro.
Situazione su register.it (dove abbiamo l'hosting Linux):
Versione MySql: 5.5.34
Versione PHP: 6.1
Ho creato una tabella (testutf) con 2 campi, un progressivo e un campo varchar(16) con codifica utf8_general_ci.
Poi ho preparato questa paginetta:
PHP:
<?php
mb_internal_encoding('UTF-8');


?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Inserimento Ricette per le Dispense</title>
<link href="backoffice.css" rel="stylesheet" type="text/css" />


</head>

<body>

<form name="pippo" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" />
  <input type="text" name="pippo" Size="8">
  <input type="submit" name="submit" value="vai">
</form>

<?
$pippo = $_POST['pippo'];

echo $pippo;

if (isset($_POST['submit']))
registra();

function registra() {
  $pippo2 = $_POST['pippo'];
  echo $pippo2;
 // $pluto = htmlentities($pippo2);
  include 'backoffice/connect.php';
  $query = ("INSERT INTO testutf VALUES ('', '$pippo2')");
  $result1 = mysql_query($query);
  echo "<br>fatto";
}

?>
</body>
</html>

Fino all'invio della query il carattere viene visualizzato correttamente.
Quindi il problema risiede nel momento dell'esecuzione della query, ma non riesco a capire quale sia questo problema...
Come vedete, la pagina php inizia con l'attribuzione della codifica utf8, e anche nell'head della parte html ho inserito la stessa cosa.
Quando vado nel db a guardare cosa è stato registrato, invece di € trovo sempre €, anche cambiando diverse codifiche (utf8_bin, o altre).
Devo forse aggiornare MySql? O magari basterebbe utilizzare Mysqli (che non uso ancora...)?
Grazie per i suggerimenti.
A presto...
 

gandalf1959

Utente Attivo
21 Nov 2013
208
1
18
Tanto per dare un seguito:
Ho risolto utilizzando MySqli e cambiando la pagina come segue:
Codice:
<?php
mb_internal_encoding('UTF-8');


?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Inserimento Ricette per le Dispense</title>
<link href="backoffice.css" rel="stylesheet" type="text/css" />


</head>

<body>

<form name="pippo" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" />
  <input type="text" name="pippo" Size="8">
  <input type="submit" name="submit" value="vai">
</form>

<?
$pippo = $_POST['pippo'];

echo $pippo;

if (isset($_POST['submit']))
registra();

function registra() {
  $pippo2 = $_POST['pippo'];
  echo $pippo2;
 // $pluto = htmlentities($pippo2);
  $mysqli = new mysqli('hostingmysql238.register.it','RG6819_gandalf','gandalfwhite','teatro7_com_catering');
  if ($msqli->connect_error) {
    die('Errore di connessione (' . $mysqli->connect_errno . ')' . $mysqli->connect_error);
  }else{
    $mysqli->set_charset("utf8");
    echo 'Connesso' . $mysqli->host_info . "\n";
    echo $pippo2;
    $query = "INSERT INTO testutf VALUES ('','$pippo2')";
    if(!$mysqli->query($query)) {
      die($mysqli->error);
    }
  }
 
}

?>
</body>
</html>
Ora l'inserimento funziona correttamente.
lascio qui la paginetta, dovesse servire a qualcuno.
Alla prossima
 

gandalf1959

Utente Attivo
21 Nov 2013
208
1
18
Proseguo qui poichè si tratta della "coda" di questo problema.
Utilizzando quindi mysqli e relativa codifica utf8 va tutto bene, tranne una cosa:
ogni volta che in un campo di testo inserisco un apostrofo (e in italiano se ne usano parecchi, mi sono reso conto...) lo script si blocca, dando errori a caso (in realtà dipende solo dal punto in cui trova l'apostrofo, naturalmente).
Come risolvo questo fastidioso problema?
Grazie
 
Discussioni simili
Autore Titolo Forum Risposte Data
metalgemini Problema Codifica caratteri con Replace(var,"","") Classic ASP 3
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
T PROBLEMA CON ARRAY PHP 8
L problema con query select PHP 2
R Problema query con ricerca id numerico PHP 2
F Problema con risposta PHP 0
S problema con recupero dati tabella mysql PHP 2
Z Problema con il mio tp-l i nk Reti LAN e Wireless 1
L Problema RAM con Tomcat 8 Apache 0
napuleone problema con sort e asort PHP 4
Z Problema con INT MySQL PHP 1
Z Problema database MySQL con XAMPP PHP 0
M Problema con controllo form in real time jQuery 6
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
G Problema con Get page PHP 4
P Problema con require once PHP 6
P Problema con i package Java 1
A Problema login con Safari PHP 14
F INDESIGN: problema esportazione esecutivo per la stampa con foto B/N Webdesign e Grafica 0
S problema con css bootstrap3 HTML e CSS 4
M .load() problema con caricamenti dinamici di js Javascript 0
G Problema ------- con Query PHP 1
G Problema con Query PHP 1
T problema con select dinamica con jquery Javascript 0
S Problema con spazi bianchi HTML e CSS 4
A PROBLEMA: insert mysqli con dati Tagsinput Presentati al Forum 0
Tommy03 Problema con z-index HTML e CSS 3
M Problema inserimento parole con apostrofo nel db PHP 5
C Problema con dati meteo xml XML 1
S Problema con infrarossi videocamera IP Cam e Videosorveglianza 1
V Problema con librerie allegro5 c++ C/C++ 1
M Problema con php per calcolo costo percentuale PHP 7
S Problema con mysqli_num_rows PHP 18
grgfede Problema javascript con aruba Javascript 1
M Problema con visibility e radio button Javascript 2
Marti1! Problema con casella mail cancellata Posta Elettronica 3
L [PHP] Problema con Telegram PHP 1
tomorc [HTML] Problema con scroll bar (risolto) HTML e CSS 0
S Strano problema con i title su Google SEO e Posizionamento 3
P [ASP.Net] Problema ERR_INCOMPLETE_CHUNKED_ENCODING 206 (Partial Content) con Font ASP.NET 4
P [HTML] Problema ERR_INCOMPLETE_CHUNKED_ENCODING 206 (Partial Content) con Font HTML e CSS 1
N [Apache] problema con estensione php Apache 0
C [PHP] Problema con download file PHP 0
M [PHP] Problema con preg_match PHP 1
gandalf1959 [PHP] problema con l'utilizzo di Header PHP 3
M [PHP] Problema con query select PHP 2
S [Javascript] Problema con condizione "if" Javascript 2
K Problema di indicizzazione con dominio vecchio vuoto SEO e Posizionamento 2
M [WordPress] Problema con pagina prodotti WordPress 0
Giacomo Boccherini Problema trasferimento file con FileZilla Windows e Software 10

Discussioni simili