-
mail() php
Buonasera forum,non capisco perche la funzione php si comporti cosi,in poche parole nell'email inviate non trovo i caratteri accentati ma altri..Il codice è molto semplice..
Ditemi che ne pensate e come risolvere.
Codice PHP:
<?php
include("common.php");
$cmd = $_GET['cmd'];
switch($cmd){
case 'invio':
$controllo = $_POST['c'];
$selezione = mysql_query("SELECT * FROM generale");
$a = mysql_fetch_array($selezione);
if($controllo == 1){
if(empty($_POST['email']) OR empty($_POST['oggetto']) OR empty($_POST['testo'])){
echo "<script>alert('Hai dimenticato qualcosa!!!');
window.location='informazioni.php'</script>";
}else{
$email = $a['email'];
$oggetto = "Oggetto: ".$_POST['oggetto'];
$testo = $_POST['testo'];
$mittente = "From: ".$_POST['email'];
mail($email,$oggetto,$testo,$mittente);
echo "<script>alert('Messaggio inviato correttamente,riceverai una risposta il prima possibile.');
window.location='informazioni.php'</script>";
}
}
break;
default:
$selezione = mysql_query("SELECT * FROM generale");
$a = mysql_fetch_array($selezione);
$lang['tel'] = $a['telefono'];
$lang['cel'] = $a['cellulare'];
$page = url("tpl/info");
display($page,'Informazioni',$lang);
}
?>
Codice HTML:
<table width="300" border="1">
<form action="informazioni.php?cmd=invio" method="post">
<input type="hidden" name='c' value="1" />
<td><i>Email:</i></td>
<td><input type="text" name="email" size='35' /></td>
</tr>
<td><i>Oggetto</i></td>
<td><input type="text" name="oggetto" size='35' /></td>
<tr>
<td colspan="2"><i>Contenuto</i></td>
<tr>
<td colspan="2"><textarea name="testo" rows="8" cols="34"></textarea></td>
</tr>
<td colspan="2" align="right"><input type="submit" value="Invia" /> <input type="reset" value="Pulisci" /></td>
</form>
-
(non ho letto il sorgente, ma visto che l'email viene inviata, presumo sia corretto).
Per le lettere accentate, imposta nell'header di mail() il corretto charset. Nel link che ti ho lasciato ci sono degli esempi.
Ciao!
-
ho inserito gli header ma niente da fare il codice è
Codice PHP:
$email = $a['email'];
$oggetto = $_POST['oggetto'];
$testo = $_POST['testo'];
$headers = "From: <".$_POST['email'].">\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=utf-8\r\n";
$headers .="Content-Transfer-Encoding: 8bit";
mail($email,$oggetto,$testo,$headers);
echo "<script>alert('Messaggio inviato correttamente,riceverai una risposta il prima possibile.');
window.location='informazioni.php'</script>";
altre soluzioni