我联系表格没什么问题。 当我发送消息时,主题和发件人名称不显示特殊字符。消息框显示的特殊字符正确。 我设置了UTF-8,因此我认为它应该适用于所有领域。我不知道。
我的PHP代码:
define( "RECIPIENT_NAME", "My name" );
define( "RECIPIENT_EMAIL", "info@domain.com" );
$success = false;
$senderName = isset( $_POST['username'] ) ? preg_replace( "/[^\.\-\' a-zA-Z0-9]/", "", $_POST['username'] ) : "";
$senderEmail = isset( $_POST['email'] ) ? preg_replace( "/[^\.\-\_\@a-zA-Z0-9]/", "", $_POST['email'] ) : "";
$subject = isset( $_POST['subject'] ) ? preg_replace( "/[^\.\-\' a-zA-Z0-9]/", "", $_POST['subject'] ) : "";
$message = isset( $_POST['message'] ) ? preg_replace( "/(From:|To:|BCC:|CC:|Subject:|Content-Type:)/", "", $_POST['message'] ) : "";
if ( $senderName && $senderEmail && $subject && $message) {
$recipient = RECIPIENT_NAME . " <" . RECIPIENT_EMAIL . ">";
/* $headers = "From: " . $senderName . " <" . $senderEmail . ">"; */
$headers = 'From:'.$senderName.' <'.$senderEmail.'>' . "\r\n";
$headers .= "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$msgBody = "From: " . $senderName . "<br><br>Message:<br>" . $message;
$success = mail( $recipient, $subject, $msgBody, $headers );
header('Location: contact.php');
}
else {
header('Location: index.php');
}