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
O problema con dvr dahua xvr5116 IP Cam e Videosorveglianza 0
G Problema con Xampp Web Server 1
andrea barletta Problema con miniature comandi Photoshop 0
I problema con alice Posta Elettronica 0
N Problema con position absolute e overflow HTML e CSS 4
L Problema con inner join PHP 11
K [php] Problema con inner join PHP 4
K [PHP] Problema con variabili concatenate. PHP 1
O problema con query PHP 4
I problema con 2 account Posta Elettronica 1
L problema collegamento file css con html HTML e CSS 1
E Problema accesso a file con app sviluppata con MIT APP INVENTOR 2 Sviluppo app per Android 0
M Problema con Try Catch PHP 0
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
T PROBLEMA CON SESSIONI PHP 3
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
R problema con else PHP 0
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 eccessiva nitidezza apertura Camera Raw Photoshop 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 5
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

Discussioni simili