Ho dei problemi con la codifica dei caratteri speciali tipo àèò etccc...
Il database tabelle e campi sono settati utf8_general_ci
a seguire il codice che uso per inviare i dati a database e a clienti.
Codice PHP:
<?php
$email = htmlspecialchars(trim ($_POST['email']));//impostazione email cliente
session_start();
$_SESSION['mail']=$email;//imposta email per invio allegato
$nome = htmlspecialchars(trim ($_POST['element_1']));//nome
$via = htmlspecialchars(trim ($_POST['element_2']));//via
$cap = htmlspecialchars(trim ($_POST['element_4']));//cap
$citt = htmlspecialchars(trim ($_POST['element_5']));//città
$provincia = htmlspecialchars(trim ($_POST['element_6']));//provincia
$piva = htmlspecialchars(trim ($_POST['element_7']));//p.iva
$telefono = htmlspecialchars(trim ($_POST['element_8']));//telefono
$pagamento = htmlspecialchars(trim ($_POST['element_10']));//pagamento |1-bonifico|2-paypal|3-Contrassegno
$note = htmlspecialchars(trim ($_POST['element_9']));//note lavoro
$referente = htmlspecialchars(trim ($_POST['element_12']));//nome
$via2 = htmlspecialchars(trim ($_POST['element_13']));//nome
$cap2 = htmlspecialchars(trim ($_POST['element_14']));//cap
$citt2 = htmlspecialchars(trim ($_POST['element_15']));//città
$provincia2 = htmlspecialchars(trim ($_POST['element_16']));//provincia
$stato = htmlspecialchars(trim ('IN CODA'));//provincia
$numero_ordine=time();//imposta il numero dell'ordine - da non passare al database
$data=date('d-m-y', $numero_ordine);//imposta la data
# controllo campi compilati
if (( $email == "" ) || ( $via == "" ) || ( $citt == "" ) || ( $provincia == "" ) || ( $piva == "" ) || ( $telefono == "" ) || ( $nome == "" ) || ( $pagamento == "" )) {
echo '<div style="width:500px;margin:150px auto; font-family: Lucida Grande,Tahoma,Arial,Verdana,sans-serif;"> <p style="font-size: 160%;"> Errore!</p><br>Devi compilare correttamente tutti i campi richiesti!<br>
<a href="javascript:history.go(-1);">Torna indietro</a>';
exit;
}
# controllo campo telefono compilato con numeri
if (!is_numeric($telefono)) {
echo '<div style="width:500px;margin:150px auto; font-family: Lucida Grande,Tahoma,Arial,Verdana,sans-serif;"> <p style="font-size: 160%;"> Errore!</p><br>Devi inserire il tuo numero di telefono corretto!<br>
<a href="javascript:history.go(-1);">Torna indietro</a>';
exit;
}
# controllo campo email - email valida
if (!ereg("@",$email)){
echo '<div style="width:500px;margin:150px auto; font-family: Lucida Grande,Tahoma,Arial,Verdana,sans-serif;"> <p style="font-size: 160%;"> Errore!</p><br>Devi inserire una email valida!<br>
La preghiamo di <a href="javascript:history.go(-1);">Torna indietro</a>';
exit;
}
# controllo se piva o codice fiscale
if (is_numeric($piva))
{$pivaok=$piva;
} else {
$codfisc=$piva;
}
# inserisco i dati nel database
require 'config.php';
// richiamo lo script responsabile della connessione a MySQL
require 'connect.php';
// preparo la query
$query = "
INSERT INTO
ordini
SET
email = '$email',
nome = '$nome',
via = '$via',
cap = '$cap',
citt = '$citt',
provincia = '$provincia',
pivaok = '$pivaok',
codfisc ='$codfisc',
telefono = '$telefono',
pagamento = '$pagamento',
note = '$note',
referente = '$referente',
via2 = '$via2',
cap2 = '$cap2',
citt2 = '$citt2',
provincia2 = '$provincia2',
stato = '$stato',
data= '$data'
// lancio la query
$result = mysql_query($query);
// controllo l'esito
if (!$result) {
die("Errore nella query $query: " . mysql_error());
}
// chiudo la connessione a MySQL
mysql_close();
# ricavo n°ordine
require 'config.php';
// richiamo lo script responsabile della connessione a MySQL
require 'connect.php';
// preparo la query
$ricevuta = mysql_query("SELECT id_ordine, email FROM ordini WHERE `email` ='$email' ORDER BY id_ordine DESC; ");
$row = mysql_fetch_row($ricevuta);
//controllo risultato
$numero_ordine=$row[0];
$numeroordine=$numero_ordine;
// chiudo la connessione a MySQL
mysql_close();
//imposta il testo dell'email!
$message = html_entity_decode(stripslashes("Ordine inviato da: $email<br><br>
<strong>DATI FATTURAZIONE E SPEDIZIONE</strong><br><br>
<strong>Data</strong> $data<br>
<strong>N°ordine</strong> $numeroordine<br>
<strong>Nome, Cognome o ditta</strong> $nome<br>
<strong>Via e n° civico</strong> $via<br>
<strong>C.A.P.</strong> $cap<br>
<strong>Città</strong> $citt<br>
<strong>Provincia</strong> $provincia<br>
<strong>P. IVA</strong> $pivaok<br>
<strong>Codice fiscale</strong> $codfisc<br>
<strong>E-mail</strong> $email<br>
<strong>Telefono</strong> $telefono<br>
<strong>Pagamento scelto</strong> $pagamento<br>
<strong>Referente consegna lavoro</strong> $referente<br>
<strong>Via e n° civico</strong> $via2<br>
<strong>C.A.P.</strong> $cap2<br>
<strong>Città</strong> $citt2<br>
<strong>Provincia</strong> $provincia2<br>
<strong>Note su lavoro e consegna</strong> $note"));
require("../phpmailer/class.phpmailer.php");
$mail = new PHPMailer();
//manca del codice perchè ho cancellato i dati personali e login comunque non è qui il problema!
$mail->AddAddress($email1,$name);
$mail->AddAddress($email,$nome);
$mail->AddReplyTo($email1,"manifestiindigitale");
$mail->WordWrap = 50; // Caratteri prima di andare a capo
$mail->Subject = "Invio dati ordine";
$mail->Body = $message ;//HTML Body
$mail->AltBody = "This is the body when user views in plain text format"; //Text Body
$mail->CharSet = "UTF-8";
header("Refresh: 1; url=http://www..........etccc.....");
if(!$mail->Send())
{
echo "Mailer Error: " . $mail->ErrorInfo;
}
else
{
echo '<div style="width:500px;margin:150px auto; font-family: Lucida Grande,Tahoma,Arial,Verdana,sans-serif;"> <p style="font-size: 160%; ">Dati inviati correttamente</p>Attendi...</div>';
}
$email->SmtpClose();
?>
Come posso risolvere?
Grazie,
Stefano