在我的 PHP 联系表单脚本中,
我正在使用_POST
提交一个 PHP 变量,其中包含必须转义的引号,并且在到达时,它的值成为$formSubject
表单中变量的值,并且它的斜杠用stripslashes
.
以下是显示变量的表格摘录$formSubject
,以及标题。
<input type="text" name="formSubject" id="formSubject" value="<?php if(isset($_POST['formSubject'])) echo stripslashes($_POST['formSubject']);?>" />
if (($resp->is_valid) && (!isset($hasError))) {
$emailTo = 'yourEmail@address.com';
$subject = 'A new message from: ' . $formAuthor . ' | ' . $formSubject;
$body = "Email: $formEmail \n\nContent: $formContent \n\n$formAuthor";
$headers = 'From: <'.$formEmail.'>' . "\r\n" . 'Reply-To: ' . $formEmail . "\r\n" . 'Return-Path: ' . $formEmail;
由于我已经开始使用stripslashes
echoed 变量,因此表单页面上的主题是正确的,但是一旦电子邮件到达,主题中的 ASCII 就无法正确解析。
THIS IS A \'SUBJECT\'
应该:
THIS IS A 'SUBJECT'
这是声明正确编码的问题吗?这仅在我开始使用时才发生,stripslashes
所以 stripslashes 是否忽略编码?我读到了一个<form>
用于设置的属性UTF-8
,但这没有用。是否有特定于 stripslashes 的修复程序,或者我必须对脚本编码进行整体更改?
谁能告诉我问题是什么?
谢谢您的帮助。