Bonjour,

J'ai créé un formulaire HTML que j'envoie aux abonnés de ma lettre.

Lors de la validation du formulaire, les accents des données insérées ne correspondent pas au format initial.

Voici quelques infos :

SHOW VARIABLES

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 SHOW VARIABLES LIKE '%char%'
Variable_name 	Value
character_set_client 	utf8
character_set_connection 	utf8
character_set_database 	latin1
character_set_filesystem 	binary
character_set_results 	utf8
character_set_server 	latin1
character_set_system 	utf8
character_sets_dir 	/usr/share/mysql/charsets/
CREATION DE LA TABLE MISE A JOUR
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
-- 
-- Structure de la table `una_dons`
-- 
 
CREATE TABLE `una_dons` (
  `don_id` bigint(21) NOT NULL auto_increment,
  `don_civilite` varchar(10) NOT NULL,
  `don_nom` varchar(50) NOT NULL,
  `don_prenom` varchar(50) NOT NULL,
  `don_adresse` text NOT NULL,
  `don_codepostal` varchar(10) NOT NULL,
  `don_ville` varchar(50) NOT NULL,
  `don_mail` varchar(100) NOT NULL,
  `don_tel` varchar(20) NOT NULL,
  `don_portable` varchar(20) NOT NULL,
  `don_fax` varchar(20) NOT NULL,
  `don_date_promesse` datetime NOT NULL default '0000-00-00 00:00:00',
  `don_date_enregistre` datetime NOT NULL default '0000-00-00 00:00:00',
  `don_statut` tinyint(1) NOT NULL default '0',
  PRIMARY KEY  (`don_id`)
) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;
SCRIPT DE MISE A JOUR DE LA TABLE
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?php
 
// Parametres mysql à remplacer par les vôtres
define('DB_SERVER', 'mabase'); // serveur mysql
define('DB_SERVER_USERNAME', 'utilisateur'); // nom d'utilisateur
define('DB_SERVER_PASSWORD', 'monmotedepasse'); // mot de passe
define('DB_DATABASE', 'mabase'); // nom de la base
 
// Connexion au serveur mysql
$connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME,DB_SERVER_PASSWORD)
or die('Impossible de se connecter : ' . mysql_error());
// sélection de la base de données
mysql_select_db(DB_DATABASE, $connect);
 
$msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>";
$msg_ok = "Merci pour votre aide";
$message = $msg_erreur;
 
// vérification des champs
if (empty($_POST['civilite']))
  $message .= "Votre civilité<br/>";
if (empty($_POST['nom']))
  $message .= "Votre nom<br/>";
if (empty($_POST['prenom']))
  $message .= "Votre prénom<br/>";
if (empty($_POST['adresse']))
  $message .= "Votre adresse<br/>";
if (empty($_POST['codepostal']))
  $message .= "Votre code postal<br/>";
if (empty($_POST['ville']))
  $message .= "Votre ville<br/>";
if (empty($_POST['mail']))
  $message .= "Votre courriel<br/>";
 
 
// si un champ est vide, on affiche le message d'erreur
if (strlen($message) > strlen($msg_erreur)) {
 
  echo $message;
 
// sinon c'est ok
} else {
 
  foreach($_POST as $index => $valeur) {
    $$index = mysql_real_escape_string(trim($valeur));
  }
 
  $sql = "INSERT INTO una_dons(
  	`don_civilite`,
  	`don_nom`,
  	`don_prenom`,
  	`don_adresse`,
  	`don_codepostal`,
  	`don_ville`,
  	`don_mail`,
  	`don_tel`,
  	`don_portable`,
  	`don_fax`,
  	`don_date_promesse`)
 VALUES (
	'".$civilite."', 
	'".$nom."', 
	'".$prenom."', 
	'".$adresse."', 
	'".$codepostal."', 
	'".$ville."', 
	'".$mail."',
	'".$telephone."', 
	'".$portable."', 
	'".$fax."',
	   now())";
 
$res = mysql_query($sql);
 
  if ($res) {
    echo $msg_ok;
  } else {
    echo mysql_error();
  }
 
}
?>
Merci de votre aide